From dee3f9b91c4c48aa9f6f9fa92705975ef4df3173 Mon Sep 17 00:00:00 2001
From: ineanto <pantoine.rochas@gmail.com>
Date: Mon, 19 Jun 2023 15:08:23 +0200
Subject: [PATCH] maintenance and player info packet cast fix

---
 .gitignore                                    | 12 -----
 docker-compose.yml                            | 23 ++++++++++
 pom.xml                                       | 44 +++++++++----------
 .../nicko/gui/admin/CacheManagementGUI.java   |  8 ++--
 .../gui/admin/cache/CacheDetailedGUI.java     |  4 +-
 ...Placeholder.java => EntryPlaceholder.java} |  4 +-
 ...date.java => InvalidateCompleteCache.java} |  4 +-
 ...iled.java => InvalidateSpecificEntry.java} |  4 +-
 .../WrapperPlayerServerPlayerInfo.java        |  4 +-
 .../nicko/test/storage/SQLStorageTest.java    |  6 +--
 10 files changed, 61 insertions(+), 52 deletions(-)
 create mode 100644 docker-compose.yml
 rename src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/{SkinPlaceholder.java => EntryPlaceholder.java} (88%)
 rename src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/{CacheInvalidate.java => InvalidateCompleteCache.java} (93%)
 rename src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/{CacheDetailed.java => InvalidateSpecificEntry.java} (90%)

diff --git a/.gitignore b/.gitignore
index 67f8558..7055fba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,18 +27,6 @@ replay_pid*
 # Idea files
 *.iml
 
-# Nicko first pass build files
-core/target
-v1_14_R1/target
-v1_15_R1/target
-v1_16_R1/target
-v1_16_R2/target
-v1_16_R3/target
-v1_17_R1/target
-v1_18_R1/target
-v1_18_R2/target
-v1_19_R1/target
-
 # Idea Folder
 .idea
 
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..d2fa012
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,23 @@
+# Nicko's docker-compose.yml
+# Used for debug and test purposes.
+version: '3.1'
+
+services:
+
+  db:
+    image: mariadb
+    restart: always
+    environment:
+      MARIADB_ROOT_PASSWORD: 12345
+
+  adminer:
+    image: adminer
+    restart: always
+    ports:
+      - "8080:8080"
+
+  redis:
+    image: redis
+    restart: always
+    ports:
+      - "6379:6379"
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 31d2bc6..04e30ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,47 +39,52 @@
     </repositories>
 
     <dependencies>
-        <!-- ProtocolLib -->
+        <!--
+        MINECRAFT
+        -->
+        <dependency>
+            <groupId>org.spigotmc</groupId>
+            <artifactId>spigot-api</artifactId>
+            <version>1.19.4-R0.1-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>com.comphenix.protocol</groupId>
             <artifactId>ProtocolLib</artifactId>
             <version>5.0.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
-        <!-- PlaceHolder API -->
         <dependency>
             <groupId>me.clip</groupId>
             <artifactId>placeholderapi</artifactId>
             <version>2.11.2</version>
             <scope>provided</scope>
         </dependency>
-        <!-- Inventory Lib -->
         <dependency>
             <groupId>xyz.xenondevs.invui</groupId>
             <artifactId>invui</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
-        <!-- AnvilGUI -->
         <dependency>
             <groupId>net.wesjd</groupId>
             <artifactId>anvilgui</artifactId>
             <version>1.6.3-SNAPSHOT</version>
         </dependency>
-        <!-- Google Guava (GSON) -->
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>31.1-jre</version>
-            <scope>provided</scope>
-        </dependency>
-        <!-- MockBukkit 1.19 (Bukkit Unit Tests) -->
         <dependency>
             <groupId>com.github.seeseemelk</groupId>
             <artifactId>MockBukkit-v1.19</artifactId>
             <version>2.29.0</version>
             <scope>test</scope>
         </dependency>
-        <!-- MariaDB JDBC Driver -->
+
+        <!--
+        DATA
+        -->
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.10.1</version>
+        </dependency>
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
             <artifactId>mariadb-java-client</artifactId>
@@ -95,24 +100,17 @@
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
-            <version>2.14.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.spigotmc</groupId>
-            <artifactId>spigot-api</artifactId>
-            <version>1.19.4-R0.1-SNAPSHOT</version>
-            <scope>provided</scope>
+            <version>2.15.2</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.dataformat</groupId>
             <artifactId>jackson-dataformat-yaml</artifactId>
