// Create tags
Tag<String> playerNameTag = Tag.String("custom_player_name");
Tag<Integer> levelTag = Tag.Integer("player_level");
Tag<Double> balanceTag = Tag.Double("player_balance");
Tag<Boolean> isVipTag = Tag.Boolean("is_vip");
// Set tags on player
Player player = // ... get player
if (player instanceof TagWritable writable) {
writable.setTag(playerNameTag, "CustomName");
writable.setTag(levelTag, 50);
writable.setTag(balanceTag, 1000.0);
writable.setTag(isVipTag, true);
}
// Read tags from player
if (player instanceof TagReadable readable) {
String name = readable.getTag(playerNameTag);
Integer level = readable.getTag(levelTag);
Double balance = readable.getTag(balanceTag);
Boolean isVip = readable.getTag(isVipTag);
System.out.println("Player: " + name + ", Level: " + level + ", Balance: " + balance);
}
// Check if tag exists
if (player instanceof TagReadable readable) {
if (readable.hasTag(levelTag)) {
System.out.println("Player has level tag");
}
}
// Remove tag
if (player instanceof TagWritable writable) {
writable.removeTag(levelTag);
}
// Using with custom entity class
public class CustomEntity extends EntityLiving {
private static final Tag<Integer> CUSTOM_DATA_TAG = Tag.Integer("custom_data");
public void setCustomData(int value) {
setTag(CUSTOM_DATA_TAG, value);
}
public int getCustomData() {
return getTag(CUSTOM_DATA_TAG);
}
}