Helpful links:
<repository>
<id>minecodes-repository</id>
<url>https://repository.minecodes.pl/releases</url>
</repository>
maven { url "https://repository.minecodes.pl/releases" }
Framework Core
<dependency>
<groupId>dev.rollczi</groupId>
<artifactId>liteskullapi</artifactId>
<version>1.3.0</version>
</dependency>
implementation 'dev.rollczi:liteskullapi:1.3.0'
public final class ExamplePlugin extends JavaPlugin {
private SkullAPI skullAPI;
@Override
public void onEnable() {
this.skullAPI = LiteSkullFactory.builder()
.cacheExpireAfterWrite(Duration.ofMinutes(45L))
.bukkitScheduler(this)
.build();
}
}
Lambda will be run in the server sync task (see .bukkitScheduler()
or .scheduler()
)
// you can use this item when skull will be found (synchronous)
skullAPI.acceptSyncSkull("Rollczi", itemStack -> {
player.getInventory().addItem(itemStack);
});
skullAPI.acceptSyncSkullData("Rollczi", skullData -> {
String value = skullData.getValue();
String signature = skullData.getSignature();
});
// you can use this item when skull will be found (asynchronous)
skullAPI.acceptAsyncSkull("Rollczi", itemStack -> {
itemStack
// some code
});
skullAPI.acceptAsyncSkullData("Rollczi", skullData -> {
String value = skullData.getValue(); // texture value
String signature = skullData.getSignature(); // texture signature
});
// you can get completable future with skull item
CompletableFuture<ItemStack> completableFuture = skullAPI.getSkull("Rollczi");
completableFuture.thenAcceptAsync(itemStack -> {
itemStack
// some code
});
// you can get completable future with skull data
CompletableFuture<SkullData> completableFuture = skullAPI.getSkullData("Rollczi");
completableFuture.thenAcceptAsync(skullData -> {
String value = skullData.getValue(); // texture value
String signature = skullData.getSignature(); // texture signature
});
ItemStack itemStack = skullAPI.awaitForSkull("Rollczi", 10, TimeUnit.SECONDS);
SkullData skullData = skullAPI.awaitForSkullData("Rollczi", 10, TimeUnit.SECONDS);