-            <version>2.14.2</version>
+            <version>2.15.2</version>
         </dependency>
-        <!-- Redis -->
         <dependency>
             <groupId>redis.clients</groupId>
             <artifactId>jedis</artifactId>
-            <version>4.3.0</version>
+            <version>4.4.3</version>
         </dependency>
     </dependencies>
 
diff --git a/src/main/java/xyz/atnrch/nicko/gui/admin/CacheManagementGUI.java b/src/main/java/xyz/atnrch/nicko/gui/admin/CacheManagementGUI.java
index 58a2510..77ca7d2 100644
--- a/src/main/java/xyz/atnrch/nicko/gui/admin/CacheManagementGUI.java
+++ b/src/main/java/xyz/atnrch/nicko/gui/admin/CacheManagementGUI.java
@@ -1,8 +1,8 @@
 package xyz.atnrch.nicko.gui.admin;
 
 import xyz.atnrch.nicko.gui.AdminGUI;
-import xyz.atnrch.nicko.gui.items.admin.cache.CacheDetailed;
-import xyz.atnrch.nicko.gui.items.admin.cache.CacheInvalidate;
+import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateSpecificEntry;
+import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateCompleteCache;
 import xyz.atnrch.nicko.gui.items.admin.cache.CacheOverview;
 import xyz.atnrch.nicko.gui.items.common.GoBack;
 import org.bukkit.entity.Player;
@@ -20,8 +20,8 @@ public class CacheManagementGUI {
                 .setStructure("B # S A D")
                 .addIngredient('B', new GoBack(new AdminGUI(player).getGUI()))
                 .addIngredient('S', new CacheOverview())
-                .addIngredient('A', new CacheInvalidate())
-                .addIngredient('D', new CacheDetailed())
+                .addIngredient('A', new InvalidateCompleteCache())
+                .addIngredient('D', new InvalidateSpecificEntry())
                 .build();
         this.player = player;
     }
diff --git a/src/main/java/xyz/atnrch/nicko/gui/admin/cache/CacheDetailedGUI.java b/src/main/java/xyz/atnrch/nicko/gui/admin/cache/CacheDetailedGUI.java
index d8b4c65..1b49726 100644
--- a/src/main/java/xyz/atnrch/nicko/gui/admin/cache/CacheDetailedGUI.java
+++ b/src/main/java/xyz/atnrch/nicko/gui/admin/cache/CacheDetailedGUI.java
@@ -8,7 +8,7 @@ import xyz.xenondevs.invui.gui.ScrollGui;
 import xyz.xenondevs.invui.gui.structure.Markers;
 import xyz.xenondevs.invui.item.Item;
 import xyz.atnrch.nicko.NickoBukkit;
-import xyz.atnrch.nicko.gui.items.admin.cache.SkinPlaceholder;
+import xyz.atnrch.nicko.gui.items.admin.cache.EntryPlaceholder;
 import xyz.atnrch.nicko.gui.admin.CacheManagementGUI;
 import xyz.atnrch.nicko.gui.items.common.ScrollDown;
 import org.bukkit.entity.Player;
