support for custom lore messages

This commit is contained in:
hyperdefined
2022-01-31 17:40:10 -05:00
parent c02cbadeb2
commit 975445b8f3
11 changed files with 212 additions and 64 deletions

View File

@@ -18,7 +18,6 @@
package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
@@ -37,7 +36,6 @@ import java.util.List;
public class SheepShear implements Listener {
private final ToolStats toolStats;
private final String sheepShearLore = ChatColor.GRAY + "Sheep sheared: " + ChatColor.DARK_GRAY + "X";
public SheepShear(ToolStats toolStats) {
this.toolStats = toolStats;
@@ -77,6 +75,15 @@ public class SheepShear implements Listener {
sheepSheared++;
}
container.set(toolStats.shearsSheared, PersistentDataType.INTEGER, sheepSheared);
String sheepShearedLore = toolStats.getLoreFromConfig("sheep-sheared", false);
String sheepShearedLoreRaw = toolStats.getLoreFromConfig("sheep-sheared", true);
if (sheepShearedLore == null || sheepShearedLoreRaw == null) {
toolStats.logger.warning("There is no lore message for messages.sheep-sheared!");
return;
}
List<String> lore;
if (meta.hasLore()) {
lore = meta.getLore();
@@ -85,20 +92,20 @@ public class SheepShear implements Listener {
// we do a for loop like this, we can keep track of index
// this doesn't mess the lore up of existing items
for (int x = 0; x < lore.size(); x++) {
if (lore.get(x).contains("Sheep sheared")) {
if (lore.get(x).contains(sheepShearedLore)) {
hasLore = true;
lore.set(x, sheepShearLore.replace("X", Integer.toString(sheepSheared)));
lore.set(x, sheepShearedLoreRaw.replace("{sheep}", Integer.toString(sheepSheared)));
break;
}
}
// if the item has lore but doesn't have the tag, add it
if (!hasLore) {
lore.add(sheepShearLore.replace("X", Integer.toString(sheepSheared)));
lore.add(sheepShearedLoreRaw.replace("{sheep}", Integer.toString(sheepSheared)));
}
} else {
// if the item has no lore, create a new list and add the string
lore = new ArrayList<>();
lore.add(sheepShearLore.replace("X", Integer.toString(sheepSheared)));
lore.add(sheepShearedLoreRaw.replace("{sheep}", Integer.toString(sheepSheared)));
}
if (toolStats.config.getBoolean("enabled.sheep-sheared")) {
meta.setLore(lore);