Skip to content

Commit 350d220

Browse files
committed
Requested Changes
1 parent 1da09e8 commit 350d220

2 files changed

Lines changed: 48 additions & 38 deletions

File tree

src/main/java/org/skriptlang/skript/bukkit/pdc/PDCSerializer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import ch.njol.skript.variables.Variables;
77
import ch.njol.yggdrasil.Fields;
88
import ch.njol.yggdrasil.Yggdrasil;
9+
import com.google.common.primitives.Primitives;
910
import org.bukkit.Bukkit;
1011
import org.bukkit.NamespacedKey;
1112
import org.bukkit.persistence.PersistentDataAdapterContext;
@@ -257,9 +258,7 @@ private static Object deserializeFromBase64(@NotNull PersistentDataContainer con
257258
}
258259

259260
private static boolean isPrimitiveWrapper(Class<?> key) {
260-
return key == Byte.class || key == Short.class || key == Integer.class ||
261-
key == Long.class || key == Double.class || key == Float.class ||
262-
key == Boolean.class || key == Character.class;
261+
return Primitives.isWrapperType(key);
263262
}
264263

265264
}

src/main/java/org/skriptlang/skript/bukkit/pdc/expressions/ExprPersistentData.java

Lines changed: 46 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -365,22 +365,27 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
365365
* @param consumer Code to run with the container
366366
*/
367367
private void getPersistentDataContainer(Object holder, Consumer<PersistentDataContainerView> consumer) {
368-
if (holder instanceof PersistentDataHolder dataHolder) {
369-
consumer.accept(dataHolder.getPersistentDataContainer());
370-
} else if (holder instanceof ItemType itemType) {
371-
var meta = itemType.getItemMeta();
372-
consumer.accept(meta.getPersistentDataContainer());
373-
} else if (holder instanceof ItemStack itemStack) {
374-
if (!itemStack.hasItemMeta())
375-
return;
376-
consumer.accept(itemStack.getPersistentDataContainer());
377-
} else if (holder instanceof Slot slot) {
378-
var item = slot.getItem();
379-
if (item == null || !item.hasItemMeta())
380-
return;
381-
consumer.accept(item.getPersistentDataContainer());
382-
} else if (holder instanceof Block block && block.getState() instanceof TileState tileState) {
383-
consumer.accept(tileState.getPersistentDataContainer());
368+
switch (holder) {
369+
case PersistentDataHolder dataHolder -> consumer.accept(dataHolder.getPersistentDataContainer());
370+
case ItemType itemType -> {
371+
var meta = itemType.getItemMeta();
372+
consumer.accept(meta.getPersistentDataContainer());
373+
}
374+
case ItemStack itemStack -> {
375+
if (!itemStack.hasItemMeta())
376+
return;
377+
consumer.accept(itemStack.getPersistentDataContainer());
378+
}
379+
case Slot slot -> {
380+
var item = slot.getItem();
381+
if (item == null || !item.hasItemMeta())
382+
return;
383+
consumer.accept(item.getPersistentDataContainer());
384+
}
385+
case Block block when block.getState() instanceof TileState tileState ->
386+
consumer.accept(tileState.getPersistentDataContainer());
387+
case null, default -> {
388+
}
384389
}
385390

386391
}
@@ -391,25 +396,31 @@ private void getPersistentDataContainer(Object holder, Consumer<PersistentDataCo
391396
* @param consumer The method to run to edit the PDC.
392397
*/
393398
private void editPersistentDataContainer(Object holder, Consumer<PersistentDataContainer> consumer) {
394-
if (holder instanceof PersistentDataHolder dataHolder) {
395-
consumer.accept(dataHolder.getPersistentDataContainer());
396-
} else if (holder instanceof ItemType itemType) {
397-
var meta = itemType.getItemMeta();
398-
consumer.accept(meta.getPersistentDataContainer());
399-
itemType.setItemMeta(meta);
400-
} else if (holder instanceof ItemStack itemStack) {
401-
if (!itemStack.hasItemMeta())
402-
return;
403-
itemStack.editPersistentDataContainer(consumer);
404-
} else if (holder instanceof Slot slot) {
405-
var item = slot.getItem();
406-
if (item == null || !item.hasItemMeta())
407-
return;
408-
item.editPersistentDataContainer(consumer);
409-
slot.setItem(item);
410-
} else if (holder instanceof Block block && block.getState() instanceof TileState tileState) {
411-
consumer.accept(tileState.getPersistentDataContainer());
412-
tileState.update();
399+
switch (holder) {
400+
case PersistentDataHolder dataHolder -> consumer.accept(dataHolder.getPersistentDataContainer());
401+
case ItemType itemType -> {
402+
var meta = itemType.getItemMeta();
403+
consumer.accept(meta.getPersistentDataContainer());
404+
itemType.setItemMeta(meta);
405+
}
406+
case ItemStack itemStack -> {
407+
if (!itemStack.hasItemMeta())
408+
return;
409+
itemStack.editPersistentDataContainer(consumer);
410+
}
411+
case Slot slot -> {
412+
var item = slot.getItem();
413+
if (item == null || !item.hasItemMeta())
414+
return;
415+
item.editPersistentDataContainer(consumer);
416+
slot.setItem(item);
417+
}
418+
case Block block when block.getState() instanceof TileState tileState -> {
419+
consumer.accept(tileState.getPersistentDataContainer());
420+
tileState.update();
421+
}
422+
case null, default -> {
423+
}
413424
}
414425
}
415426

0 commit comments

Comments
 (0)