1818package lol .hyper .toolstats .tools ;
1919
2020import lol .hyper .toolstats .ToolStats ;
21+ import org .bukkit .inventory .ItemStack ;
2122import org .bukkit .inventory .meta .ItemMeta ;
23+ import org .bukkit .persistence .PersistentDataContainer ;
24+ import org .bukkit .persistence .PersistentDataType ;
2225
2326import java .util .ArrayList ;
2427import java .util .List ;
25- import java .util .Locale ;
2628
2729public 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