@@ -34,7 +34,7 @@ public class CacheDetailedGUI {
                 .collect(Collectors.toList());
 
         final List<Item> items = loadedSkins.stream()
-                .map(SkinPlaceholder::new)
+                .map(EntryPlaceholder::new)
                 .collect(Collectors.toList());
 
         gui = ScrollGui.items(guiItemBuilder -> {
diff --git a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/SkinPlaceholder.java b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/EntryPlaceholder.java
similarity index 88%
rename from src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/SkinPlaceholder.java
rename to src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/EntryPlaceholder.java
index 6f94d63..10b8c32 100644
--- a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/SkinPlaceholder.java
+++ b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/EntryPlaceholder.java
@@ -7,8 +7,8 @@ import xyz.xenondevs.invui.item.impl.AsyncItem;
 
 import java.util.UUID;
 
-public class SkinPlaceholder extends AsyncItem {
-    public SkinPlaceholder(String name) {
+public class EntryPlaceholder extends AsyncItem {
+    public EntryPlaceholder(String name) {
         super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> {
             final String stringUUID = name.replaceAll("(.{8})(.{4})(.{4})(.{4})(.+)", "$1-$2-$3-$4-$5");
             final UUID uuid = UUID.fromString(stringUUID);
diff --git a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheInvalidate.java b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateCompleteCache.java
similarity index 93%
rename from src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheInvalidate.java
rename to src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateCompleteCache.java
index 7d3fa9a..5ec26d3 100644
--- a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheInvalidate.java
+++ b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateCompleteCache.java
@@ -9,8 +9,8 @@ import org.bukkit.event.inventory.ClickType;
 import xyz.xenondevs.invui.item.builder.ItemBuilder;
 import xyz.xenondevs.invui.item.impl.SuppliedItem;
 
-public class CacheInvalidate extends SuppliedItem {
-    public CacheInvalidate() {
+public class InvalidateCompleteCache extends SuppliedItem {
+    public InvalidateCompleteCache() {
         super(() -> {
             final ItemBuilder builder = new ItemBuilder(Material.TNT);
             builder.setDisplayName("§fInvalidate §6skin cache");
diff --git a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheDetailed.java b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateSpecificEntry.java
similarity index 90%
rename from src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheDetailed.java
rename to src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateSpecificEntry.java
index 9a55797..62bd5a0 100644
--- a/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/CacheDetailed.java
+++ b/src/main/java/xyz/atnrch/nicko/gui/items/admin/cache/InvalidateSpecificEntry.java
@@ -6,8 +6,8 @@ import org.bukkit.event.inventory.ClickType;
 import xyz.xenondevs.invui.item.builder.ItemBuilder;
 import xyz.xenondevs.invui.item.impl.SuppliedItem;
 
-public class CacheDetailed extends SuppliedItem {
-    public CacheDetailed() {
+public class InvalidateSpecificEntry extends SuppliedItem {
+    public InvalidateSpecificEntry() {
         super(() -> {
             final ItemBuilder builder = new ItemBuilder(Material.PAPER);
             builder.setDisplayName("§6Invalidate specific skin...");
diff --git a/src/main/java/xyz/atnrch/nicko/wrapper/WrapperPlayerServerPlayerInfo.java b/src/main/java/xyz/atnrch/nicko/wrapper/WrapperPlayerServerPlayerInfo.java
index df989b4..86ee3f5 100644
--- a/src/main/java/xyz/atnrch/nicko/wrapper/WrapperPlayerServerPlayerInfo.java
+++ b/src/main/java/xyz/atnrch/nicko/wrapper/WrapperPlayerServerPlayerInfo.java
@@ -41,10 +41,10 @@ public class WrapperPlayerServerPlayerInfo extends AbstractPacket {
     }
 
     public List<PlayerInfoData> getData() {
-        return handle.getPlayerInfoDataLists().read(0);
+        return handle.getPlayerInfoDataLists().read(1);
     }
 
     public void setData(List<PlayerInfoData> value) {
-        handle.getPlayerInfoDataLists().write(0, value);
+        handle.getPlayerInfoDataLists().write(1, value);
     }
 }
diff --git a/src/test/java/xyz/atnrch/nicko/test/storage/SQLStorageTest.java b/src/test/java/xyz/atnrch/nicko/test/storage/SQLStorageTest.java
index 39c4ad1..c6c9380 100644
--- a/src/test/java/xyz/atnrch/nicko/test/storage/SQLStorageTest.java
+++ b/src/test/java/xyz/atnrch/nicko/test/storage/SQLStorageTest.java
@@ -3,13 +3,13 @@ package xyz.atnrch.nicko.test.storage;
 import be.seeseemelk.mockbukkit.MockBukkit;
 import be.seeseemelk.mockbukkit.ServerMock;
 import be.seeseemelk.mockbukkit.entity.PlayerMock;
+import org.junit.jupiter.api.*;
 import xyz.atnrch.nicko.NickoBukkit;
-import xyz.atnrch.nicko.config.DataSourceConfiguration;
-import xyz.atnrch.nicko.i18n.Locale;
 import xyz.atnrch.nicko.config.Configuration;
+import xyz.atnrch.nicko.config.DataSourceConfiguration;
 import xyz.atnrch.nicko.disguise.ActionResult;
 import xyz.atnrch.nicko.disguise.NickoProfile;
-import org.junit.jupiter.api.*;
+import xyz.atnrch.nicko.i18n.Locale;
 
 import java.util.Optional;