From 3e31762fe69535253d0c5508e5ff0f758b5d4514 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 30 Oct 2019 19:09:33 +0100 Subject: [PATCH 1/9] First step towards multiversion-support + refactor --- pom.xml | 14 +- src/de/steamwar/core/CommandRemover.java | 40 ++++ .../hunjy => steamwar/core}/Core.java | 40 ++-- src/de/steamwar/core/FileManager.java | 42 ---- .../core/events/PlayerJoinedEvent.java | 4 +- src/de/steamwar/inventory/SWInventory.java | 219 ++---------------- .../steamwar/inventory/SWInventory_v12.java | 11 + .../steamwar/inventory/SWInventory_v14.java | 11 + src/de/steamwar/inventory/SWItem.java | 23 ++ src/de/steamwar/inventory/SWItem_v12.java | 11 + src/de/steamwar/inventory/SWItem_v14.java | 11 + src/de/steamwar/inventory/SWListInv.java | 30 +-- src/de/steamwar/sql/BauweltMember.java | 129 +++++++++++ src/de/steamwar/sql/CheckedSchematic.java | 98 ++++++++ src/de/steamwar/sql/Event.java | 59 +++++ src/de/steamwar/sql/EventFight.java | 76 ++++++ src/de/steamwar/sql/SQL.java | 101 ++++++++ .../MySQL => steamwar/sql}/Schematic.java | 64 +++-- .../sql}/SchematicMember.java | 60 +++-- .../MySQL => steamwar/sql}/SchematicType.java | 2 +- src/de/steamwar/sql/SteamwarUser.java | 98 ++++++++ src/de/steamwar/sql/Team.java | 63 +++++ .../MySQL => steamwar/sql}/UserGroup.java | 2 +- src/de/warking/hunjy/MySQL/MySQL.java | 98 -------- src/de/warking/hunjy/MySQL/WarkingUser.java | 99 -------- src/plugin.yml | 2 +- 26 files changed, 853 insertions(+), 554 deletions(-) create mode 100644 src/de/steamwar/core/CommandRemover.java rename src/de/{warking/hunjy => steamwar/core}/Core.java (57%) delete mode 100644 src/de/steamwar/core/FileManager.java create mode 100644 src/de/steamwar/inventory/SWInventory_v12.java create mode 100644 src/de/steamwar/inventory/SWInventory_v14.java create mode 100644 src/de/steamwar/inventory/SWItem_v12.java create mode 100644 src/de/steamwar/inventory/SWItem_v14.java create mode 100644 src/de/steamwar/sql/BauweltMember.java create mode 100644 src/de/steamwar/sql/CheckedSchematic.java create mode 100644 src/de/steamwar/sql/Event.java create mode 100644 src/de/steamwar/sql/EventFight.java create mode 100644 src/de/steamwar/sql/SQL.java rename src/de/{warking/hunjy/MySQL => steamwar/sql}/Schematic.java (68%) rename src/de/{warking/hunjy/MySQL => steamwar/sql}/SchematicMember.java (65%) rename src/de/{warking/hunjy/MySQL => steamwar/sql}/SchematicType.java (98%) create mode 100644 src/de/steamwar/sql/SteamwarUser.java create mode 100644 src/de/steamwar/sql/Team.java rename src/de/{warking/hunjy/MySQL => steamwar/sql}/UserGroup.java (77%) delete mode 100644 src/de/warking/hunjy/MySQL/MySQL.java delete mode 100644 src/de/warking/hunjy/MySQL/WarkingUser.java diff --git a/pom.xml b/pom.xml index c093382..30937db 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - de.warking + de.steamwar SpigotCore 1.0 jar @@ -17,7 +17,7 @@ steamwar - https://steamwar.de/maven/ + https://steamwar.de:81/maven/ @@ -48,9 +48,17 @@ steamwar - Spigot + Spigot-1.12 1.0 provided + true + + + steamwar + Spigot-1.14 + 1.0 + provided + true \ No newline at end of file diff --git a/src/de/steamwar/core/CommandRemover.java b/src/de/steamwar/core/CommandRemover.java new file mode 100644 index 0000000..99055aa --- /dev/null +++ b/src/de/steamwar/core/CommandRemover.java @@ -0,0 +1,40 @@ +package de.steamwar.core; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.SimpleCommandMap; + +import java.lang.reflect.Field; +import java.util.Map; +import java.util.logging.Level; + +public class CommandRemover { + private CommandRemover(){} + + private static String packageName = Bukkit.getServer().getClass().getPackage().getName(); + private static String version = packageName.substring(packageName.lastIndexOf('.') + 1); + + public static void removeAll(String... cmds){ + for (String cmd : cmds) removeCommand(cmd); + } + + + private static void removeCommand(String command) { + try { + Class serverClass = Class.forName("org.bukkit.craftbukkit." + version + ".CraftServer"); + + + Field f1 = serverClass.getDeclaredField("commandMap"); + f1.setAccessible(true); + SimpleCommandMap commandMap = (SimpleCommandMap) f1.get(Bukkit.getServer()); + + Field f2 = SimpleCommandMap.class.getDeclaredField("knownCommands"); + f2.setAccessible(true); + Map knownCommands = (Map) f2.get(commandMap); + + knownCommands.remove(command.toLowerCase()); + } catch (Exception e) { + Bukkit.getLogger().log(Level.SEVERE, "Could not remove command", e); + } + } +} diff --git a/src/de/warking/hunjy/Core.java b/src/de/steamwar/core/Core.java similarity index 57% rename from src/de/warking/hunjy/Core.java rename to src/de/steamwar/core/Core.java index 4dff82d..fc51e6f 100644 --- a/src/de/warking/hunjy/Core.java +++ b/src/de/steamwar/core/Core.java @@ -1,21 +1,28 @@ -package de.warking.hunjy; +package de.steamwar.core; import de.steamwar.core.events.ChattingEvent; import de.steamwar.core.events.PlayerJoinedEvent; -import de.warking.hunjy.MySQL.MySQL; -import de.warking.hunjy.MySQL.WarkingUser; -import de.steamwar.core.FileManager; +import de.steamwar.sql.SQL; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class Core extends JavaPlugin{ - - public static MySQL sql; - private static Core instance; - private FileManager fileManager; - + private static final int version; + + static{ + String packageName = Bukkit.getServer().getClass().getPackage().getName(); + if(packageName.contains("1_14")) + version = 14; + else if(packageName.contains("1_10")) + version = 10; + else if(packageName.contains("1_9")) + version = 9; + else + version = 12; + } + @Override public void onLoad() { setInstance(this); @@ -23,26 +30,23 @@ public class Core extends JavaPlugin{ @Override public void onEnable() { - fileManager = new FileManager(); - - setSql(new MySQL()); Bukkit.getPluginManager().registerEvents(new PlayerJoinedEvent(), this); Bukkit.getPluginManager().registerEvents(new ChattingEvent(), this); + } - Bukkit.getScheduler().runTaskTimer(this, WarkingUser::clearCache, 72000, 72000); + @Override + public void onDisable(){ + SQL.closeConnection(); } public static Core getInstance() { return instance; } - public FileManager getFileManager() { - return fileManager; + public static int getVersion(){ + return version; } private static void setInstance(Core instance) { Core.instance = instance; } - private static void setSql(MySQL sql) { - Core.sql = sql; - } } diff --git a/src/de/steamwar/core/FileManager.java b/src/de/steamwar/core/FileManager.java deleted file mode 100644 index 079a668..0000000 --- a/src/de/steamwar/core/FileManager.java +++ /dev/null @@ -1,42 +0,0 @@ -package de.steamwar.core; - -import de.warking.hunjy.Core; -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; -import java.util.logging.Level; - - -public class FileManager { - - private File file; - private YamlConfiguration config; - - public FileManager() { - file = new File(Core.getInstance().getDataFolder(), "MySQL.yml"); - config = YamlConfiguration.loadConfiguration(file); - setDefaults(); - } - - private void setDefaults() { - if(!file.exists()) { - config.set("HOST", "localhost"); - config.set("PORT", "3306"); - config.set("DATABASE", "coinsystem"); - config.set("USER", "root"); - config.set("PASSWORD", ""); - - try { - config.save(file); - } catch (IOException e) { - Bukkit.getLogger().log(Level.SEVERE, "Could not save MySQL Config", e); - } - } - } - - public YamlConfiguration getConfig() { - return config; - } -} diff --git a/src/de/steamwar/core/events/PlayerJoinedEvent.java b/src/de/steamwar/core/events/PlayerJoinedEvent.java index e12248d..3461df9 100644 --- a/src/de/steamwar/core/events/PlayerJoinedEvent.java +++ b/src/de/steamwar/core/events/PlayerJoinedEvent.java @@ -1,6 +1,6 @@ package de.steamwar.core.events; -import de.warking.hunjy.MySQL.WarkingUser; +import de.steamwar.sql.SteamwarUser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -13,7 +13,7 @@ public class PlayerJoinedEvent implements Listener{ @EventHandler private void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - WarkingUser user = new WarkingUser(player.getUniqueId()); + SteamwarUser user = SteamwarUser.get(player.getUniqueId()); switch(user.getUserGroup()){ case Admin: diff --git a/src/de/steamwar/inventory/SWInventory.java b/src/de/steamwar/inventory/SWInventory.java index 8ed9456..19607ea 100644 --- a/src/de/steamwar/inventory/SWInventory.java +++ b/src/de/steamwar/inventory/SWInventory.java @@ -1,36 +1,36 @@ package de.steamwar.inventory; -import de.warking.hunjy.Core; +import de.steamwar.core.Core; import org.bukkit.Bukkit; -import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; -import org.bukkit.inventory.ItemStack; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -public class SWInventory implements Listener, Inventory { +public class SWInventory implements Listener { Player player; private Map callbacks; - private int inventorySize; - private ItemStack[] contents; - private String title; + Inventory inventory; public SWInventory(Player p, int size, String t){ - title = t; callbacks = new HashMap<>(); player = p; - inventorySize = size; - contents = new ItemStack[inventorySize]; + switch(Core.getVersion()){ + case 14: + inventory = new SWInventory_v14(p, size, t); + break; + default: + inventory = new SWInventory_v12(p, size, t); + } } public SWInventory(Player p, int size, String t, Map items){ @@ -44,7 +44,7 @@ public class SWInventory implements Listener, Inventory { } public void setItem(int pos, SWItem item){ - contents[pos] = item.getItemStack(); + inventory.setItem(pos, item.getItemStack()); callbacks.put(pos, item.getCallback()); } @@ -70,7 +70,7 @@ public class SWInventory implements Listener, Inventory { } public void open(){ - player.openInventory(this); + player.openInventory(inventory); Bukkit.getPluginManager().registerEvents(this, Core.getInstance()); } @@ -94,191 +94,4 @@ public class SWInventory implements Listener, Inventory { if(callbacks.containsKey(-1)) callbacks.get(-1).clicked(null); } - - - @Override - public int getSize() { - return inventorySize; - } - @Override - public int getMaxStackSize() { - return 999; - } - @Override - public void setMaxStackSize(int size) { - //Unused - } - - @Override - public String getName() { - return title; - } - - @Override - public ItemStack getItem(int index) { - return contents[index]; - } - - @Override - public void setItem(int index, ItemStack item) { - //Unused - } - - @Override - public HashMap addItem(ItemStack... items) throws IllegalArgumentException { - return null; - } - - @Override - public HashMap removeItem(ItemStack... items) throws IllegalArgumentException { - return null; - } - @Override - public ItemStack[] getContents() { - return contents; - } - @Override - public void setContents(ItemStack[] items) throws IllegalArgumentException { - //Unused - } - @Override - public ItemStack[] getStorageContents() { - return contents; - } - @Override - public void setStorageContents(ItemStack[] items) throws IllegalArgumentException { - - } - - @Override - public boolean contains(int materialId) { - return false; - } - @Override - public boolean contains(Material material) throws IllegalArgumentException { - return false; - } - @Override - public boolean contains(ItemStack item) { - return false; - } - - @Override - public boolean contains(int materialId, int amount) { - return false; - } - - @Override - public boolean contains(Material material, int amount) throws IllegalArgumentException { - return false; - } - - @Override - public boolean contains(ItemStack item, int amount) { - return false; - } - - @Override - public boolean containsAtLeast(ItemStack item, int amount) { - return false; - } - - @Override - public HashMap all(int materialId) { - return null; - } - - @Override - public HashMap all(Material material) throws IllegalArgumentException { - return null; - } - - @Override - public HashMap all(ItemStack item) { - return null; - } - - @Override - public int first(int materialId) { - return 0; - } - - @Override - public int first(Material material) throws IllegalArgumentException { - return 0; - } - - @Override - public int first(ItemStack item) { - return 0; - } - - @Override - public int firstEmpty() { - return 0; - } - - @Override - public void remove(int materialId) { - - } - - @Override - public void remove(Material material) throws IllegalArgumentException { - - } - - @Override - public void remove(ItemStack item) { - - } - - @Override - public void clear(int index) { - contents[index] = null; - callbacks.remove(index); - } - - @Override - public void clear() { - contents = new ItemStack[contents.length]; - callbacks.clear(); - } - - @Override - public List getViewers() { - List l = new ArrayList<>(); - l.add(player); - return l; - } - - @Override - public String getTitle() { - return title; - } - - @Override - public InventoryType getType() { - return InventoryType.CHEST; - } - - @Override - public InventoryHolder getHolder() { - return player; - } - - @Override - public ListIterator iterator() { - return null; - } - - @Override - public ListIterator iterator(int index) { - return null; - } - - @Override - public Location getLocation() { - return null; - } } diff --git a/src/de/steamwar/inventory/SWInventory_v12.java b/src/de/steamwar/inventory/SWInventory_v12.java new file mode 100644 index 0000000..4704d7f --- /dev/null +++ b/src/de/steamwar/inventory/SWInventory_v12.java @@ -0,0 +1,11 @@ +package de.steamwar.inventory; + +import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryCustom; +import org.bukkit.entity.Player; + +class SWInventory_v12 extends CraftInventoryCustom { + + SWInventory_v12(Player player, int size, String title) { + super(player, size, title); + } +} diff --git a/src/de/steamwar/inventory/SWInventory_v14.java b/src/de/steamwar/inventory/SWInventory_v14.java new file mode 100644 index 0000000..7b4b827 --- /dev/null +++ b/src/de/steamwar/inventory/SWInventory_v14.java @@ -0,0 +1,11 @@ +package de.steamwar.inventory; + +import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftInventoryCustom; +import org.bukkit.entity.Player; + +class SWInventory_v14 extends CraftInventoryCustom { + + SWInventory_v14(Player player, int size, String title) { + super(player, size, title); + } +} diff --git a/src/de/steamwar/inventory/SWItem.java b/src/de/steamwar/inventory/SWItem.java index cdb3de2..9feeb56 100644 --- a/src/de/steamwar/inventory/SWItem.java +++ b/src/de/steamwar/inventory/SWItem.java @@ -1,10 +1,13 @@ package de.steamwar.inventory; +import de.steamwar.core.Core; import org.bukkit.Material; +import org.bukkit.OfflinePlayer; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -15,6 +18,26 @@ public class SWItem { private ItemMeta itemMeta; private InvCallback callback; + public static SWItem getPlayerSkull(OfflinePlayer player){ + SWItem p = new SWItem(); + ItemStack head = new ItemStack(getMaterial("SKULL_ITEM"), 1, (short) 3); + SkullMeta headmeta = (SkullMeta) head.getItemMeta(); + headmeta.setOwningPlayer(player); + headmeta.setDisplayName(player.getName()); + head.setItemMeta(headmeta); + p.setItemStack(head); + return p; + } + + public static Material getMaterial(String material){ + switch(Core.getVersion()){ + case 14: + return SWItem_v14.getMaterial(material); + default: + return SWItem_v12.getMaterial(material); + } + } + public SWItem(){ itemStack = new ItemStack(Material.AIR); itemMeta = itemStack.getItemMeta(); diff --git a/src/de/steamwar/inventory/SWItem_v12.java b/src/de/steamwar/inventory/SWItem_v12.java new file mode 100644 index 0000000..a34432c --- /dev/null +++ b/src/de/steamwar/inventory/SWItem_v12.java @@ -0,0 +1,11 @@ +package de.steamwar.inventory; + +import org.bukkit.Material; + +class SWItem_v12 { + private SWItem_v12(){} + + static Material getMaterial(String material){ + return Material.valueOf(material); + } +} diff --git a/src/de/steamwar/inventory/SWItem_v14.java b/src/de/steamwar/inventory/SWItem_v14.java new file mode 100644 index 0000000..9525448 --- /dev/null +++ b/src/de/steamwar/inventory/SWItem_v14.java @@ -0,0 +1,11 @@ +package de.steamwar.inventory; + +import org.bukkit.Material; + +class SWItem_v14 { + private SWItem_v14(){} + + static Material getMaterial(String material){ + return Material.valueOf("LEGACY_" + material); + } +} diff --git a/src/de/steamwar/inventory/SWListInv.java b/src/de/steamwar/inventory/SWListInv.java index a02c913..49671e8 100644 --- a/src/de/steamwar/inventory/SWListInv.java +++ b/src/de/steamwar/inventory/SWListInv.java @@ -1,14 +1,12 @@ package de.steamwar.inventory; -import de.warking.hunjy.MySQL.Schematic; -import de.warking.hunjy.MySQL.SchematicType; +import de.steamwar.sql.Schematic; +import de.steamwar.sql.SchematicType; import javafx.util.Pair; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -29,23 +27,23 @@ public class SWListInv extends SWInventory { @Override public void open(){ - clear(); + inventory.clear(); setCallback(-999, (ClickType click) -> player.closeInventory()); if(elements.size() > 54){ if(page != 0) - setItem(45, Material.INK_SACK, (byte)10, "§eSeite zurück", (ClickType click) -> { + setItem(45, SWItem.getMaterial("INK_SACK"), (byte)10, "§eSeite zurück", (ClickType click) -> { page--; open(); }); else - setItem(45, Material.INK_SACK, (byte)8, "§7Seite zurück", (ClickType click) -> {}); + setItem(45, SWItem.getMaterial("INK_SACK"), (byte)8, "§7Seite zurück", (ClickType click) -> {}); if(page < elements.size()/45) - setItem(53, Material.INK_SACK, (byte)10, "§eSeite vor", (ClickType click) -> { + setItem(53, SWItem.getMaterial("INK_SACK"), (byte)10, "§eSeite vor", (ClickType click) -> { page++; open(); }); else - setItem(53, Material.INK_SACK, (byte)8, "§7Seite vor", (ClickType click) -> {}); + setItem(53, SWItem.getMaterial("INK_SACK"), (byte)8, "§7Seite vor", (ClickType click) -> {}); } int ipageLimit = elements.size() - page*45; @@ -78,15 +76,7 @@ public class SWListInv extends SWInventory { if(without != null && player.getUniqueId().equals(without.getUniqueId())) continue; - SWItem p = new SWItem(); - ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - - SkullMeta headmeta = (SkullMeta) head.getItemMeta(); - headmeta.setOwningPlayer(player); - headmeta.setDisplayName(player.getName()); - head.setItemMeta(headmeta); - p.setItemStack(head); - onlinePlayers.add(new Pair<>(p, player.getUniqueId())); + onlinePlayers.add(new Pair<>(SWItem.getPlayerSkull(player), player.getUniqueId())); } return onlinePlayers; } @@ -103,9 +93,9 @@ public class SWListInv extends SWInventory { for(Schematic s : schems){ Material m; if(s.getItem().isEmpty()) - m = Material.CAULDRON_ITEM; + m = SWItem.getMaterial("CAULDRON_ITEM"); else - m = Material.valueOf(s.getItem()); + m = SWItem.getMaterial(s.getItem()); SWItem item = new SWItem(m,"§e" + s.getSchemName()); schemList.add(new Pair<>(item, s)); } diff --git a/src/de/steamwar/sql/BauweltMember.java b/src/de/steamwar/sql/BauweltMember.java new file mode 100644 index 0000000..eebaec8 --- /dev/null +++ b/src/de/steamwar/sql/BauweltMember.java @@ -0,0 +1,129 @@ +package de.steamwar.sql; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; + +public class BauweltMember{ + private final int bauweltID; + private final int memberID; + private boolean build; + private boolean worldEdit; + private boolean world; + + private static final List members = new ArrayList<>(); + + private BauweltMember(int ownerID, int memberID, boolean build, boolean worldEdit, boolean world, boolean updateDB){ + bauweltID = ownerID; + this.memberID = memberID; + this.build = build; + this.worldEdit = worldEdit; + this.world = world; + if(updateDB) + updateDB(); + members.add(this); + } + + public BauweltMember(int ownerID, int memberID, boolean build, boolean worldEdit, boolean world){ + this(ownerID, memberID, build, worldEdit, world, true); + } + + public BauweltMember(UUID ownerID, UUID memberID, boolean build, boolean worldEdit, boolean world){ + this(SteamwarUser.get(ownerID).getId(), SteamwarUser.get(memberID).getId(), build, worldEdit, world, true); + } + + public void remove(){ + SQL.update("DELETE FROM BauweltMember WHERE BauweltID = " + bauweltID + " AND MemberID = " + memberID); + members.remove(this); + } + + private void updateDB(){ + SQL.update("INSERT INTO BauweltMember" + + " (BauweltID, MemberID, Build, WorldEdit, World)" + + " VALUES" + + " ('" + bauweltID + "', '" + memberID + "', '" + SQL.booleanToInt(build) + "', '" + SQL.booleanToInt(worldEdit) + "', '" + SQL.booleanToInt(world) + "')" + + " ON DUPLICATE KEY UPDATE" + + " Build = VALUES(Build), WorldEdit = VALUES(WorldEdit), World = VALUES(World)"); + } + + public static BauweltMember getBauMember(UUID ownerID, UUID memberID){ + return getBauMember(SteamwarUser.get(ownerID).getId(), SteamwarUser.get(memberID).getId()); + } + + public static BauweltMember getBauMember(int ownerID, int memberID){ + for(BauweltMember member : members) + if(member.memberID == memberID) + return member; + ResultSet member = SQL.select("SELECT * FROM BauweltMember WHERE BauweltID = '" + ownerID + "' AND MemberID = '" + memberID + "'"); + try { + if(member == null || !member.next()){ + return null; + } + boolean build = member.getBoolean("Build"); + boolean worldEdit = member.getBoolean("WorldEdit"); + boolean testblock = member.getBoolean("World"); + return new BauweltMember(ownerID, memberID, build, worldEdit, testblock, false); + } catch (SQLException e) { + throw new SecurityException("Did not get member", e); + } + } + + public static List getMembers(UUID bauweltID){ + return getMembers(SteamwarUser.get(bauweltID).getId()); + } + + public static List getMembers(int bauweltID){ + try{ + ResultSet memberlist = SQL.select("SELECT * FROM BauweltMember WHERE BauweltID = '" + bauweltID + "'"); + List members = new LinkedList<>(); + while(memberlist.next()){ + int memberID = memberlist.getInt("MemberID"); + boolean build = memberlist.getBoolean("Build"); + boolean worldEdit = memberlist.getBoolean("WorldEdit"); + boolean testblock = memberlist.getBoolean("World"); + members.add(new BauweltMember(bauweltID, memberID, build, worldEdit, testblock, false)); + } + return members; + }catch(SQLException e){ + throw new SecurityException("Did not get members", e); + } + } + + public int getBauweltID() { + return bauweltID; + } + + public int getMemberID() { + return memberID; + } + + public boolean isBuild() { + return build; + } + + public void setBuild(boolean build) { + this.build = build; + updateDB(); + } + + public boolean isWorldEdit() { + return worldEdit; + } + + public void setWorldEdit(boolean worldEdit) { + this.worldEdit = worldEdit; + updateDB(); + } + + public boolean isWorld() { + return world; + } + + public void setWorld(boolean world) { + this.world = world; + updateDB(); + } +} \ No newline at end of file diff --git a/src/de/steamwar/sql/CheckedSchematic.java b/src/de/steamwar/sql/CheckedSchematic.java new file mode 100644 index 0000000..73929bc --- /dev/null +++ b/src/de/steamwar/sql/CheckedSchematic.java @@ -0,0 +1,98 @@ +package de.steamwar.sql; + +import org.bukkit.Bukkit; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; +import java.util.logging.Level; + + +public class CheckedSchematic { + + private final String schemName; + private final int schemOwner; + private final int validator; + private final Timestamp startTime; + private final Timestamp endTime; + private final String declineReason; + + private CheckedSchematic(String schemName, int schemOwner, int validator, Timestamp startTime, Timestamp endTime, String declineReason, boolean insertDB){ + this.schemName = SQL.disarmString(schemName); + this.schemOwner = schemOwner; + this.validator = validator; + this.startTime = startTime; + this.endTime = endTime; + this.declineReason = SQL.disarmString(declineReason); + if(insertDB) + insertDB(); + } + + public CheckedSchematic(String schemName, int schemOwner, int validator, Timestamp startTime, Timestamp endTime, String declineReason){ + this(schemName, schemOwner, validator, startTime, endTime, declineReason, true); + } + + public CheckedSchematic(String schemName, UUID schemOwner, UUID validator, Timestamp startTime, Timestamp endTime, String declineReason){ + this(schemName, SteamwarUser.get(schemOwner).getId(), SteamwarUser.get(validator).getId(), startTime, endTime, declineReason, true); + } + + private void insertDB(){ + SQL.update("INSERT INTO CheckedSchematic" + + " (SchemName, SchemOwner, Validator, StartTime, EndTime, DeclineReason)" + + " VALUES" + + " ('"+ schemName + "', '" + schemOwner + "', '" + validator + "', '" + startTime.toString() + "', '" + endTime.toString() + "', '" + declineReason + "')"); + } + + public static List getLastDeclined(UUID schemOwner){ + return getLastDelined(SteamwarUser.get(schemOwner).getId()); + } + + public static List getLastDelined(int schemOwner){ + List lastDeclined = new LinkedList<>(); + try{ + ResultSet lastRS = SQL.select("SELECT * FROM CheckedSchematic WHERE SchemOwner = '" + schemOwner + "' AND DeclineReason != '' ORDER BY EndTime DESC"); + while(lastRS.next()){ + String schemName = lastRS.getString("SchemName"); + int validator = lastRS.getInt("Validator"); + Timestamp startTime = lastRS.getTimestamp("StartTime"); + Timestamp endTime = lastRS.getTimestamp("EndTime"); + String declineReason = lastRS.getString("DeclineReason"); + lastDeclined.add(new CheckedSchematic(schemName, schemOwner, validator, startTime, endTime, declineReason, false)); + } + }catch(SQLException e){ + Bukkit.getLogger().log(Level.SEVERE, "getLastDeclined failed", e); + } + return lastDeclined; + } + + public void remove() { + SQL.update("DELETE FROM CheckedSchematic WHERE SchemOwner = " + this.schemOwner + " AND SchemName = '" + this.schemName + "'"); + } + + public String getSchemName() { + return schemName; + } + + public int getSchemOwner() { + return schemOwner; + } + + public int getValidator() { + return validator; + } + + public Timestamp getStartTime() { + return startTime; + } + + public Timestamp getEndTime() { + return endTime; + } + + public String getDeclineReason() { + return declineReason; + } +} diff --git a/src/de/steamwar/sql/Event.java b/src/de/steamwar/sql/Event.java new file mode 100644 index 0000000..2434212 --- /dev/null +++ b/src/de/steamwar/sql/Event.java @@ -0,0 +1,59 @@ +package de.steamwar.sql; + +import org.bukkit.Bukkit; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.logging.Level; + +public class Event { + + private final int eventID; + private final String eventName; + private final Timestamp start; + private final Timestamp end; + private final int maximumTeamMembers; + private final boolean publicSchemsOnly; + + private Event(int eventID, String eventName, Timestamp start, Timestamp end, int maximumTeamMembers, boolean publicSchemsOnly){ + this.eventID = eventID; + this.eventName = eventName; + this.start = start; + this.end = end; + this.maximumTeamMembers = maximumTeamMembers; + this.publicSchemsOnly = publicSchemsOnly; + } + + public static Event get(int eventID){ + ResultSet rs = SQL.select("SELECT * FROM Event WHERE EventID = " + eventID); + try{ + if(!rs.next()) + throw new IllegalArgumentException(); + + return new Event(eventID, rs.getString("EventName"), rs.getTimestamp("Start"), rs.getTimestamp("End"), rs.getInt("MaximumTeamMembers"), rs.getBoolean("PublicSchemsOnly")); + }catch (SQLException e){ + Bukkit.getLogger().log(Level.SEVERE, "Failed to load Event", e); + throw new SecurityException(); + } + } + + public int getEventID() { + return eventID; + } + public String getEventName() { + return eventName; + } + public Timestamp getStart() { + return start; + } + public Timestamp getEnd() { + return end; + } + public int getMaximumTeamMembers() { + return maximumTeamMembers; + } + public boolean publicSchemsOnly() { + return publicSchemsOnly; + } +} diff --git a/src/de/steamwar/sql/EventFight.java b/src/de/steamwar/sql/EventFight.java new file mode 100644 index 0000000..7c39e0e --- /dev/null +++ b/src/de/steamwar/sql/EventFight.java @@ -0,0 +1,76 @@ +package de.steamwar.sql; + +import org.bukkit.Bukkit; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.logging.Level; + +public class EventFight { + private int eventID; + private int fightID; + private int teamBlue; + private int teamRed; + private int kampfleiter; + private int ergebnis; + + private EventFight(int eventID, int fightID, int teamBlue, int teamRed, int kampfleiter, int ergebnis){ + this.eventID = eventID; + this.fightID = fightID; + this.teamBlue = teamBlue; + this.teamRed = teamRed; + this.kampfleiter = kampfleiter; + this.ergebnis = ergebnis; + } + + public static EventFight get(int fightID){ + ResultSet rs = SQL.select("SELECT * FROM EventFight WHERE FightID = " + fightID); + try{ + rs.next(); + return new EventFight( + rs.getInt("EventID"), + fightID, + rs.getInt("TeamBlue"), + rs.getInt("TeamRed"), + rs.getInt("Kampfleiter"), + rs.getInt("Ergebnis")); + }catch (SQLException e){ + Bukkit.getLogger().log(Level.SEVERE, "Failed to load EventFight", e); + } + return null; + } + + /*public void setErgebnis(FightTeam winner){ + if (winner == null) + ergebnis = 0; + else if (winner.isBlue()) + ergebnis = 1; + else + ergebnis = 2; + SQL.update("UPDATE EventFight SET Ergebnis = " + ergebnis + " WHERE FightID = " + fightID); + }*/ + + public int getTeamBlue() { + return teamBlue; + } + + public int getTeamRed() { + return teamRed; + } + + public int getEventID() { + return eventID; + } + + public int getFightID() { + return fightID; + } + + public int getKampfleiter() { + return kampfleiter; + } + + public int getErgebnis() { + return ergebnis; + } +} diff --git a/src/de/steamwar/sql/SQL.java b/src/de/steamwar/sql/SQL.java new file mode 100644 index 0000000..fd243d6 --- /dev/null +++ b/src/de/steamwar/sql/SQL.java @@ -0,0 +1,101 @@ +package de.steamwar.sql; + +import de.steamwar.core.Core; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.sql.*; + + +public class SQL { + + private SQL(){} + + private static final String host; + private static final String port; + private static final String database; + private static final String user; + private static final String password; + private static Connection con; + + static{ + File file = new File(Core.getInstance().getDataFolder(), "MySQL.yml"); + YamlConfiguration config = YamlConfiguration.loadConfiguration(file); + + if(!file.exists()) + throw new SecurityException("SQL-ConfigFile not found!"); + + host = config.getString("HOST"); + port = config.getString("PORT"); + database = config.getString("DATABASE"); + user = config.getString("USER"); + password = config.getString("PASSWORD"); + + connect(); + } + + static Integer booleanToInt(boolean b){ + if(b) + return 1; + else + return 0; + } + + public static void closeConnection() { + try { + con.close(); + }catch (SQLException e) { + throw new SecurityException("Could not close connection", e); + } + } + + static void update(String qry) { + try { + PreparedStatement st = con.prepareStatement(qry); + st.executeUpdate(); + } catch (SQLException e) { + reconnect(); + try { + PreparedStatement st = con.prepareStatement(qry); + st.executeUpdate(); + } catch (SQLException ex) { + throw new SecurityException("Could not perform update", ex); + } + } + } + + static ResultSet select(String qry) { + try { + PreparedStatement st = con.prepareStatement(qry); + return st.executeQuery(); + } catch (SQLException e) { + reconnect(); + try { + PreparedStatement st = con.prepareStatement(qry); + return st.executeQuery(); + } catch (SQLException ex) { + throw new SecurityException("Could not perform select", ex); + } + } + } + + static String disarmString(String s){ + return s.replace("'", ""); + } + + + private static void connect() { + try { + con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?autoreconnect=true", user, password); + if(con.isClosed()) + throw new SQLException("Could not connect to database!"); + }catch (SQLException e) { + throw new SecurityException("No connection to database.", e); + } + } + + private static void reconnect(){ + closeConnection(); + connect(); + } +} diff --git a/src/de/warking/hunjy/MySQL/Schematic.java b/src/de/steamwar/sql/Schematic.java similarity index 68% rename from src/de/warking/hunjy/MySQL/Schematic.java rename to src/de/steamwar/sql/Schematic.java index d0c3ad0..340252e 100644 --- a/src/de/warking/hunjy/MySQL/Schematic.java +++ b/src/de/steamwar/sql/Schematic.java @@ -1,4 +1,4 @@ -package de.warking.hunjy.MySQL; +package de.steamwar.sql; import java.sql.ResultSet; import java.sql.SQLException; @@ -6,14 +6,12 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import static de.warking.hunjy.Core.sql; - public class Schematic { - private final String SchemName; - private final int SchemOwner; - private String Item; - private SchematicType SchemType; + private final String schemName; + private final int schemOwner; + private String item; + private SchematicType schemType; private Schematic(ResultSet rs) throws SQLException { this( @@ -25,10 +23,10 @@ public class Schematic { } private Schematic(String schemName, int schemOwner, String item, SchematicType schemType, boolean updateDB){ - SchemName = schemName; - SchemOwner = schemOwner; - Item = item; - SchemType = schemType; + this.schemName = schemName; + this.schemOwner = schemOwner; + this.item = item; + this.schemType = schemType; if(updateDB) updateDB(); } @@ -38,25 +36,25 @@ public class Schematic { } public Schematic(String schemName, UUID schemOwner, String item, SchematicType schemType){ - this(schemName, WarkingUser.get(schemOwner).getId(), item, schemType, true); + this(schemName, SteamwarUser.get(schemOwner).getId(), item, schemType, true); } private void updateDB(){ - sql.update("INSERT INTO Schematic" + - " (SchemName, SchemOwner, Item, SchemType)" + - " VALUES" + - " ('" + SchemName + "', '" + SchemOwner + "', '" + Item + "', '" + SchemType.toDB() + "')" + - " ON DUPLICATE KEY UPDATE" + - " Item = VALUES(Item), SchemType = VALUES(SchemType)"); + SQL.update("INSERT INTO Schematic" + + " (SchemName, SchemOwner, Item, SchemType)" + + " VALUES" + + " ('" + schemName + "', '" + schemOwner + "', '" + item + "', '" + schemType.toDB() + "')" + + " ON DUPLICATE KEY UPDATE" + + " Item = VALUES(Item), SchemType = VALUES(SchemType)"); } public static Schematic getSchemFromDB(String schemName, UUID schemOwner){ - return getSchemFromDB(schemName, WarkingUser.get(schemOwner).getId()); + return getSchemFromDB(schemName, SteamwarUser.get(schemOwner).getId()); } public static Schematic getSchemFromDB(String schemName, int schemOwner){ - schemName = MySQL.disarmString(schemName); - ResultSet schematic = sql.select("SELECT * FROM Schematic WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "'"); + schemName = SQL.disarmString(schemName); + ResultSet schematic = SQL.select("SELECT * FROM Schematic WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "'"); try { if(schematic == null || !schematic.next()){ SchematicMember member = SchematicMember.getMemberBySchematic(schemName, schemOwner); @@ -73,12 +71,12 @@ public class Schematic { } public static List getSchemsAccessibleByUser(UUID schemOwner){ - return getSchemsAccessibleByUser(WarkingUser.get(schemOwner).getId()); + return getSchemsAccessibleByUser(SteamwarUser.get(schemOwner).getId()); } public static List getSchemsAccessibleByUser(int schemOwner){ try{ - ResultSet schematic = sql.select("SELECT * FROM Schematic WHERE SchemOwner = '" + schemOwner + "'"); + ResultSet schematic = SQL.select("SELECT * FROM Schematic WHERE SchemOwner = '" + schemOwner + "'"); List schematics = new ArrayList<>(); while(schematic.next()){ schematics.add(new Schematic(schematic)); @@ -95,7 +93,7 @@ public class Schematic { } public static List getSchemsOfType(UUID schemOwner, SchematicType schemType){ - return getSchemsOfType(WarkingUser.get(schemOwner).getId(), schemType); + return getSchemsOfType(SteamwarUser.get(schemOwner).getId(), schemType); } public static List getSchemsOfType(int schemOwner, SchematicType schemType){ @@ -110,7 +108,7 @@ public class Schematic { public static List getAllSchemsOfType(SchematicType schemType){ try{ - ResultSet schematic = sql.select("SELECT * FROM Schematic WHERE SchemType = '" + schemType.toDB() + "'"); + ResultSet schematic = SQL.select("SELECT * FROM Schematic WHERE SchemType = '" + schemType.toDB() + "'"); List schematics = new ArrayList<>(); while(schematic.next()){ schematics.add(new Schematic(schematic)); @@ -123,33 +121,33 @@ public class Schematic { } public String getSchemName() { - return SchemName; + return schemName; } public int getSchemOwner() { - return SchemOwner; + return schemOwner; } public String getItem() { - return Item; + return item; } public void setItem(String item) { - Item = item; + this.item = item; updateDB(); } public SchematicType getSchemType() { - return SchemType; + return schemType; } public void setSchemType(SchematicType schemType) { - SchemType = schemType; + this.schemType = schemType; updateDB(); } public void remove(){ - sql.update("DELETE FROM Schematic WHERE SchemOwner = " + SchemOwner + " AND SchemName = '" + SchemName + "'"); - sql.update("DELETE FROM SchemMember WHERE SchemOwner = " + SchemOwner + " AND SchemName = '" + SchemName + "'"); + SQL.update("DELETE FROM Schematic WHERE SchemOwner = " + schemOwner + " AND SchemName = '" + schemName + "'"); + SQL.update("DELETE FROM SchemMember WHERE SchemOwner = " + schemOwner + " AND SchemName = '" + schemName + "'"); } } diff --git a/src/de/warking/hunjy/MySQL/SchematicMember.java b/src/de/steamwar/sql/SchematicMember.java similarity index 65% rename from src/de/warking/hunjy/MySQL/SchematicMember.java rename to src/de/steamwar/sql/SchematicMember.java index 8c2a3b5..4fb7c5e 100644 --- a/src/de/warking/hunjy/MySQL/SchematicMember.java +++ b/src/de/steamwar/sql/SchematicMember.java @@ -1,4 +1,4 @@ -package de.warking.hunjy.MySQL; +package de.steamwar.sql; import java.sql.ResultSet; import java.sql.SQLException; @@ -6,17 +6,15 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import static de.warking.hunjy.Core.sql; - public class SchematicMember { - private final int SchemOwner; - private final String SchemName; - private final int Member; + private final int schemOwner; + private final String schemName; + private final int member; private SchematicMember(String schemName, int schemOwner, int schemMember, boolean updateDB){ - SchemOwner = schemOwner; - Member = schemMember; - SchemName = schemName; + this.schemOwner = schemOwner; + member = schemMember; + this.schemName = schemName; if(updateDB) updateDB(); } @@ -26,35 +24,34 @@ public class SchematicMember { } public SchematicMember(String schemName, UUID schemOwner, UUID schemMember){ - this(schemName, WarkingUser.get(schemOwner).getId(), WarkingUser.get(schemMember).getId(), true); + this(schemName, SteamwarUser.get(schemOwner).getId(), SteamwarUser.get(schemMember).getId(), true); } private void updateDB(){ - sql.update("INSERT INTO SchemMember" + - " (SchemName, SchemOwner, Member)" + - " VALUES" + - " ('" + SchemName + "', '" + SchemOwner + "', '" + Member + "')"); + SQL.update("INSERT INTO SchemMember" + + " (SchemName, SchemOwner, Member)" + + " VALUES" + + " ('" + schemName + "', '" + schemOwner + "', '" + member + "')"); } public static SchematicMember getSchemMemberFromDB(String schemName, UUID schemOwner, UUID schemMember){ - return getSchemMemberFromDB(schemName, WarkingUser.get(schemOwner).getId(), WarkingUser.get(schemMember).getId()); + return getSchemMemberFromDB(schemName, SteamwarUser.get(schemOwner).getId(), SteamwarUser.get(schemMember).getId()); } public static SchematicMember getSchemMemberFromDB(String schemName, int schemOwner, int schemMember){ - ResultSet schematicMember = sql.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "' AND Member = '" + schemMember + "'"); + ResultSet schematicMember = SQL.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "' AND Member = '" + schemMember + "'"); try { if(schematicMember == null || !schematicMember.next()){ return null; } return new SchematicMember(schemName, schemOwner, schemMember, false); } catch (SQLException e) { - e.printStackTrace(); + throw new SecurityException("Could not get schemmember", e); } - return null; } public static SchematicMember getMemberBySchematic(String schemName, int schemMember){ - ResultSet schematicMember = sql.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND Member = '" + schemMember + "'"); + ResultSet schematicMember = SQL.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND Member = '" + schemMember + "'"); try { if(schematicMember == null || !schematicMember.next()){ return null; @@ -62,17 +59,16 @@ public class SchematicMember { int schemOwner = schematicMember.getInt("SchemOwner"); return new SchematicMember(schemName, schemOwner, schemMember, false); } catch (SQLException e) { - e.printStackTrace(); + throw new SecurityException("Could not get member", e); } - return null; } public static List getSchemMembers(String schemName, UUID schemOwner){ - return getSchemMembers(schemName, WarkingUser.get(schemOwner).getId()); + return getSchemMembers(schemName, SteamwarUser.get(schemOwner).getId()); } public static List getSchemMembers(String schemName, int schemOwner){ - ResultSet schematicMember = sql.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "'"); + ResultSet schematicMember = SQL.select("SELECT * FROM SchemMember WHERE SchemName = '" + schemName + "' AND SchemOwner = '" + schemOwner + "'"); try { List schematicMembers = new ArrayList<>(); while(schematicMember.next()){ @@ -81,17 +77,16 @@ public class SchematicMember { } return schematicMembers; } catch (SQLException e) { - e.printStackTrace(); + throw new SecurityException("Could not get schemmembers", e); } - return null; } public static List getAccessibleSchems(UUID schemMember){ - return getAccessibleSchems(WarkingUser.get(schemMember).getId()); + return getAccessibleSchems(SteamwarUser.get(schemMember).getId()); } public static List getAccessibleSchems(int schemMember){ - ResultSet schematicMember = sql.select("SELECT * FROM SchemMember WHERE Member = '" + schemMember + "'"); + ResultSet schematicMember = SQL.select("SELECT * FROM SchemMember WHERE Member = '" + schemMember + "'"); try { List schematicMembers = new ArrayList<>(); while(schematicMember.next()){ @@ -101,24 +96,23 @@ public class SchematicMember { } return schematicMembers; } catch (SQLException e) { - e.printStackTrace(); + throw new SecurityException("Could not get accessible schems", e); } - return null; } public int getSchemOwner() { - return SchemOwner; + return schemOwner; } public String getSchemName() { - return SchemName; + return schemName; } public int getMember() { - return Member; + return member; } public void remove(){ - sql.update("DELETE FROM SchemMember WHERE SchemOwner = " + SchemOwner + " AND SchemName = '" + SchemName + "' AND Member = '" + Member + "'"); + SQL.update("DELETE FROM SchemMember WHERE SchemOwner = " + schemOwner + " AND SchemName = '" + schemName + "' AND Member = '" + member + "'"); } } diff --git a/src/de/warking/hunjy/MySQL/SchematicType.java b/src/de/steamwar/sql/SchematicType.java similarity index 98% rename from src/de/warking/hunjy/MySQL/SchematicType.java rename to src/de/steamwar/sql/SchematicType.java index 0823a83..367f806 100644 --- a/src/de/warking/hunjy/MySQL/SchematicType.java +++ b/src/de/steamwar/sql/SchematicType.java @@ -1,4 +1,4 @@ -package de.warking.hunjy.MySQL; +package de.steamwar.sql; import java.util.HashMap; import java.util.Map; diff --git a/src/de/steamwar/sql/SteamwarUser.java b/src/de/steamwar/sql/SteamwarUser.java new file mode 100644 index 0000000..9e8606a --- /dev/null +++ b/src/de/steamwar/sql/SteamwarUser.java @@ -0,0 +1,98 @@ +package de.steamwar.sql; + +import de.steamwar.core.Core; +import org.bukkit.Bukkit; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +public class SteamwarUser { + + private static final Map byUUID = new HashMap<>(); + private static final Map byName = new HashMap<>(); + private static final Map byId = new HashMap<>(); + + static{ + Bukkit.getScheduler().runTaskTimer(Core.getInstance(), () -> { + byId.clear(); + byName.clear(); + byUUID.clear(); + }, 72000, 72000); + } + + private final int id; + private final UUID uuid; + private final String userName; + private final UserGroup userGroup; + private final int team; + + private SteamwarUser(ResultSet rs){ + try { + id = rs.getInt("id"); + uuid = java.util.UUID.fromString(rs.getString("UUID")); + userName = rs.getString("UserName"); + userGroup = de.steamwar.sql.UserGroup.valueOf(rs.getString("UserGroup")); + team = rs.getInt("Team"); + + byUUID.put(uuid, this); + byName.put(userName.toLowerCase(), this); + byId.put(id, this); + } catch (SQLException e) { + throw new SecurityException("Could not instance User", e); + } + } + + public int getId() { + return id; + } + + public UUID getUUID() { + return uuid; + } + + public String getUserName() { + return userName; + } + + public UserGroup getUserGroup() { + return userGroup; + } + + public int getTeam(){ + return team; + } + + private static SteamwarUser fromDB(String statement){ + ResultSet rs = SQL.select(statement); + try { + if(rs.next()) + return new SteamwarUser(rs); + } catch (SQLException e) { + throw new SecurityException("SQL Statement failed to get User", e); + } + return null; + } + + public static SteamwarUser get(String userName){ + userName = SQL.disarmString(userName); + SteamwarUser user = byName.get(userName.toLowerCase()); + if(user == null) + user = fromDB("SELECT * FROM UserData WHERE lower(UserName) = '" + userName.toLowerCase() + "'"); + return user; + } + + public static SteamwarUser get(UUID uuid){ + SteamwarUser user = byUUID.get(uuid); + if(user == null) + user = fromDB("SELECT * FROM UserData WHERE UUID = '" + uuid.toString() + "'"); + return user; + } + + public static SteamwarUser get(int id) { + SteamwarUser user = byId.get(id); + if(user == null) + user = fromDB("SELECT * FROM UserData WHERE id = '" + id + "'"); + return user; + } +} diff --git a/src/de/steamwar/sql/Team.java b/src/de/steamwar/sql/Team.java new file mode 100644 index 0000000..3f03ef1 --- /dev/null +++ b/src/de/steamwar/sql/Team.java @@ -0,0 +1,63 @@ +package de.steamwar.sql; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.LinkedList; +import java.util.List; + +public class Team { + private final int teamId; + private final String teamKuerzel; + private final String teamName; + private final int teamLeader; + + private Team(ResultSet rs){ + try { + teamId = rs.getInt("TeamID"); + teamKuerzel = rs.getString("TeamKuerzel"); + teamName = rs.getString("TeamName"); + teamLeader = rs.getInt("TeamLeader"); + } catch (SQLException e) { + throw new SecurityException("Could not load team", e); + } + } + + public static Team get(int id){ + ResultSet rs = SQL.select("SELECT * FROM Team WHERE TeamID = " + id); + try { + if(!rs.next()) + return null; + } catch (SQLException e) { + throw new SecurityException("Could not load team", e); + } + return new Team(rs); + } + + public int getTeamId() { + return teamId; + } + + public String getTeamKuerzel() { + return teamKuerzel; + } + + public String getTeamName() { + return teamName; + } + + public int getTeamLeader() { + return teamLeader; + } + + public List getMembers(){ + try{ + ResultSet memberlist = SQL.select("SELECT id FROM UserData WHERE Team = '" + teamId + "'"); + List members = new LinkedList<>(); + while(memberlist.next()) + members.add(memberlist.getInt("id")); + return members; + }catch(SQLException e){ + throw new SecurityException("Could not load Teammembers", e); + } + } +} diff --git a/src/de/warking/hunjy/MySQL/UserGroup.java b/src/de/steamwar/sql/UserGroup.java similarity index 77% rename from src/de/warking/hunjy/MySQL/UserGroup.java rename to src/de/steamwar/sql/UserGroup.java index 60150f2..174b6f0 100644 --- a/src/de/warking/hunjy/MySQL/UserGroup.java +++ b/src/de/steamwar/sql/UserGroup.java @@ -1,4 +1,4 @@ -package de.warking.hunjy.MySQL; +package de.steamwar.sql; public enum UserGroup { Admin, diff --git a/src/de/warking/hunjy/MySQL/MySQL.java b/src/de/warking/hunjy/MySQL/MySQL.java deleted file mode 100644 index 9a9c413..0000000 --- a/src/de/warking/hunjy/MySQL/MySQL.java +++ /dev/null @@ -1,98 +0,0 @@ -package de.warking.hunjy.MySQL; - -import de.warking.hunjy.Core; - -import java.sql.*; - - -public class MySQL { - private String host; - private String port; - private String database; - private String user; - private String password; - private Connection con; - - public static Integer booleanToInt(boolean b){ - if(b) - return 1; - else - return 0; - } - - public MySQL() { - this.host = Core.getInstance().getFileManager().getConfig().getString("HOST"); - this.port = Core.getInstance().getFileManager().getConfig().getString("PORT"); - this.database = Core.getInstance().getFileManager().getConfig().getString("DATABASE"); - this.user = Core.getInstance().getFileManager().getConfig().getString("USER"); - this.password = Core.getInstance().getFileManager().getConfig().getString("PASSWORD"); - - connect(); - } - - public void connect() { - try { - con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?autoreconnect=true", user, password); - if(con == null) - System.err.println("Fatal ERROR: Could not connect to database!"); - }catch (SQLException e) { - e.printStackTrace(); - } - } - - private void reconnect(){ - closeConnection(); - connect(); - } - - public void closeConnection() { - try { - if(con != null) - con.close(); - }catch (SQLException e) { - e.printStackTrace(); - } - } - - public void update(String qry) { - if(con == null){ - return; - } - try { - PreparedStatement st = con.prepareStatement(qry); - st.executeUpdate(); - } catch (SQLException e) { - reconnect(); - try { - PreparedStatement st = con.prepareStatement(qry); - st.executeUpdate(); - } catch (SQLException ex) { - ex.printStackTrace(); - } - } - } - - public ResultSet select(String qry) { - if(con == null){ - return null; - } - try { - PreparedStatement st = con.prepareStatement(qry); - return st.executeQuery(); - } catch (SQLException e) { - reconnect(); - try { - PreparedStatement st = con.prepareStatement(qry); - return st.executeQuery(); - } catch (SQLException ex) { - ex.printStackTrace(); - } - } - - return null; - } - - public static String disarmString(String s){ - return s.replace("'", ""); - } -} diff --git a/src/de/warking/hunjy/MySQL/WarkingUser.java b/src/de/warking/hunjy/MySQL/WarkingUser.java deleted file mode 100644 index 01eef32..0000000 --- a/src/de/warking/hunjy/MySQL/WarkingUser.java +++ /dev/null @@ -1,99 +0,0 @@ -package de.warking.hunjy.MySQL; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -import static de.warking.hunjy.Core.sql; - -public class WarkingUser { - - private static final List allUsers = new ArrayList<>(); - - private int id; - private UUID UUID; - private String UserName; - private UserGroup UserGroup; - private int Team; - - public WarkingUser(UUID uuid){ - ResultSet dbplayer = sql.select("SELECT * FROM UserData WHERE UUID = '" + uuid.toString() + "'"); - init(dbplayer); - } - - public WarkingUser(int id){ - ResultSet dbplayer = sql.select("SELECT * FROM UserData WHERE id = '" + id + "'"); - init(dbplayer); - } - - public WarkingUser(String name){ - ResultSet dbplayer = sql.select("SELECT * FROM UserData WHERE lower(UserName) = '" + name.toLowerCase() + "'"); - init(dbplayer); - } - - private void init(ResultSet dbplayer){ - try { - if(!dbplayer.next()) - return; - id = dbplayer.getInt("id"); - this.UUID = java.util.UUID.fromString(dbplayer.getString("UUID")); - UserName = dbplayer.getString("UserName"); - UserGroup = de.warking.hunjy.MySQL.UserGroup.valueOf(dbplayer.getString("UserGroup")); - Team = dbplayer.getInt("Team"); - allUsers.add(this); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public int getId() { - return id; - } - - public java.util.UUID getUUID() { - return UUID; - } - - public String getUserName() { - return UserName; - } - - public UserGroup getUserGroup() { - return UserGroup; - } - - public int getTeam(){ - return Team; - } - - public static WarkingUser get(String userName){ - userName = MySQL.disarmString(userName); - for(WarkingUser user : allUsers) - if(user.UserName.equalsIgnoreCase(userName)) - return user; - WarkingUser offline = new WarkingUser(userName); - return offline; - } - - public static WarkingUser get(UUID uuid){ - for(WarkingUser user : allUsers) - if(user.UUID.equals(uuid)) - return user; - WarkingUser offline = new WarkingUser(uuid); - return offline; - } - - public static WarkingUser get(int id){ - for(WarkingUser user : allUsers) - if(user.id == id) - return user; - WarkingUser offline = new WarkingUser(id); - return offline; - } - - public static void clearCache(){ - allUsers.clear(); - } -} diff --git a/src/plugin.yml b/src/plugin.yml index 9563749..e8d0b15 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -3,6 +3,6 @@ version: 1.0 author: hunjy, Lixfel -main: de.warking.hunjy.Core +main: de.steamwar.core.Core commands: \ No newline at end of file From 6244c79b6309c5729a161bb46d3037cf2e6c5642 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 10 Nov 2019 17:28:09 +0100 Subject: [PATCH 2/9] Massive Refactoring + adding 1.14 support --- SpigotCore_12/pom.xml | 37 ++++++++++ .../steamwar/inventory/SWInventory_v12.java | 13 ++++ .../de/steamwar/inventory/SWItem_v12.java | 4 ++ SpigotCore_14/pom.xml | 37 ++++++++++ .../steamwar/inventory/SWInventory_v14.java | 13 ++++ .../src/de/steamwar/inventory/SWItem_v14.java | 48 +++++++++++++ SpigotCore_Main/pom.xml | 68 +++++++++++++++++++ .../src}/de/steamwar/core/CommandRemover.java | 0 .../src}/de/steamwar/core/Core.java | 0 .../steamwar/core/events/ChattingEvent.java | 4 +- .../core/events/PlayerJoinedEvent.java | 0 .../de/steamwar/inventory/InvCallback.java | 0 .../de/steamwar/inventory/SWInventory.java | 6 +- .../src}/de/steamwar/inventory/SWItem.java | 15 +++- .../src}/de/steamwar/inventory/SWListInv.java | 8 +-- .../src}/de/steamwar/sql/BauweltMember.java | 0 .../de/steamwar/sql/CheckedSchematic.java | 0 .../src}/de/steamwar/sql/Event.java | 0 .../src}/de/steamwar/sql/EventFight.java | 12 +--- .../src}/de/steamwar/sql/SQL.java | 0 .../src}/de/steamwar/sql/Schematic.java | 0 .../src}/de/steamwar/sql/SchematicMember.java | 0 .../src}/de/steamwar/sql/SchematicType.java | 0 .../src}/de/steamwar/sql/SteamwarUser.java | 0 .../src}/de/steamwar/sql/Team.java | 0 .../src}/de/steamwar/sql/UserGroup.java | 0 SpigotCore_Main/src/plugin.yml | 7 ++ pom.xml | 37 +++------- .../steamwar/inventory/SWInventory_v12.java | 11 --- .../steamwar/inventory/SWInventory_v14.java | 11 --- src/de/steamwar/inventory/SWItem_v14.java | 11 --- src/plugin.yml | 8 --- 32 files changed, 260 insertions(+), 90 deletions(-) create mode 100644 SpigotCore_12/pom.xml create mode 100644 SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java rename {src => SpigotCore_12/src}/de/steamwar/inventory/SWItem_v12.java (74%) create mode 100644 SpigotCore_14/pom.xml create mode 100644 SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java create mode 100644 SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java create mode 100644 SpigotCore_Main/pom.xml rename {src => SpigotCore_Main/src}/de/steamwar/core/CommandRemover.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/core/Core.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/core/events/ChattingEvent.java (63%) rename {src => SpigotCore_Main/src}/de/steamwar/core/events/PlayerJoinedEvent.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/inventory/InvCallback.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/inventory/SWInventory.java (93%) rename {src => SpigotCore_Main/src}/de/steamwar/inventory/SWItem.java (89%) rename {src => SpigotCore_Main/src}/de/steamwar/inventory/SWListInv.java (87%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/BauweltMember.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/CheckedSchematic.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/Event.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/EventFight.java (84%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/SQL.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/Schematic.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/SchematicMember.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/SchematicType.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/SteamwarUser.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/Team.java (100%) rename {src => SpigotCore_Main/src}/de/steamwar/sql/UserGroup.java (100%) create mode 100644 SpigotCore_Main/src/plugin.yml delete mode 100644 src/de/steamwar/inventory/SWInventory_v12.java delete mode 100644 src/de/steamwar/inventory/SWInventory_v14.java delete mode 100644 src/de/steamwar/inventory/SWItem_v14.java delete mode 100644 src/plugin.yml diff --git a/SpigotCore_12/pom.xml b/SpigotCore_12/pom.xml new file mode 100644 index 0000000..82c5e9d --- /dev/null +++ b/SpigotCore_12/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + steamwar + SpigotCore + 2.0 + + + SpigotCore_12 + 2.0 + + + src + + + src + + **/*.java + **/*.kt + + + + + + + + steamwar + Spigot-1.12 + 1.0 + provided + + + \ No newline at end of file diff --git a/SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java b/SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java new file mode 100644 index 0000000..6e8e006 --- /dev/null +++ b/SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java @@ -0,0 +1,13 @@ +package de.steamwar.inventory; + +import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryCustom; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; + +class SWInventory_v12 { + private SWInventory_v12(){} + + static Inventory get(Player player, int size, String title){ + return new CraftInventoryCustom(player, size, title); + } +} diff --git a/src/de/steamwar/inventory/SWItem_v12.java b/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java similarity index 74% rename from src/de/steamwar/inventory/SWItem_v12.java rename to SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java index a34432c..fc6c33b 100644 --- a/src/de/steamwar/inventory/SWItem_v12.java +++ b/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java @@ -8,4 +8,8 @@ class SWItem_v12 { static Material getMaterial(String material){ return Material.valueOf(material); } + + static Material getDye(){ + return Material.INK_SACK; + } } diff --git a/SpigotCore_14/pom.xml b/SpigotCore_14/pom.xml new file mode 100644 index 0000000..37ebf61 --- /dev/null +++ b/SpigotCore_14/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + steamwar + SpigotCore + 2.0 + + + SpigotCore_14 + 2.0 + + + src + + + src + + **/*.java + **/*.kt + + + + + + + + steamwar + Spigot-1.14 + 1.0 + provided + + + \ No newline at end of file diff --git a/SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java b/SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java new file mode 100644 index 0000000..e24fa02 --- /dev/null +++ b/SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java @@ -0,0 +1,13 @@ +package de.steamwar.inventory; + +import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftInventoryCustom; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; + +class SWInventory_v14 { + private SWInventory_v14() {} + + static Inventory get(Player player, int size, String title){ + return new CraftInventoryCustom(player, size, title); + } +} diff --git a/SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java b/SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java new file mode 100644 index 0000000..d881616 --- /dev/null +++ b/SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java @@ -0,0 +1,48 @@ +package de.steamwar.inventory; + +import org.bukkit.Material; + +class SWItem_v14 { + private SWItem_v14(){} + + static Material getMaterial(String material) { + return Material.valueOf("LEGACY_" + material); + } + + static Material getDye(int colorCode){ + switch(colorCode){ + case 1: + return Material.RED_DYE; + case 2: + return Material.GREEN_DYE; + case 3: + return Material.BROWN_DYE; + case 4: + return Material.LAPIS_LAZULI; + case 5: + return Material.PURPLE_DYE; + case 6: + return Material.CYAN_DYE; + case 7: + return Material.LIGHT_GRAY_DYE; + case 8: + return Material.GRAY_DYE; + case 9: + return Material.PINK_DYE; + case 10: + return Material.LIME_DYE; + case 11: + return Material.YELLOW_DYE; + case 12: + return Material.LIGHT_BLUE_DYE; + case 13: + return Material.MAGENTA_DYE; + case 14: + return Material.ORANGE_DYE; + case 15: + return Material.WHITE_DYE; + default: + return Material.BLACK_DYE; + } + } +} diff --git a/SpigotCore_Main/pom.xml b/SpigotCore_Main/pom.xml new file mode 100644 index 0000000..64c843d --- /dev/null +++ b/SpigotCore_Main/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + + steamwar + SpigotCore + 2.0 + + + SpigotCore_Main + 2.0 + jar + + + src + + + src + + **/*.java + **/*.kt + + + + + + maven-assembly-plugin + + + package + + single + + + + + + jar-with-dependencies + + + + + + + + + steamwar + Spigot-1.12 + 1.0 + provided + + + steamwar + SpigotCore_12 + 2.0 + compile + + + steamwar + SpigotCore_14 + 2.0 + compile + + + \ No newline at end of file diff --git a/src/de/steamwar/core/CommandRemover.java b/SpigotCore_Main/src/de/steamwar/core/CommandRemover.java similarity index 100% rename from src/de/steamwar/core/CommandRemover.java rename to SpigotCore_Main/src/de/steamwar/core/CommandRemover.java diff --git a/src/de/steamwar/core/Core.java b/SpigotCore_Main/src/de/steamwar/core/Core.java similarity index 100% rename from src/de/steamwar/core/Core.java rename to SpigotCore_Main/src/de/steamwar/core/Core.java diff --git a/src/de/steamwar/core/events/ChattingEvent.java b/SpigotCore_Main/src/de/steamwar/core/events/ChattingEvent.java similarity index 63% rename from src/de/steamwar/core/events/ChattingEvent.java rename to SpigotCore_Main/src/de/steamwar/core/events/ChattingEvent.java index 17eff2f..fd95b2e 100644 --- a/src/de/steamwar/core/events/ChattingEvent.java +++ b/SpigotCore_Main/src/de/steamwar/core/events/ChattingEvent.java @@ -1,6 +1,5 @@ package de.steamwar.core.events; -import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -9,7 +8,6 @@ public class ChattingEvent implements Listener { @EventHandler private void onChat(AsyncPlayerChatEvent event) { - Player player = event.getPlayer(); - event.setFormat("§eLokal §r"+ player.getDisplayName() + "§8» §7" + event.getMessage()); + event.setFormat("§eLokal §r"+ event.getPlayer().getDisplayName() + "§8» §7" + event.getMessage()); } } diff --git a/src/de/steamwar/core/events/PlayerJoinedEvent.java b/SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java similarity index 100% rename from src/de/steamwar/core/events/PlayerJoinedEvent.java rename to SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java diff --git a/src/de/steamwar/inventory/InvCallback.java b/SpigotCore_Main/src/de/steamwar/inventory/InvCallback.java similarity index 100% rename from src/de/steamwar/inventory/InvCallback.java rename to SpigotCore_Main/src/de/steamwar/inventory/InvCallback.java diff --git a/src/de/steamwar/inventory/SWInventory.java b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java similarity index 93% rename from src/de/steamwar/inventory/SWInventory.java rename to SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java index 19607ea..74b346c 100644 --- a/src/de/steamwar/inventory/SWInventory.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java @@ -26,10 +26,10 @@ public class SWInventory implements Listener { player = p; switch(Core.getVersion()){ case 14: - inventory = new SWInventory_v14(p, size, t); + inventory = SWInventory_v14.get(p, size, t); break; default: - inventory = new SWInventory_v12(p, size, t); + inventory = SWInventory_v12.get(p, size, t); } } @@ -81,7 +81,7 @@ public class SWInventory implements Listener { e.setCancelled(true); if(callbacks.containsKey(e.getRawSlot())) - callbacks.get(e.getSlot()).clicked(e.getClick()); + callbacks.get(e.getRawSlot()).clicked(e.getClick()); } @EventHandler diff --git a/src/de/steamwar/inventory/SWItem.java b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java similarity index 89% rename from src/de/steamwar/inventory/SWItem.java rename to SpigotCore_Main/src/de/steamwar/inventory/SWItem.java index 9feeb56..bcfdeac 100644 --- a/src/de/steamwar/inventory/SWItem.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java @@ -38,6 +38,15 @@ public class SWItem { } } + public static Material getDye(int colorCode){ + switch(Core.getVersion()){ + case 14: + return SWItem_v14.getDye(colorCode); + default: + return SWItem_v12.getDye(); + } + } + public SWItem(){ itemStack = new ItemStack(Material.AIR); itemMeta = itemStack.getItemMeta(); @@ -53,7 +62,11 @@ public class SWItem { } public SWItem(Material material, byte meta, String name, List lore, boolean enchanted, InvCallback c){ - itemStack = new ItemStack(material, 1, (short)0, meta); + try{ + itemStack = new ItemStack(material, 1, (short)0, meta); + }catch(IllegalArgumentException e){ + itemStack = new ItemStack(material, 1); + } itemMeta = itemStack.getItemMeta(); if(itemMeta != null){ diff --git a/src/de/steamwar/inventory/SWListInv.java b/SpigotCore_Main/src/de/steamwar/inventory/SWListInv.java similarity index 87% rename from src/de/steamwar/inventory/SWListInv.java rename to SpigotCore_Main/src/de/steamwar/inventory/SWListInv.java index 49671e8..72f6e8e 100644 --- a/src/de/steamwar/inventory/SWListInv.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWListInv.java @@ -31,19 +31,19 @@ public class SWListInv extends SWInventory { setCallback(-999, (ClickType click) -> player.closeInventory()); if(elements.size() > 54){ if(page != 0) - setItem(45, SWItem.getMaterial("INK_SACK"), (byte)10, "§eSeite zurück", (ClickType click) -> { + setItem(45, SWItem.getDye(10), (byte)10, "§eSeite zurück", (ClickType click) -> { page--; open(); }); else - setItem(45, SWItem.getMaterial("INK_SACK"), (byte)8, "§7Seite zurück", (ClickType click) -> {}); + setItem(45, SWItem.getDye(8), (byte)8, "§7Seite zurück", (ClickType click) -> {}); if(page < elements.size()/45) - setItem(53, SWItem.getMaterial("INK_SACK"), (byte)10, "§eSeite vor", (ClickType click) -> { + setItem(53, SWItem.getDye(10), (byte)10, "§eSeite vor", (ClickType click) -> { page++; open(); }); else - setItem(53, SWItem.getMaterial("INK_SACK"), (byte)8, "§7Seite vor", (ClickType click) -> {}); + setItem(53, SWItem.getDye(8), (byte)8, "§7Seite vor", (ClickType click) -> {}); } int ipageLimit = elements.size() - page*45; diff --git a/src/de/steamwar/sql/BauweltMember.java b/SpigotCore_Main/src/de/steamwar/sql/BauweltMember.java similarity index 100% rename from src/de/steamwar/sql/BauweltMember.java rename to SpigotCore_Main/src/de/steamwar/sql/BauweltMember.java diff --git a/src/de/steamwar/sql/CheckedSchematic.java b/SpigotCore_Main/src/de/steamwar/sql/CheckedSchematic.java similarity index 100% rename from src/de/steamwar/sql/CheckedSchematic.java rename to SpigotCore_Main/src/de/steamwar/sql/CheckedSchematic.java diff --git a/src/de/steamwar/sql/Event.java b/SpigotCore_Main/src/de/steamwar/sql/Event.java similarity index 100% rename from src/de/steamwar/sql/Event.java rename to SpigotCore_Main/src/de/steamwar/sql/Event.java diff --git a/src/de/steamwar/sql/EventFight.java b/SpigotCore_Main/src/de/steamwar/sql/EventFight.java similarity index 84% rename from src/de/steamwar/sql/EventFight.java rename to SpigotCore_Main/src/de/steamwar/sql/EventFight.java index 7c39e0e..65a31cb 100644 --- a/src/de/steamwar/sql/EventFight.java +++ b/SpigotCore_Main/src/de/steamwar/sql/EventFight.java @@ -40,15 +40,9 @@ public class EventFight { return null; } - /*public void setErgebnis(FightTeam winner){ - if (winner == null) - ergebnis = 0; - else if (winner.isBlue()) - ergebnis = 1; - else - ergebnis = 2; - SQL.update("UPDATE EventFight SET Ergebnis = " + ergebnis + " WHERE FightID = " + fightID); - }*/ + public void setErgebnis(int winner){ + SQL.update("UPDATE EventFight SET Ergebnis = " + winner + " WHERE FightID = " + fightID); + } public int getTeamBlue() { return teamBlue; diff --git a/src/de/steamwar/sql/SQL.java b/SpigotCore_Main/src/de/steamwar/sql/SQL.java similarity index 100% rename from src/de/steamwar/sql/SQL.java rename to SpigotCore_Main/src/de/steamwar/sql/SQL.java diff --git a/src/de/steamwar/sql/Schematic.java b/SpigotCore_Main/src/de/steamwar/sql/Schematic.java similarity index 100% rename from src/de/steamwar/sql/Schematic.java rename to SpigotCore_Main/src/de/steamwar/sql/Schematic.java diff --git a/src/de/steamwar/sql/SchematicMember.java b/SpigotCore_Main/src/de/steamwar/sql/SchematicMember.java similarity index 100% rename from src/de/steamwar/sql/SchematicMember.java rename to SpigotCore_Main/src/de/steamwar/sql/SchematicMember.java diff --git a/src/de/steamwar/sql/SchematicType.java b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java similarity index 100% rename from src/de/steamwar/sql/SchematicType.java rename to SpigotCore_Main/src/de/steamwar/sql/SchematicType.java diff --git a/src/de/steamwar/sql/SteamwarUser.java b/SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java similarity index 100% rename from src/de/steamwar/sql/SteamwarUser.java rename to SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java diff --git a/src/de/steamwar/sql/Team.java b/SpigotCore_Main/src/de/steamwar/sql/Team.java similarity index 100% rename from src/de/steamwar/sql/Team.java rename to SpigotCore_Main/src/de/steamwar/sql/Team.java diff --git a/src/de/steamwar/sql/UserGroup.java b/SpigotCore_Main/src/de/steamwar/sql/UserGroup.java similarity index 100% rename from src/de/steamwar/sql/UserGroup.java rename to SpigotCore_Main/src/de/steamwar/sql/UserGroup.java diff --git a/SpigotCore_Main/src/plugin.yml b/SpigotCore_Main/src/plugin.yml new file mode 100644 index 0000000..4101be6 --- /dev/null +++ b/SpigotCore_Main/src/plugin.yml @@ -0,0 +1,7 @@ +name: SpigotCore +version: 1.0 +author: Lixfel +api-version: 1.13 + +main: de.steamwar.core.Core +commands: \ No newline at end of file diff --git a/pom.xml b/pom.xml index 30937db..44e9722 100644 --- a/pom.xml +++ b/pom.xml @@ -4,10 +4,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - de.steamwar + steamwar SpigotCore - 1.0 - jar + 2.0 + pom https://maven.apache.org @@ -22,16 +22,6 @@ - src - - - src - - **/*.java - **/*.kt - - - org.apache.maven.plugins @@ -45,20 +35,9 @@ - - - steamwar - Spigot-1.12 - 1.0 - provided - true - - - steamwar - Spigot-1.14 - 1.0 - provided - true - - + + SpigotCore_12 + SpigotCore_14 + SpigotCore_Main + \ No newline at end of file diff --git a/src/de/steamwar/inventory/SWInventory_v12.java b/src/de/steamwar/inventory/SWInventory_v12.java deleted file mode 100644 index 4704d7f..0000000 --- a/src/de/steamwar/inventory/SWInventory_v12.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.steamwar.inventory; - -import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryCustom; -import org.bukkit.entity.Player; - -class SWInventory_v12 extends CraftInventoryCustom { - - SWInventory_v12(Player player, int size, String title) { - super(player, size, title); - } -} diff --git a/src/de/steamwar/inventory/SWInventory_v14.java b/src/de/steamwar/inventory/SWInventory_v14.java deleted file mode 100644 index 7b4b827..0000000 --- a/src/de/steamwar/inventory/SWInventory_v14.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.steamwar.inventory; - -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftInventoryCustom; -import org.bukkit.entity.Player; - -class SWInventory_v14 extends CraftInventoryCustom { - - SWInventory_v14(Player player, int size, String title) { - super(player, size, title); - } -} diff --git a/src/de/steamwar/inventory/SWItem_v14.java b/src/de/steamwar/inventory/SWItem_v14.java deleted file mode 100644 index 9525448..0000000 --- a/src/de/steamwar/inventory/SWItem_v14.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.steamwar.inventory; - -import org.bukkit.Material; - -class SWItem_v14 { - private SWItem_v14(){} - - static Material getMaterial(String material){ - return Material.valueOf("LEGACY_" + material); - } -} diff --git a/src/plugin.yml b/src/plugin.yml deleted file mode 100644 index e8d0b15..0000000 --- a/src/plugin.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: CoreSystem -version: 1.0 - -author: hunjy, Lixfel - -main: de.steamwar.core.Core - -commands: \ No newline at end of file From 5e917150c2a72d84f0eb10e80c443eb2fe63e125 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 10 Nov 2019 20:31:28 +0100 Subject: [PATCH 3/9] 1.8 Support --- SpigotCore_12/pom.xml | 4 +- SpigotCore_14/pom.xml | 4 +- SpigotCore_8/pom.xml | 37 +++++++++++++++++++ .../de/steamwar/inventory/SWInventory_v8.java | 13 +++++++ SpigotCore_Main/pom.xml | 10 ++++- .../src/de/steamwar/core/Core.java | 2 + .../de/steamwar/inventory/SWInventory.java | 3 ++ pom.xml | 1 + 8 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 SpigotCore_8/pom.xml create mode 100644 SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java diff --git a/SpigotCore_12/pom.xml b/SpigotCore_12/pom.xml index 82c5e9d..eb4680f 100644 --- a/SpigotCore_12/pom.xml +++ b/SpigotCore_12/pom.xml @@ -29,8 +29,8 @@ steamwar - Spigot-1.12 - 1.0 + Spigot + 1.12 provided diff --git a/SpigotCore_14/pom.xml b/SpigotCore_14/pom.xml index 37ebf61..9b030de 100644 --- a/SpigotCore_14/pom.xml +++ b/SpigotCore_14/pom.xml @@ -29,8 +29,8 @@ steamwar - Spigot-1.14 - 1.0 + Spigot + 1.14 provided diff --git a/SpigotCore_8/pom.xml b/SpigotCore_8/pom.xml new file mode 100644 index 0000000..5f39805 --- /dev/null +++ b/SpigotCore_8/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + steamwar + SpigotCore + 2.0 + + + SpigotCore_8 + 2.0 + + + src + + + src + + **/*.java + **/*.kt + + + + + + + + steamwar + Spigot + 1.8 + provided + + + \ No newline at end of file diff --git a/SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java b/SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java new file mode 100644 index 0000000..51c13bc --- /dev/null +++ b/SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java @@ -0,0 +1,13 @@ +package de.steamwar.inventory; + +import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventoryCustom; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; + +class SWInventory_v8 { + private SWInventory_v8(){} + + static Inventory get(Player player, int size, String title){ + return new CraftInventoryCustom(player, size, title); + } +} diff --git a/SpigotCore_Main/pom.xml b/SpigotCore_Main/pom.xml index 64c843d..884634a 100644 --- a/SpigotCore_Main/pom.xml +++ b/SpigotCore_Main/pom.xml @@ -48,10 +48,16 @@ steamwar - Spigot-1.12 - 1.0 + Spigot + 1.12 provided + + steamwar + SpigotCore_8 + 2.0 + compile + steamwar SpigotCore_12 diff --git a/SpigotCore_Main/src/de/steamwar/core/Core.java b/SpigotCore_Main/src/de/steamwar/core/Core.java index fc51e6f..21894c0 100644 --- a/SpigotCore_Main/src/de/steamwar/core/Core.java +++ b/SpigotCore_Main/src/de/steamwar/core/Core.java @@ -19,6 +19,8 @@ public class Core extends JavaPlugin{ version = 10; else if(packageName.contains("1_9")) version = 9; + else if(packageName.contains("1_8")) + version = 8; else version = 12; } diff --git a/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java index 74b346c..0c7e621 100644 --- a/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java @@ -25,6 +25,9 @@ public class SWInventory implements Listener { callbacks = new HashMap<>(); player = p; switch(Core.getVersion()){ + case 8: + inventory = SWInventory_v8.get(p, size, t); + break; case 14: inventory = SWInventory_v14.get(p, size, t); break; diff --git a/pom.xml b/pom.xml index 44e9722..fc30e8b 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,7 @@ + SpigotCore_8 SpigotCore_12 SpigotCore_14 SpigotCore_Main From ed452b285617b7ac842841974245f559fd46fa56 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 10 Nov 2019 23:55:21 +0100 Subject: [PATCH 4/9] Fixing Material not found --- .../de/steamwar/core/events/PlayerJoinedEvent.java | 2 +- .../src/de/steamwar/inventory/SWItem.java | 14 +++++++++----- .../src/de/steamwar/sql/SteamwarUser.java | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java b/SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java index 3461df9..edae08e 100644 --- a/SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java +++ b/SpigotCore_Main/src/de/steamwar/core/events/PlayerJoinedEvent.java @@ -12,7 +12,7 @@ public class PlayerJoinedEvent implements Listener{ @EventHandler private void onJoin(PlayerJoinEvent event) { - Player player = event.getPlayer(); + Player player = event.getPlayer(); SteamwarUser user = SteamwarUser.get(player.getUniqueId()); switch(user.getUserGroup()){ diff --git a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java index bcfdeac..d956c00 100644 --- a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java @@ -30,11 +30,15 @@ public class SWItem { } public static Material getMaterial(String material){ - switch(Core.getVersion()){ - case 14: - return SWItem_v14.getMaterial(material); - default: - return SWItem_v12.getMaterial(material); + try{ + switch(Core.getVersion()){ + case 14: + return SWItem_v14.getMaterial(material); + default: + return SWItem_v12.getMaterial(material); + } + }catch(IllegalArgumentException e){ + return Material.STONE; } } diff --git a/SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java b/SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java index 9e8606a..55a1df2 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java +++ b/SpigotCore_Main/src/de/steamwar/sql/SteamwarUser.java @@ -32,7 +32,7 @@ public class SteamwarUser { id = rs.getInt("id"); uuid = java.util.UUID.fromString(rs.getString("UUID")); userName = rs.getString("UserName"); - userGroup = de.steamwar.sql.UserGroup.valueOf(rs.getString("UserGroup")); + userGroup = UserGroup.valueOf(rs.getString("UserGroup")); team = rs.getInt("Team"); byUUID.put(uuid, this); From ecb8eec074aef4c09b25cf71f21203938a1aa372 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Mon, 11 Nov 2019 19:57:17 +0100 Subject: [PATCH 5/9] Fixing 1.8 Skull issue --- .../src/de/steamwar/inventory/SWItem_v12.java | 6 ++++++ .../src/de/steamwar/inventory/SWItem_v8.java | 12 ++++++++++++ .../src/de/steamwar/inventory/SWItem.java | 8 +++++++- .../src/de/steamwar/sql/SchematicType.java | 6 +++++- 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java diff --git a/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java b/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java index fc6c33b..f852bca 100644 --- a/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java +++ b/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java @@ -1,6 +1,8 @@ package de.steamwar.inventory; import org.bukkit.Material; +import org.bukkit.OfflinePlayer; +import org.bukkit.inventory.meta.SkullMeta; class SWItem_v12 { private SWItem_v12(){} @@ -12,4 +14,8 @@ class SWItem_v12 { static Material getDye(){ return Material.INK_SACK; } + + static void setSkullOwner(OfflinePlayer player, SkullMeta meta){ + meta.setOwningPlayer(player); + } } diff --git a/SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java b/SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java new file mode 100644 index 0000000..88fd025 --- /dev/null +++ b/SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java @@ -0,0 +1,12 @@ +package de.steamwar.inventory; + +import org.bukkit.OfflinePlayer; +import org.bukkit.inventory.meta.SkullMeta; + +class SWItem_v8 { + private SWItem_v8(){} + + static void setSkullOwner(OfflinePlayer player, SkullMeta meta){ + meta.setOwner(player.getName()); + } +} diff --git a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java index d956c00..43f5dfe 100644 --- a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java @@ -22,7 +22,13 @@ public class SWItem { SWItem p = new SWItem(); ItemStack head = new ItemStack(getMaterial("SKULL_ITEM"), 1, (short) 3); SkullMeta headmeta = (SkullMeta) head.getItemMeta(); - headmeta.setOwningPlayer(player); + switch(Core.getVersion()){ + case 8: + SWItem_v8.setSkullOwner(player, headmeta); + break; + default: + SWItem_v12.setSkullOwner(player, headmeta); + } headmeta.setDisplayName(player.getName()); head.setItemMeta(headmeta); p.setItemStack(head); diff --git a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java index 367f806..9860c27 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java +++ b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java @@ -16,7 +16,11 @@ public enum SchematicType { CGearUp("CGU", Type.CHECK_TYPE), GearUp("GU", Type.FIGHT_TYPE, CGearUp), CEiszeit("CEZ", Type.CHECK_TYPE), - Eiszeit("EZ", Type.FIGHT_TYPE); + Eiszeit("EZ", Type.FIGHT_TYPE), + CWarShip1_8("CWS1.8", Type.CHECK_TYPE), + CWarGear1_7("CWG1.7", Type.CHECK_TYPE), + WarShip1_8("WS1.8", Type.CHECK_TYPE), + WarGear1_7("WG1.7", Type.FIGHT_TYPE, CWarGear1_7); private static Map fromDB = new HashMap<>(); From 3d42b4e091a123b62e618ed622cf5b30ea51079d Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 16 Nov 2019 08:40:04 +0100 Subject: [PATCH 6/9] Adding public-team --- .../src/de/steamwar/sql/SchematicType.java | 2 +- SpigotCore_Main/src/de/steamwar/sql/Team.java | 24 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java index 9860c27..330dd16 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java +++ b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java @@ -20,7 +20,7 @@ public enum SchematicType { CWarShip1_8("CWS1.8", Type.CHECK_TYPE), CWarGear1_7("CWG1.7", Type.CHECK_TYPE), WarShip1_8("WS1.8", Type.CHECK_TYPE), - WarGear1_7("WG1.7", Type.FIGHT_TYPE, CWarGear1_7); + WarGear1_7("WG1.7", Type.CHECK_TYPE); private static Map fromDB = new HashMap<>(); diff --git a/SpigotCore_Main/src/de/steamwar/sql/Team.java b/SpigotCore_Main/src/de/steamwar/sql/Team.java index 3f03ef1..f82680e 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/Team.java +++ b/SpigotCore_Main/src/de/steamwar/sql/Team.java @@ -11,26 +11,30 @@ public class Team { private final String teamName; private final int teamLeader; - private Team(ResultSet rs){ - try { - teamId = rs.getInt("TeamID"); - teamKuerzel = rs.getString("TeamKuerzel"); - teamName = rs.getString("TeamName"); - teamLeader = rs.getInt("TeamLeader"); - } catch (SQLException e) { - throw new SecurityException("Could not load team", e); - } + private static final Team pub = new Team(0, "PUB", "Öffentlich", 0); + + private Team(int teamId, String teamKuerzel, String teamName, int teamLeader){ + this.teamId = teamId; + this.teamKuerzel = teamKuerzel; + this.teamName = teamName; + this.teamLeader = teamLeader; + } + + private Team(ResultSet rs) throws SQLException { + this(rs.getInt("TeamID"), rs.getString("TeamKuerzel"), rs.getString("TeamName"), rs.getInt("TeamLeader")); } public static Team get(int id){ + if(id == 0) + return pub; ResultSet rs = SQL.select("SELECT * FROM Team WHERE TeamID = " + id); try { if(!rs.next()) return null; + return new Team(rs); } catch (SQLException e) { throw new SecurityException("Could not load team", e); } - return new Team(rs); } public int getTeamId() { From e366c3c0eecaa11930df5b1d1fbf6812302c6e72 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Mon, 18 Nov 2019 18:44:29 +0100 Subject: [PATCH 7/9] Changing SchematicType --- SpigotCore_Main/src/de/steamwar/sql/SchematicType.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java index 330dd16..a9c5b95 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java +++ b/SpigotCore_Main/src/de/steamwar/sql/SchematicType.java @@ -13,14 +13,14 @@ public enum SchematicType { WarGear("WG", Type.FIGHT_TYPE, CWarGear), WarShip("WS", Type.FIGHT_TYPE, CWarShip), MiniWarGear("MWG", Type.FIGHT_TYPE, CMiniWarGear), - CGearUp("CGU", Type.CHECK_TYPE), - GearUp("GU", Type.FIGHT_TYPE, CGearUp), CEiszeit("CEZ", Type.CHECK_TYPE), Eiszeit("EZ", Type.FIGHT_TYPE), CWarShip1_8("CWS1.8", Type.CHECK_TYPE), CWarGear1_7("CWG1.7", Type.CHECK_TYPE), - WarShip1_8("WS1.8", Type.CHECK_TYPE), - WarGear1_7("WG1.7", Type.CHECK_TYPE); + WarShip1_8("WS1.8", Type.FIGHT_TYPE, CWarShip1_8), + WarGear1_7("WG1.7", Type.FIGHT_TYPE, CWarGear1_7), + CMPPWarGear1_12("CMPPWG", Type.CHECK_TYPE), + MPPWarGear1_12("MPPWG", Type.FIGHT_TYPE, CMPPWarGear1_12); private static Map fromDB = new HashMap<>(); From 6e30c05b66e5815bca87837110beaeeb2b312eb0 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 20 Nov 2019 14:05:12 +0100 Subject: [PATCH 8/9] Changing build process --- .gitignore | 3 ++- SpigotCore_Main/pom.xml | 12 +++++------- pom.xml | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index ec376bb..7eae63f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea -target \ No newline at end of file +target +dependency-reduced-pom.xml \ No newline at end of file diff --git a/SpigotCore_Main/pom.xml b/SpigotCore_Main/pom.xml index 884634a..c05ee63 100644 --- a/SpigotCore_Main/pom.xml +++ b/SpigotCore_Main/pom.xml @@ -27,22 +27,20 @@ - maven-assembly-plugin + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 package - single + shade - - - jar-with-dependencies - - + SpigotCore diff --git a/pom.xml b/pom.xml index fc30e8b..dbc56a3 100644 --- a/pom.xml +++ b/pom.xml @@ -33,6 +33,7 @@ + ${project.name} From 4a8206edaef6712112496ab18d3ee38be1623715 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 20 Nov 2019 14:07:57 +0100 Subject: [PATCH 9/9] Unifying naming --- .../{SWInventory_v12.java => SWInventory_12.java} | 4 ++-- .../inventory/{SWItem_v12.java => SWItem_12.java} | 4 ++-- .../{SWInventory_v14.java => SWInventory_14.java} | 4 ++-- .../inventory/{SWItem_v14.java => SWItem_14.java} | 4 ++-- .../{SWInventory_v8.java => SWInventory_8.java} | 4 ++-- .../inventory/{SWItem_v8.java => SWItem_8.java} | 4 ++-- .../src/de/steamwar/inventory/SWInventory.java | 6 +++--- .../src/de/steamwar/inventory/SWItem.java | 12 ++++++------ 8 files changed, 21 insertions(+), 21 deletions(-) rename SpigotCore_12/src/de/steamwar/inventory/{SWInventory_v12.java => SWInventory_12.java} (84%) rename SpigotCore_12/src/de/steamwar/inventory/{SWItem_v12.java => SWItem_12.java} (90%) rename SpigotCore_14/src/de/steamwar/inventory/{SWInventory_v14.java => SWInventory_14.java} (84%) rename SpigotCore_14/src/de/steamwar/inventory/{SWItem_v14.java => SWItem_14.java} (96%) rename SpigotCore_8/src/de/steamwar/inventory/{SWInventory_v8.java => SWInventory_8.java} (85%) rename SpigotCore_8/src/de/steamwar/inventory/{SWItem_v8.java => SWItem_8.java} (83%) diff --git a/SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java b/SpigotCore_12/src/de/steamwar/inventory/SWInventory_12.java similarity index 84% rename from SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java rename to SpigotCore_12/src/de/steamwar/inventory/SWInventory_12.java index 6e8e006..2c7ee2c 100644 --- a/SpigotCore_12/src/de/steamwar/inventory/SWInventory_v12.java +++ b/SpigotCore_12/src/de/steamwar/inventory/SWInventory_12.java @@ -4,8 +4,8 @@ import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryCustom; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; -class SWInventory_v12 { - private SWInventory_v12(){} +class SWInventory_12 { + private SWInventory_12(){} static Inventory get(Player player, int size, String title){ return new CraftInventoryCustom(player, size, title); diff --git a/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java b/SpigotCore_12/src/de/steamwar/inventory/SWItem_12.java similarity index 90% rename from SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java rename to SpigotCore_12/src/de/steamwar/inventory/SWItem_12.java index f852bca..c1a16c3 100644 --- a/SpigotCore_12/src/de/steamwar/inventory/SWItem_v12.java +++ b/SpigotCore_12/src/de/steamwar/inventory/SWItem_12.java @@ -4,8 +4,8 @@ import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.inventory.meta.SkullMeta; -class SWItem_v12 { - private SWItem_v12(){} +class SWItem_12 { + private SWItem_12(){} static Material getMaterial(String material){ return Material.valueOf(material); diff --git a/SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java b/SpigotCore_14/src/de/steamwar/inventory/SWInventory_14.java similarity index 84% rename from SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java rename to SpigotCore_14/src/de/steamwar/inventory/SWInventory_14.java index e24fa02..18deaa6 100644 --- a/SpigotCore_14/src/de/steamwar/inventory/SWInventory_v14.java +++ b/SpigotCore_14/src/de/steamwar/inventory/SWInventory_14.java @@ -4,8 +4,8 @@ import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftInventoryCustom; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; -class SWInventory_v14 { - private SWInventory_v14() {} +class SWInventory_14 { + private SWInventory_14() {} static Inventory get(Player player, int size, String title){ return new CraftInventoryCustom(player, size, title); diff --git a/SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java b/SpigotCore_14/src/de/steamwar/inventory/SWItem_14.java similarity index 96% rename from SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java rename to SpigotCore_14/src/de/steamwar/inventory/SWItem_14.java index d881616..f83a56b 100644 --- a/SpigotCore_14/src/de/steamwar/inventory/SWItem_v14.java +++ b/SpigotCore_14/src/de/steamwar/inventory/SWItem_14.java @@ -2,8 +2,8 @@ package de.steamwar.inventory; import org.bukkit.Material; -class SWItem_v14 { - private SWItem_v14(){} +class SWItem_14 { + private SWItem_14(){} static Material getMaterial(String material) { return Material.valueOf("LEGACY_" + material); diff --git a/SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java b/SpigotCore_8/src/de/steamwar/inventory/SWInventory_8.java similarity index 85% rename from SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java rename to SpigotCore_8/src/de/steamwar/inventory/SWInventory_8.java index 51c13bc..d1f1d21 100644 --- a/SpigotCore_8/src/de/steamwar/inventory/SWInventory_v8.java +++ b/SpigotCore_8/src/de/steamwar/inventory/SWInventory_8.java @@ -4,8 +4,8 @@ import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventoryCustom; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; -class SWInventory_v8 { - private SWInventory_v8(){} +class SWInventory_8 { + private SWInventory_8(){} static Inventory get(Player player, int size, String title){ return new CraftInventoryCustom(player, size, title); diff --git a/SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java b/SpigotCore_8/src/de/steamwar/inventory/SWItem_8.java similarity index 83% rename from SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java rename to SpigotCore_8/src/de/steamwar/inventory/SWItem_8.java index 88fd025..2b770b4 100644 --- a/SpigotCore_8/src/de/steamwar/inventory/SWItem_v8.java +++ b/SpigotCore_8/src/de/steamwar/inventory/SWItem_8.java @@ -3,8 +3,8 @@ package de.steamwar.inventory; import org.bukkit.OfflinePlayer; import org.bukkit.inventory.meta.SkullMeta; -class SWItem_v8 { - private SWItem_v8(){} +class SWItem_8 { + private SWItem_8(){} static void setSkullOwner(OfflinePlayer player, SkullMeta meta){ meta.setOwner(player.getName()); diff --git a/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java index 0c7e621..143262b 100644 --- a/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWInventory.java @@ -26,13 +26,13 @@ public class SWInventory implements Listener { player = p; switch(Core.getVersion()){ case 8: - inventory = SWInventory_v8.get(p, size, t); + inventory = SWInventory_8.get(p, size, t); break; case 14: - inventory = SWInventory_v14.get(p, size, t); + inventory = SWInventory_14.get(p, size, t); break; default: - inventory = SWInventory_v12.get(p, size, t); + inventory = SWInventory_12.get(p, size, t); } } diff --git a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java index 43f5dfe..8b8df63 100644 --- a/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java +++ b/SpigotCore_Main/src/de/steamwar/inventory/SWItem.java @@ -24,10 +24,10 @@ public class SWItem { SkullMeta headmeta = (SkullMeta) head.getItemMeta(); switch(Core.getVersion()){ case 8: - SWItem_v8.setSkullOwner(player, headmeta); + SWItem_8.setSkullOwner(player, headmeta); break; default: - SWItem_v12.setSkullOwner(player, headmeta); + SWItem_12.setSkullOwner(player, headmeta); } headmeta.setDisplayName(player.getName()); head.setItemMeta(headmeta); @@ -39,9 +39,9 @@ public class SWItem { try{ switch(Core.getVersion()){ case 14: - return SWItem_v14.getMaterial(material); + return SWItem_14.getMaterial(material); default: - return SWItem_v12.getMaterial(material); + return SWItem_12.getMaterial(material); } }catch(IllegalArgumentException e){ return Material.STONE; @@ -51,9 +51,9 @@ public class SWItem { public static Material getDye(int colorCode){ switch(Core.getVersion()){ case 14: - return SWItem_v14.getDye(colorCode); + return SWItem_14.getDye(colorCode); default: - return SWItem_v12.getDye(); + return SWItem_12.getDye(); } }