Skip to content

Commit 3e1c2dc

Browse files
committed
adjust origins to listen to config
1 parent 8a1759b commit 3e1c2dc

File tree

9 files changed

+107
-88
lines changed

9 files changed

+107
-88
lines changed

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

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void onCraft(CraftItemEvent event) {
8585
// if the slot was empty before we crafted, this means we just made it
8686
if (oldSlotItem == null) {
8787
// add the lore
88-
ItemStack newItem = addLore(newSlotItem, player);
88+
ItemStack newItem = addCraftOrigin(newSlotItem, player);
8989
if (newItem != null) {
9090
player.getInventory().setItem(i, newItem);
9191
}
@@ -97,7 +97,7 @@ public void onCraft(CraftItemEvent event) {
9797
}
9898

9999
// the player did not shift click
100-
ItemStack newItem = addLore(craftedItem, player);
100+
ItemStack newItem = addCraftOrigin(craftedItem, player);
101101
if (newItem != null) {
102102
// set the result
103103
event.setCurrentItem(newItem);
@@ -111,7 +111,7 @@ public void onCraft(CraftItemEvent event) {
111111
* @param owner The player crafting.
112112
* @return A copy of the item with the tags + lore.
113113
*/
114-
private ItemStack addLore(ItemStack itemStack, Player owner) {
114+
private ItemStack addCraftOrigin(ItemStack itemStack, Player owner) {
115115
// clone the item
116116
ItemStack newItem = itemStack.clone();
117117
ItemMeta meta = newItem.getItemMeta();
@@ -130,25 +130,19 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
130130
return null;
131131
}
132132

133-
// only make the hash if it's enabled
134-
if (toolStats.config.getBoolean("generate-hash-for-items")) {
135-
String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated);
136-
container.set(toolStats.hash, PersistentDataType.STRING, hash);
137-
}
138-
139-
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
140-
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
141-
container.set(toolStats.originType, PersistentDataType.INTEGER, 0);
142-
143-
List<Component> lore;
144133
// get the current lore the item
134+
List<Component> lore;
145135
if (meta.hasLore()) {
146136
lore = meta.lore();
147137
} else {
148138
lore = new ArrayList<>();
149139
}
150-
// do we add the lore based on the config?
140+
141+
// if creation date is enabled, add it
151142
if (toolStats.configTools.checkConfig(itemStack.getType(), "created-date")) {
143+
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
144+
container.set(toolStats.originType, PersistentDataType.INTEGER, 0);
145+
152146
String date = toolStats.numberFormat.formatDate(finalDate);
153147
Component newLine = toolStats.configTools.formatLore("created.created-on", "{date}", date);
154148
if (newLine == null) {
@@ -157,14 +151,25 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
157151
lore.add(newLine);
158152
meta.lore(lore);
159153
}
154+
155+
// if creation owner is enabled, add it
160156
if (toolStats.configTools.checkConfig(itemStack.getType(), "created-by")) {
157+
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
158+
container.set(toolStats.originType, PersistentDataType.INTEGER, 0);
159+
161160
Component newLine = toolStats.configTools.formatLore("created.created-by", "{player}", owner.getName());
162161
if (newLine == null) {
163162
return null;
164163
}
165164
lore.add(newLine);
166165
meta.lore(lore);
167166
}
167+
168+
// if hash is enabled, add it
169+
if (toolStats.config.getBoolean("generate-hash-for-items")) {
170+
String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated);
171+
container.set(toolStats.hash, PersistentDataType.STRING, hash);
172+
}
168173
newItem.setItemMeta(meta);
169174
return newItem;
170175
}

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

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,50 +65,53 @@ public void onCreativeEvent(InventoryCreativeEvent event) {
6565
}
6666

6767
// add the tags to the item
68-
ItemStack newItem = addLore(spawnedItem, player);
68+
ItemStack newItem = addCreativeOrigin(spawnedItem, player);
6969
if (newItem != null) {
7070
event.setCursor(newItem);
7171
}
7272
}
7373

7474
/**
75-
* Adds tags to newly spawned items in creative.
75+
* Adds spawned in tags to item.
7676
*
77-
* @param spawnedItem The item.
77+
* @param itemStack The item add item to.
78+
* @param owner The player spawning in.
79+
* @return A copy of the item with the tags + lore.
7880
*/
79-
private ItemStack addLore(ItemStack spawnedItem, Player owner) {
80-
ItemStack newSpawnedItem = spawnedItem.clone();
81+
private ItemStack addCreativeOrigin(ItemStack itemStack, Player owner) {
82+
ItemStack newSpawnedItem = itemStack.clone();
8183
ItemMeta meta = newSpawnedItem.getItemMeta();
8284
if (meta == null) {
83-
toolStats.logger.warning(newSpawnedItem + " does NOT have any meta! Unable to update stats.");
85+
toolStats.logger.warning(itemStack + " does NOT have any meta! Unable to update stats.");
8486
return null;
8587
}
86-
88+
// get the current time
8789
long timeCreated = System.currentTimeMillis();
8890
Date finalDate = new Date(timeCreated);
8991
PersistentDataContainer container = meta.getPersistentDataContainer();
9092

91-
// if the item already has an origin set, don't add it again
92-
if (container.has(toolStats.originType, PersistentDataType.INTEGER)) {
93+
// if the item already has the tag
94+
// this is to prevent duplicate tags
95+
if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) {
9396
return null;
9497
}
9598

96-
// only make the hash if it's enabled
99+
// if hash is enabled, add it
97100
if (toolStats.config.getBoolean("generate-hash-for-items")) {
98-
String hash = toolStats.hashMaker.makeHash(spawnedItem.getType(), owner.getUniqueId(), timeCreated);
101+
String hash = toolStats.hashMaker.makeHash(newSpawnedItem.getType(), owner.getUniqueId(), timeCreated);
99102
container.set(toolStats.hash, PersistentDataType.STRING, hash);
100103
}
101104

102-
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
103-
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
104-
container.set(toolStats.originType, PersistentDataType.INTEGER, 6);
105-
105+
// if spawned in is enabled, add it
106106
if (toolStats.configTools.checkConfig(newSpawnedItem.getType(), "spawned-in")) {
107+
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
108+
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
109+
container.set(toolStats.originType, PersistentDataType.INTEGER, 6);
110+
107111
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
108112
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
109113
meta.lore(newLore);
110114
}
111-
112115
newSpawnedItem.setItemMeta(meta);
113116
return newSpawnedItem;
114117
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,19 @@ private ItemStack addLore(ItemStack oldItem, LivingEntity entity) {
8484
return null;
8585
}
8686

87+
if (!toolStats.config.getBoolean("enabled.dropped-by")) {
88+
return null;
89+
}
90+
8791
PersistentDataContainer container = meta.getPersistentDataContainer();
8892
container.set(toolStats.originType, PersistentDataType.INTEGER, 1);
89-
90-
if (toolStats.config.getBoolean("enabled.dropped-by")) {
91-
String mobName = toolStats.config.getString("messages.mob." + entity.getType());
92-
if (mobName == null) {
93-
mobName = entity.getName();
94-
}
95-
Component newLine = toolStats.configTools.formatLore("dropped-by", "{name}", mobName);
96-
List<Component> newLore = toolStats.itemLore.addItemLore(meta, newLine);
97-
meta.lore(newLore);
93+
String mobName = toolStats.config.getString("messages.mob." + entity.getType());
94+
if (mobName == null) {
95+
mobName = entity.getName();
9896
}
97+
Component newLine = toolStats.configTools.formatLore("dropped-by", "{name}", mobName);
98+
List<Component> newLore = toolStats.itemLore.addItemLore(meta, newLine);
99+
meta.lore(newLore);
99100
newItem.setItemMeta(meta);
100101
return newItem;
101102
}

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

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public void onGenerateLoot(LootGenerateEvent event) {
9292
* @param owner The player that found the item.
9393
* @return The item with the lore.
9494
*/
95-
private ItemStack addLore(ItemStack itemStack, Player owner) {
95+
private ItemStack addLootedOrigin(ItemStack itemStack, Player owner) {
9696
ItemStack newItem = itemStack.clone();
9797
ItemMeta meta = itemStack.getItemMeta();
9898
if (meta == null) {
@@ -102,6 +102,10 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
102102
Date finalDate = new Date(timeCreated);
103103
PersistentDataContainer container = meta.getPersistentDataContainer();
104104

105+
if (!toolStats.configTools.checkConfig(newItem.getType(), "looted-tag")) {
106+
return null;
107+
}
108+
105109
if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) {
106110
return null;
107111
}
@@ -115,12 +119,9 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
115119
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
116120
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
117121
container.set(toolStats.originType, PersistentDataType.INTEGER, 2);
118-
119-
if (toolStats.configTools.checkConfig(newItem.getType(), "looted-tag")) {
120-
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
121-
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
122-
meta.lore(newLore);
123-
}
122+
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
123+
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
124+
meta.lore(newLore);
124125
newItem.setItemMeta(meta);
125126
return newItem;
126127
}
@@ -139,7 +140,7 @@ private void setLoot(List<ItemStack> loot, Player player) {
139140
continue;
140141
}
141142
if (toolStats.itemChecker.isValidItem(itemStack.getType())) {
142-
ItemStack newItem = addLore(itemStack, player);
143+
ItemStack newItem = addLootedOrigin(itemStack, player);
143144
if (newItem != null) {
144145
loot.set(i, newItem);
145146
}

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222
import net.kyori.adventure.text.Component;
2323
import org.bukkit.GameMode;
2424
import org.bukkit.Material;
25-
import org.bukkit.entity.*;
25+
import org.bukkit.entity.Entity;
26+
import org.bukkit.entity.EntityType;
27+
import org.bukkit.entity.Item;
28+
import org.bukkit.entity.Player;
2629
import org.bukkit.event.EventHandler;
2730
import org.bukkit.event.EventPriority;
2831
import org.bukkit.event.Listener;
@@ -64,7 +67,7 @@ public void onPickup(EntityPickupItemEvent event) {
6467
if (itemStack.getType() == Material.ELYTRA) {
6568
// the elytra has the new key, set the lore to it
6669
if (container.has(toolStats.newElytra, PersistentDataType.INTEGER)) {
67-
ItemStack newElytra = addLore(itemStack, (Player) event.getEntity());
70+
ItemStack newElytra = addElytraOrigin(itemStack, (Player) event.getEntity());
6871
if (newElytra != null) {
6972
item.setItemStack(newElytra);
7073
}
@@ -80,7 +83,7 @@ public void onPickup(EntityPickupItemEvent event) {
8083
* @param itemStack The elytra to add lore to.
8184
* @param owner The player who found it.
8285
*/
83-
private ItemStack addLore(ItemStack itemStack, Player owner) {
86+
private ItemStack addElytraOrigin(ItemStack itemStack, Player owner) {
8487
ItemStack finalItem = itemStack.clone();
8588
ItemMeta meta = finalItem.getItemMeta();
8689
if (meta == null) {
@@ -90,6 +93,10 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
9093
Date finalDate = new Date(timeCreated);
9194
PersistentDataContainer container = meta.getPersistentDataContainer();
9295

96+
if (!toolStats.config.getBoolean("enabled.elytra-tag")) {
97+
return null;
98+
}
99+
93100
// only make the hash if it's enabled
94101
if (toolStats.config.getBoolean("generate-hash-for-items")) {
95102
String hash = toolStats.hashMaker.makeHash(finalItem.getType(), owner.getUniqueId(), timeCreated);
@@ -100,12 +107,9 @@ private ItemStack addLore(ItemStack itemStack, Player owner) {
100107
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
101108
container.set(toolStats.originType, PersistentDataType.INTEGER, 4);
102109
container.remove(toolStats.newElytra);
103-
104-
if (toolStats.config.getBoolean("enabled.elytra-tag")) {
105-
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
106-
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
107-
meta.lore(newLore);
108-
}
110+
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
111+
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
112+
meta.lore(newLore);
109113
finalItem.setItemMeta(meta);
110114
return finalItem;
111115
}

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,22 +111,26 @@ private ItemStack addNewLore(ItemStack originalItem, Player owner) {
111111
Date finalDate = new Date(timeCreated);
112112
PersistentDataContainer container = meta.getPersistentDataContainer();
113113

114+
if (!toolStats.configTools.checkConfig(newItem.getType(), "fished-tag")) {
115+
return null;
116+
}
117+
114118
if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) {
115119
return null;
116120
}
117121

118-
String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated);
122+
// only make the hash if it's enabled
123+
if (toolStats.config.getBoolean("generate-hash-for-items")) {
124+
String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated);
125+
container.set(toolStats.hash, PersistentDataType.STRING, hash);
126+
}
119127

120-
container.set(toolStats.hash, PersistentDataType.STRING, hash);
121128
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
122129
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
123130
container.set(toolStats.originType, PersistentDataType.INTEGER, 5);
124-
125-
if (toolStats.configTools.checkConfig(newItem.getType(), "fished-tag")) {
126-
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
127-
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
128-
meta.lore(newLore);
129-
}
131+
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
132+
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
133+
meta.lore(newLore);
130134
newItem.setItemMeta(meta);
131135
return newItem;
132136
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void onTrade(InventoryClickEvent event) {
9494
// if the slot was empty before we traded, this means we just traded it
9595
if (oldSlotItem == null) {
9696
// add the lore
97-
ItemStack newItem = addLore(newSlotItem, player);
97+
ItemStack newItem = addTradeOrigin(newSlotItem, player);
9898
if (newItem != null) {
9999
player.getInventory().setItem(i, newItem);
100100
}
@@ -104,7 +104,7 @@ public void onTrade(InventoryClickEvent event) {
104104
}, null, 1);
105105
return;
106106
}
107-
ItemStack newItem = addLore(tradedItem, player);
107+
ItemStack newItem = addTradeOrigin(tradedItem, player);
108108
if (newItem != null) {
109109
// set the new item
110110
inventory.setItem(event.getSlot(), newItem);
@@ -118,7 +118,7 @@ public void onTrade(InventoryClickEvent event) {
118118
* @param owner The player who traded.
119119
* @return The item with lore.
120120
*/
121-
private ItemStack addLore(ItemStack oldItem, Player owner) {
121+
private ItemStack addTradeOrigin(ItemStack oldItem, Player owner) {
122122
ItemStack newItem = oldItem.clone();
123123
ItemMeta meta = newItem.getItemMeta();
124124
if (meta == null) {
@@ -133,6 +133,10 @@ private ItemStack addLore(ItemStack oldItem, Player owner) {
133133
return null;
134134
}
135135

136+
if (!toolStats.configTools.checkConfig(newItem.getType(), "traded-tag")) {
137+
return null;
138+
}
139+
136140
// only make the hash if it's enabled
137141
if (toolStats.config.getBoolean("generate-hash-for-items")) {
138142
String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated);
@@ -142,12 +146,9 @@ private ItemStack addLore(ItemStack oldItem, Player owner) {
142146
container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated);
143147
container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId());
144148
container.set(toolStats.originType, PersistentDataType.INTEGER, 3);
145-
146-
if (toolStats.configTools.checkConfig(newItem.getType(), "traded-tag")) {
147-
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
148-
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
149-
meta.lore(newLore);
150-
}
149+
String formattedDate = toolStats.numberFormat.formatDate(finalDate);
150+
List<Component> newLore = toolStats.itemLore.addNewOwner(meta, owner.getName(), formattedDate);
151+
meta.lore(newLore);
151152
newItem.setItemMeta(meta);
152153
return newItem;
153154
}

0 commit comments

Comments
 (0)