From 277974edae2040c98ee4768f2923c16fa7d2663e Mon Sep 17 00:00:00 2001 From: SeanOMik Date: Tue, 25 Jan 2022 20:43:58 -0500 Subject: [PATCH] Fix #32, add bstats metrics --- .gitignore | 2 + .idea/runConfigurations.xml | 10 ---- dependency-reduced-pom.xml | 6 +- pom.xml | 13 +++- .../energeticstorage/EnergeticStorage.java | 4 ++ .../energeticstorage/gui/ESDriveGUI.java | 59 +++++++------------ 6 files changed, 44 insertions(+), 50 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.gitignore b/.gitignore index 6c2fa6b..e40027f 100644 --- a/.gitignore +++ b/.gitignore @@ -106,4 +106,6 @@ modules.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +.attach_* + # End of https://www.gitignore.io/api/java,intellij+iml \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 638497e..e3ca652 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -42,8 +42,12 @@ net.wesjd.anvilgui net.seanomik.energeticstorage.anvilgui + + org.bstats + net.seanomik.energeticstorage.bstats + - C:\Development\Java\Spigot Servers\${server.version}\plugins\EnergeticStorage-v${project.version}.jar + /home/seanomik/Development/java/spigot-dev/test-servers/${server.version}/plugins/EnergeticStorage-v${project.version}.jar diff --git a/pom.xml b/pom.xml index 2dd765c..5039b3b 100644 --- a/pom.xml +++ b/pom.xml @@ -50,9 +50,14 @@ net.wesjd.anvilgui net.seanomik.energeticstorage.anvilgui + + org.bstats + + net.seanomik.energeticstorage.bstats + - C:\Development\Java\Spigot Servers\${server.version}\plugins\EnergeticStorage-v${project.version}.jar + /home/seanomik/Development/java/spigot-dev/test-servers/${server.version}/plugins/EnergeticStorage-v${project.version}.jar @@ -132,5 +137,11 @@ authlib 1.5.21 + + org.bstats + bstats-bukkit + 2.2.1 + compile + diff --git a/src/main/java/net/seanomik/energeticstorage/EnergeticStorage.java b/src/main/java/net/seanomik/energeticstorage/EnergeticStorage.java index cdb9d02..667035b 100644 --- a/src/main/java/net/seanomik/energeticstorage/EnergeticStorage.java +++ b/src/main/java/net/seanomik/energeticstorage/EnergeticStorage.java @@ -15,11 +15,13 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.WorldSaveEvent; import org.bukkit.plugin.java.JavaPlugin; +import org.bstats.bukkit.Metrics; import java.util.*; public final class EnergeticStorage extends JavaPlugin implements Listener { private static EnergeticStorage plugin; + public static final int BSTATS_PLUGIN_ID = 14068; private static HopperTask hopperTask; @Override @@ -39,6 +41,8 @@ public final class EnergeticStorage extends JavaPlugin implements Listener { hopperTask = new HopperTask(); hopperTask.runTaskTimerAsynchronously(this, 0L, 8L); } + + Metrics metrics = new Metrics(this, BSTATS_PLUGIN_ID); } private void registerCommands() { diff --git a/src/main/java/net/seanomik/energeticstorage/gui/ESDriveGUI.java b/src/main/java/net/seanomik/energeticstorage/gui/ESDriveGUI.java index 1b43347..1098fc4 100644 --- a/src/main/java/net/seanomik/energeticstorage/gui/ESDriveGUI.java +++ b/src/main/java/net/seanomik/energeticstorage/gui/ESDriveGUI.java @@ -154,7 +154,8 @@ public class ESDriveGUI implements InventoryHolder, Listener { ESSystem esSystem = openSystems.get(player.getUniqueId()); // Make sure no items will get copied to other players open inventory - Inventory inv = player.getOpenInventory().getTopInventory(); + Inventory thisInv = player.getOpenInventory().getTopInventory(); + Inventory playerInv = player.getInventory(); // Handle type of click. switch (clickType) { @@ -162,42 +163,21 @@ public class ESDriveGUI implements InventoryHolder, Listener { break; case SWAP: break; + case INVENTORY_CLICK: case SHIFT_IN: + case INTO_HALF: + case INTO: if (Utils.isItemValid(clickedItem) && Utils.isItemADrive(clickedItem)) { event.setCancelled(true); - // Add the item into the player's inventory - int driveSlot = inv.firstEmpty(); - ItemStack oneClicked = clickedItem.clone(); - oneClicked.setAmount(1); - inv.setItem(driveSlot, oneClicked); - - List drives = esSystem.getESDrives(); - drives.add(driveSlot - 2, new ESDrive(clickedItem)); - esSystem.setESDrives(drives); - - // Remove the item from the players inventory - clickedItem.setAmount(clickedItem.getAmount() - 1); - } - break; - case INTO_HALF: - case INTO: - if (Utils.isItemValid(cursor) && Utils.isItemADrive(cursor)) { - NBTItem clickedNBT = new NBTItem(cursor); - - if (clickedNBT.hasKey("ES_Drive") && clickedNBT.getBoolean("ES_Drive")) { + int firstEmpty = thisInv.firstEmpty(); + if (firstEmpty != -1) { + thisInv.setItem(firstEmpty, clickedItem); + playerInv.removeItem(clickedItem); List drives = esSystem.getESDrives(); - if (drives.contains(null)) { - drives.set(drives.indexOf(null), new ESDrive(cursor)); - } else { - drives.add(new ESDrive(cursor)); - } + drives.add(new ESDrive(clickedItem)); esSystem.setESDrives(drives); - initializeItems(player, esSystem); - - event.setCancelled(true); - cursor.setAmount(0); } } break; @@ -209,18 +189,21 @@ public class ESDriveGUI implements InventoryHolder, Listener { Reference.ES_TERMINAL_GUI.openInventory(player, esSystem); } else if (slot != 1 && slot != 7 && slot != 8) { - if (Utils.isItemADrive(clickedItem)) { - List drives = esSystem.getESDrives(); - drives.set(slot - 2, null); - esSystem.setESDrives(drives); + if (Utils.isItemValid(clickedItem) && Utils.isItemADrive(clickedItem)) { + event.setCancelled(true); - event.setCancelled(false); + int firstEmpty = playerInv.firstEmpty(); + if (firstEmpty != -1) { + playerInv.setItem(firstEmpty, clickedItem); + thisInv.removeItem(clickedItem); + + List drives = esSystem.getESDrives(); + drives.set(slot - 2, null); + esSystem.setESDrives(drives); + } } } break; - case INVENTORY_CLICK: - event.setCancelled(false); - break; } } }