Skip to content

Commit 29a2a51

Browse files
committed
update various things for origin NBT
1 parent b38d282 commit 29a2a51

File tree

5 files changed

+47
-22
lines changed

5 files changed

+47
-22
lines changed

src/main/java/lol/hyper/toolstats/events/GenerateLoot.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
146146
container.set(toolStats.originType, PersistentDataType.INTEGER, 2);
147147

148148
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
149-
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate, "LOOTED");
149+
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
150150

151151
if (toolStats.checkConfig(newItem, "looted-tag")) {
152152
meta.setLore(newLore);

src/main/java/lol/hyper/toolstats/events/PickupItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
9595
container.remove(toolStats.newElytra);
9696

9797
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
98-
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate, "LOOTED");
98+
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
9999

100100
if (toolStats.config.getBoolean("enabled.elytra-tag")) {
101101
meta.setLore(newLore);

src/main/java/lol/hyper/toolstats/events/PlayerFish.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ private ItemStack addNewLore(ItemStack originalItem, Player owner) {
160160
container.set(toolStats.originType, PersistentDataType.INTEGER, 5);
161161

162162
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
163-
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate, "FISHED");
163+
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
164164

165165
if (toolStats.checkConfig(newItem, "fished-tag")) {
166166
meta.setLore(newLore);

src/main/java/lol/hyper/toolstats/events/VillagerTrade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private ItemStack addLore(ItemStack oldItem, Player owner) {
112112
container.set(toolStats.originType, PersistentDataType.INTEGER, 3);
113113

114114
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
115-
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate, "TRADED");
115+
List<String> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
116116

117117
if (toolStats.checkConfig(newItem, "traded-tag")) {
118118
meta.setLore(newLore);

src/main/java/lol/hyper/toolstats/tools/ItemLore.java

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818
package lol.hyper.toolstats.tools;
1919

2020
import lol.hyper.toolstats.ToolStats;
21+
import org.bukkit.inventory.ItemStack;
2122
import org.bukkit.inventory.meta.ItemMeta;
23+
import org.bukkit.persistence.PersistentDataContainer;
24+
import org.bukkit.persistence.PersistentDataType;
2225

2326
import java.util.ArrayList;
2427
import java.util.List;
25-
import java.util.Locale;
2628

2729
public class ItemLore {
2830

@@ -87,38 +89,46 @@ public List<String> addItemLore(ItemMeta itemMeta, String placeholder, String pl
8789
* @param itemMeta The item meta.
8890
* @param playerName The new owner of item.
8991
* @param formattedDate The date of the ownership.
90-
* @param type The type of new ownership.
9192
* @return The item's new lore.
9293
*/
93-
public List<String> addNewOwner(ItemMeta itemMeta, String playerName, String formattedDate, String type) {
94+
public List<String> addNewOwner(ItemMeta itemMeta, String playerName, String formattedDate) {
9495
String dateCreated = null;
9596
String itemOwner = null;
96-
switch (type) {
97-
case "LOOTED": {
98-
dateCreated = toolStats.getLoreFromConfig("looted.found-on", true);
99-
itemOwner = toolStats.getLoreFromConfig("looted.found-by", true);
97+
Integer origin = null;
98+
PersistentDataContainer container = itemMeta.getPersistentDataContainer();
99+
if (container.has(toolStats.originType, PersistentDataType.INTEGER)) {
100+
origin = container.get(toolStats.originType, PersistentDataType.INTEGER);
101+
}
102+
103+
if (origin == null) {
104+
origin = -1;
105+
}
106+
107+
switch (origin) {
108+
case 2: {
109+
dateCreated = toolStats.getLoreFromConfig("looted.looted-on", true);
110+
itemOwner = toolStats.getLoreFromConfig("looted.looted-by", true);
100111
break;
101112
}
102-
case "CREATED": {
103-
dateCreated = toolStats.getLoreFromConfig("created.created-on", true);
104-
itemOwner = toolStats.getLoreFromConfig("created.created-by", true);
113+
case 3: {
114+
dateCreated = toolStats.getLoreFromConfig("traded.traded-on", true);
115+
itemOwner = toolStats.getLoreFromConfig("traded.traded-by", true);
105116
break;
106117
}
107-
case "FISHED": {
108-
dateCreated = toolStats.getLoreFromConfig("fished.caught-on", true);
109-
itemOwner = toolStats.getLoreFromConfig("fished.caught-by", true);
118+
case 4: {
119+
dateCreated = toolStats.getLoreFromConfig("looted.found-on", true);
120+
itemOwner = toolStats.getLoreFromConfig("looted.found-by", true);
110121
break;
111122
}
112-
case "TRADED": {
113-
dateCreated = toolStats.getLoreFromConfig("traded.traded-on", true);
114-
itemOwner = toolStats.getLoreFromConfig("traded.traded-by", true);
123+
case 5: {
124+
dateCreated = toolStats.getLoreFromConfig("fished.caught-on", true);
125+
itemOwner = toolStats.getLoreFromConfig("fished.caught-by", true);
115126
break;
116127
}
117128
}
118129

119130
if (dateCreated == null || itemOwner == null) {
120-
toolStats.logger.warning("There is no lore message for messages." + type.toLowerCase(Locale.ENGLISH) + "!");
121-
toolStats.logger.warning("Unable to update lore for item.");
131+
toolStats.logger.info("Unable to determine origin of item for " + itemMeta);
122132
return itemMeta.getLore();
123133
}
124134

@@ -133,4 +143,19 @@ public List<String> addNewOwner(ItemMeta itemMeta, String playerName, String for
133143
newLore.add(itemOwner.replace("{player}", playerName));
134144
return newLore;
135145
}
146+
147+
/**
148+
* Add origin to already existing items.
149+
* @param itemStack The item to add origin to.
150+
* @param origin The origin type.
151+
*/
152+
public void addOriginTag(ItemStack itemStack, int origin) {
153+
ItemMeta itemMeta = itemStack.getItemMeta();
154+
if (itemMeta == null) {
155+
return;
156+
}
157+
PersistentDataContainer container = itemMeta.getPersistentDataContainer();
158+
container.set(toolStats.originType, PersistentDataType.INTEGER, origin);
159+
itemStack.setItemMeta(itemMeta);
160+
}
136161
}

0 commit comments

Comments
 (0)