Icons
Overview
Apollo adds three different icon builders, ItemStackIcon
, SimpleResourceLocation
and AdvancedResourceLocationIcon
for creating various types of icon entries.
ItemStackIcon
Builder
The ItemStackIcon
builder is used to assign an icon using a specified ItemStack name or ID. This will utilize the texture present in the player's resource pack as the icon.
🚫
If your server accepts players on Minecraft versions higher than 1.8.8
then you need to use itemName
.
public final class ItemStackIcon extends Icon {
/**
* Returns the icon {@link String} item name.
*
* @return the icon item name
* @since 1.0.0
*/
String itemName;
/**
* Returns the icon {@link Integer} item id.
*
* @return the icon item id
* @since 1.0.0
*/
int itemId;
}
Sample Code
public static ItemStackIcon itemStackIdIconExample() {
return ItemStackIcon.builder()
.itemId(Material.ENDER_PEARL.getId())
.build();
}
public static ItemStackIcon itemStackNameIconExample() {
return ItemStackIcon.builder()
.itemName("ENDER_PEARL")
.build();
}
SimpleResourceLocation
Builder
If you're using a custom resource pack and want to create an icon, you can use the SimpleResourceLocation
builder.
public final class SimpleResourceLocationIcon extends Icon {
/**
* Returns the icon {@link String} resource location.
*
* <p>Represents a path to an icon that will appear for the player.</p>
*
* @return the icon resource location
* @since 1.0.0
*/
String resourceLocation;
/**
* Returns the icon {@link Integer} size.
*
* <p>Size of the image height and width (in pixels).</p>
*
* @return the icon size
* @since 1.0.0
*/
int size;
}
Sample Code
public static SimpleResourceLocationIcon simpleResourceLocationIconExample() {
return SimpleResourceLocationIcon.builder()
.resourceLocation("icons/server-logo.png") // Resource path location
.size(16) // Represents both height and width
.build();
}
AdvancedResourceLocationIcon
Builder
If you have a TextureAtlas (opens in a new tab), also known as sprite-sheet or image sprite, you can use the AdvancedResourceLocationIcon
builder.
public final class AdvancedResourceLocationIcon extends Icon {
/**
* Returns the icon {@link String} resource location.
*
* <p>Represents a path to an icon that will appear for the player.</p>
*
* @return the icon resource location
* @since 1.0.0
*/
String resourceLocation;
/**
* Returns the icon width {@link Float}.
*
* <p>Size of the image width (in pixels).</p>
*
* @return the icon width
* @since 1.0.0
*/
float width;
/**
* Returns the icon height {@link Float}.
*
* <p>Size of the image height (in pixels).</p>
*
* @return the icon height
* @since 1.0.0
*/
float height;
/**
* Returns the icon min u {@link Float}.
*
* <p>Range of 0-1 (the x location on a TextureAtlas).</p>
*
* @return the icon min u
* @since 1.0.0
*/
float minU;
/**
* Returns the icon max u {@link Float}.
*
* <p>Range of 0-1 (the x location on a TextureAtlas).</p>
*
* @return the icon max u
* @since 1.0.0
*/
float maxU;
/**
* Returns the icon min v {@link Float}.
*
* <p>Range of 0-1 (the y location on a TextureAtlas).</p>
*
* @return the icon min v
* @since 1.0.0
*/
float minV;
/**
* Returns the icon max v {@link Float}.
*
* <p>Range of 0-1 (the y location on a TextureAtlas).</p>
*
* @return the icon max v
* @since 1.0.0
*/
float maxV;
}
Sample Code
public static AdvancedResourceLocationIcon advancedResourceLocationIconExample() {
return AdvancedResourceLocationIcon.builder()
.resourceLocation("icons/server-sprite.png")
.width(512)
.height(512)
.minU(1)
.maxU(1)
.minV(1)
.maxV(1)
.build();
}