From ce3c1d547cea5f4af3fa0109edd90a22ffa7274a Mon Sep 17 00:00:00 2001 From: unurled Date: Tue, 5 Apr 2022 18:07:37 +0200 Subject: [PATCH] 0.4.9 remade attribute system, made everything work --- .gitignore | 2 +- build.gradle | 2 +- docs/TODO.md | 6 +- src/main/java/gq/unurled/raxen/Raxen.java | 2 +- .../raxen/commands/admin/NbtCommand.java | 17 +- .../raxen/commands/admin/SpawnEntity.java | 4 +- .../raxen/commands/player/SkillsCommand.java | 78 +---- .../raxen/components/entity/Attributes.java | 272 ----------------- .../entity/Attributes/Attribute.java | 126 ++++++++ .../components/entity/Attributes/Defense.java | 11 + .../components/entity/Attributes/Health.java | 11 + .../entity/Attributes/ItemDefense.java | 10 + .../entity/Attributes/ItemHealth.java | 10 + .../entity/Attributes/ItemLuck.java | 10 + .../entity/Attributes/ItemMana.java | 10 + .../entity/Attributes/ItemSpeed.java | 10 + .../entity/Attributes/ItemStrength.java | 10 + .../components/entity/Attributes/Luck.java | 11 + .../components/entity/Attributes/Mana.java | 11 + .../entity/Attributes/MaxHealth.java | 10 + .../components/entity/Attributes/MaxMana.java | 10 + .../entity/Attributes/MaxManaBuilder.java | 22 ++ .../components/entity/Attributes/Speed.java | 10 + .../entity/Attributes/Strength.java | 11 + .../entity/EntityNamespacedKey.java | 49 --- .../raxen/components/entity/EntityUtils.java | 57 ---- .../entity/other/EntityNamespacedKey.java | 49 +++ .../components/entity/other/EntityUtils.java | 70 +++++ .../entity/{ => other}/RaxenEntity.java | 2 +- .../entity/{ => other}/custom/Entity.java | 2 +- .../custom/hostile/low/Goblin.java | 6 +- .../components/entity/other/spawn/Eggs.java | 4 + .../{ => entity}/player/Inventories.java | 4 +- .../components/entity/player/PlayerUtils.java | 42 +++ .../{ => entity}/player/RaxenPlayer.java | 22 +- .../{ => entity}/player/Scoreboard.java | 2 +- .../{ => entity}/player/Storage.java | 4 +- .../player/attributes/Attribute.java | 2 +- .../entity/player/attributes/Attributes.java | 57 ++++ .../{ => entity}/player/classes/Class.java | 2 +- .../{ => entity}/player/classes/Classes.java | 2 +- .../player/classes/list/Assassin.java | 2 +- .../player/storages/EnderChest.java | 2 +- .../player/storages/Inventory.java | 2 +- .../raxen/components/entity/spawn/Eggs.java | 4 - .../raxen/components/gui/ItemListGui.java | 2 +- .../raxen/components/lootchest/GUI.java | 2 +- .../raxen/components/player/PlayerUtils.java | 29 -- .../player/attributes/Attributes.java | 286 ------------------ .../gq/unurled/raxen/config/PlayerConfig.java | 65 ++-- .../raxen/listener/entity/DamageEntity.java | 58 ++-- .../raxen/listener/entity/SpawnEvent.java | 8 +- .../raxen/listener/player/ArmorEvent.java | 28 +- .../raxen/listener/player/ItemHandEvent.java | 31 +- .../raxen/listener/player/JoinEvent.java | 2 +- .../listener/player/TransactionEvent.java | 2 +- .../gq/unurled/raxen/manager/Manager.java | 10 +- .../raxen/manager/entity/EntityManager.java | 2 +- .../raxen/manager/entity/PlayerManager.java | 136 ++++++++- .../unurled/raxen/utils/EntityAttributes.java | 55 ++++ .../java/gq/unurled/raxen/utils/Items.java | 148 ++------- .../gq/unurled/raxen/utils/libs/Citizens.java | 23 ++ .../gq/unurled/raxen/utils/libs/LuckPerm.java | 24 ++ .../gq/unurled/raxen/utils/libs/MongoDB.java | 47 +++ .../gq/unurled/raxen/utils/libs/Mysql.java | 46 +++ .../raxen/utils/libs/PlaceHolderAPI.java | 18 ++ .../gq/unurled/raxen/utils/libs/Vault.java | 48 +++ .../unurled/raxen/utils/libs/WorldEdit.java | 5 + src/main/resources/config.yml | 24 +- 69 files changed, 1109 insertions(+), 1052 deletions(-) delete mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Attribute.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Defense.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Health.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemDefense.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemHealth.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemLuck.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemMana.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemSpeed.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemStrength.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Luck.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Mana.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxHealth.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxMana.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxManaBuilder.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Speed.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/Attributes/Strength.java delete mode 100644 src/main/java/gq/unurled/raxen/components/entity/EntityNamespacedKey.java delete mode 100644 src/main/java/gq/unurled/raxen/components/entity/EntityUtils.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/other/EntityNamespacedKey.java create mode 100644 src/main/java/gq/unurled/raxen/components/entity/other/EntityUtils.java rename src/main/java/gq/unurled/raxen/components/entity/{ => other}/RaxenEntity.java (96%) rename src/main/java/gq/unurled/raxen/components/entity/{ => other}/custom/Entity.java (96%) rename src/main/java/gq/unurled/raxen/components/entity/{ => other}/custom/hostile/low/Goblin.java (73%) create mode 100644 src/main/java/gq/unurled/raxen/components/entity/other/spawn/Eggs.java rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/Inventories.java (68%) create mode 100644 src/main/java/gq/unurled/raxen/components/entity/player/PlayerUtils.java rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/RaxenPlayer.java (84%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/Scoreboard.java (97%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/Storage.java (67%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/attributes/Attribute.java (93%) create mode 100644 src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attributes.java rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/classes/Class.java (92%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/classes/Classes.java (98%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/classes/list/Assassin.java (86%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/storages/EnderChest.java (85%) rename src/main/java/gq/unurled/raxen/components/{ => entity}/player/storages/Inventory.java (85%) delete mode 100644 src/main/java/gq/unurled/raxen/components/entity/spawn/Eggs.java delete mode 100644 src/main/java/gq/unurled/raxen/components/player/PlayerUtils.java delete mode 100644 src/main/java/gq/unurled/raxen/components/player/attributes/Attributes.java create mode 100644 src/main/java/gq/unurled/raxen/utils/EntityAttributes.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/Citizens.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/LuckPerm.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/MongoDB.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/Mysql.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/PlaceHolderAPI.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/Vault.java create mode 100644 src/main/java/gq/unurled/raxen/utils/libs/WorldEdit.java diff --git a/.gitignore b/.gitignore index 9470ce0..8a53917 100644 --- a/.gitignore +++ b/.gitignore @@ -6,10 +6,10 @@ .classpath .project api/ -libs/ *.iml .gradle/ +gradle.properties *.lock diff --git a/build.gradle b/build.gradle index 1316f14..9f5cc19 100644 --- a/build.gradle +++ b/build.gradle @@ -78,7 +78,7 @@ dependencies { } group = 'gq.unurled' -version = '0.4.8' +version = '0.4.9' description = 'Raxen' java.sourceCompatibility = JavaVersion.VERSION_17 diff --git a/docs/TODO.md b/docs/TODO.md index cc7c9cf..d1ed400 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,5 +1,7 @@ -- [ ] refactor all abilities to make them compatible between entities and also making it easier to add them. +- [x] refactor all abilities to make them compatible between entities and also making it easier to add them. - [ ] make custom items (hard coded) - [ ] make custom class (hard coded) - [ ] make custom abilities (hard coded) -- [ ] make custom mods (hard coded) \ No newline at end of file +- [ ] make custom mods (hard coded) +- [ ] make gates +- [ ] a map \ No newline at end of file diff --git a/src/main/java/gq/unurled/raxen/Raxen.java b/src/main/java/gq/unurled/raxen/Raxen.java index 9fadbf0..1cb9219 100644 --- a/src/main/java/gq/unurled/raxen/Raxen.java +++ b/src/main/java/gq/unurled/raxen/Raxen.java @@ -19,7 +19,7 @@ public final class Raxen extends JavaPlugin { private static final String prefix = "Rx> "; @Getter - private static String version = "0.4.8"; + private static String version = "0.4.9"; private final PluginManager pm = getServer().getPluginManager(); private static Raxen plugin; diff --git a/src/main/java/gq/unurled/raxen/commands/admin/NbtCommand.java b/src/main/java/gq/unurled/raxen/commands/admin/NbtCommand.java index 0d78ab0..35d63eb 100644 --- a/src/main/java/gq/unurled/raxen/commands/admin/NbtCommand.java +++ b/src/main/java/gq/unurled/raxen/commands/admin/NbtCommand.java @@ -2,13 +2,15 @@ package gq.unurled.raxen.commands.admin; import de.tr7zw.nbtapi.NBTItem; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.attributes.Attributes; +import gq.unurled.raxen.components.entity.player.attributes.Attributes; +import gq.unurled.raxen.manager.entity.PlayerManager; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -18,7 +20,7 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import static gq.unurled.raxen.components.player.PlayerUtils.updateSkills; +import static gq.unurled.raxen.components.entity.player.PlayerUtils.updateSkills; import static gq.unurled.raxen.utils.Items.attributes; import static gq.unurled.raxen.utils.Utils.*; @@ -75,19 +77,22 @@ public class NbtCommand implements TabExecutor { } itm.lore(lore); it.setItemMeta(itm); + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + Entity e = player; Attributes attributes = new Attributes(main); nbti.setInteger(args[0], Integer.parseInt(args[1]) + a); if (nbti.hasKey("SPEED")) { - attributes.addSpeed(player, nbti.getInteger("SPEED")); + pm.getSpeed().add(e, nbti.getInteger("SPEED")); } if (nbti.hasKey("HEALTH")) { - attributes.addHealth(player, nbti.getInteger("HEALTH")); + pm.getHealth().add(e, nbti.getInteger("HEALTH")); } if (nbti.hasKey("DEFENSE")) { - attributes.addDefense(player, nbti.getInteger("DEFENSE")); + pm.getDefense().add(e, nbti.getInteger("DEFENSE")); + } if (nbti.hasKey("STRENGTH")) { - attributes.addStrength(player, nbti.getInteger("STRENGTH")); + pm.getStrength().add(e, nbti.getInteger("STRENGTH")); } it = nbti.getItem(); msgPlayer(player, colorTextComp(Raxen.getPrefix() + "You successfully added the nbt " + attributes(args[0]) + "with " + args[1] + ".")); diff --git a/src/main/java/gq/unurled/raxen/commands/admin/SpawnEntity.java b/src/main/java/gq/unurled/raxen/commands/admin/SpawnEntity.java index 68ad224..0d6027f 100644 --- a/src/main/java/gq/unurled/raxen/commands/admin/SpawnEntity.java +++ b/src/main/java/gq/unurled/raxen/commands/admin/SpawnEntity.java @@ -1,7 +1,7 @@ package gq.unurled.raxen.commands.admin; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.EntityNamespacedKey; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import static gq.unurled.raxen.components.entity.EntityUtils.setNameSpacedKeys; +import static gq.unurled.raxen.components.entity.other.EntityUtils.setNameSpacedKeys; import static gq.unurled.raxen.utils.Utils.*; public class SpawnEntity implements TabExecutor { diff --git a/src/main/java/gq/unurled/raxen/commands/player/SkillsCommand.java b/src/main/java/gq/unurled/raxen/commands/player/SkillsCommand.java index 7cc65a0..1d67c14 100644 --- a/src/main/java/gq/unurled/raxen/commands/player/SkillsCommand.java +++ b/src/main/java/gq/unurled/raxen/commands/player/SkillsCommand.java @@ -1,8 +1,9 @@ package gq.unurled.raxen.commands.player; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.PlayerUtils; -import gq.unurled.raxen.components.player.attributes.Attributes; +import gq.unurled.raxen.components.entity.player.PlayerUtils; +import gq.unurled.raxen.components.entity.player.attributes.Attributes; +import gq.unurled.raxen.manager.entity.PlayerManager; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -13,7 +14,8 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -import static gq.unurled.raxen.utils.Utils.*; +import static gq.unurled.raxen.utils.Utils.colorTextComp; +import static gq.unurled.raxen.utils.Utils.error; public class SkillsCommand implements TabExecutor { @@ -42,65 +44,17 @@ public class SkillsCommand implements TabExecutor { .append(colorTextComp("/skill {health|defense|speed|strength} {add|set|remove} {amount}"))); break; case 3: - switch (args[0]) { - case "health": - if(args[1].equalsIgnoreCase("add")) { - attributes.setHealth(player, attributes.getHealth(player) + Integer.parseInt(args[2])); - msgPlayer(player,"You were added " + args[2] + " health more!"); - } - if(args[1].equalsIgnoreCase("set")) { - attributes.setHealth(player, Integer.parseInt(args[2])); - msgPlayer(player,"You are set " + args[2] + " health!"); - } - if(args[1].equalsIgnoreCase("remove")) { - attributes.setHealth(player ,attributes.getHealth(player) - Integer.parseInt(args[2])); - msgPlayer(player,"You were removeded " + args[2] + " health less!"); - - } - break; - case "defense": - if(args[1].equalsIgnoreCase("add")) { - attributes.setDefense(player, attributes.getDefense(player) + Integer.parseInt(args[2])); - msgPlayer(player,"You were added " + args[2] + " defense more!"); - - } - if(args[1].equalsIgnoreCase("set")) { - attributes.setDefense(player, Integer.parseInt(args[2])); - msgPlayer(player,"You are set " + args[2] + " defense!"); - } - if(args[1].equalsIgnoreCase("remove")) { - attributes.setDefense(player, attributes.getDefense(player) - Integer.parseInt(args[2])); - msgPlayer(player,"You were removed " + args[2] + " defense less!"); - } - break; - case "speed": - if(args[1].equalsIgnoreCase("add")) { - attributes.setSpeed(player, attributes.getSpeed(player) + Integer.parseInt(args[2])); - msgPlayer(player,"You were added " + args[2] + " speed more!"); - } - if(args[1].equalsIgnoreCase("set")) { - attributes.setSpeed(player, Integer.parseInt(args[2])); - msgPlayer(player,"You are set " + args[2] + " speed!"); - } - if(args[1].equalsIgnoreCase("remove")) { - attributes.setSpeed(player, attributes.getSpeed(player) - Integer.parseInt(args[2])); - msgPlayer(player,"You were removed " + args[2] + " speed less!"); - } - break; - case "stregnth": - if(args[1].equalsIgnoreCase("add")) { - attributes.setStrength(player, attributes.getStrength(player) + Integer.parseInt(args[2])); - msgPlayer(player,"You were added " + args[2] + " strength more!"); - } - if(args[1].equalsIgnoreCase("set")) { - attributes.setStrength(player, Integer.parseInt(args[2])); - msgPlayer(player,"You are set " + args[2] + " strength!"); - } - if(args[1].equalsIgnoreCase("remove")) { - attributes.setStrength(player, attributes.getStrength(player) - Integer.parseInt(args[2])); - msgPlayer(player,"You were removed " + args[2] + " strength less!"); - } - break; + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + for (String s : pm.getAttribute().keySet()) { + if (s.equalsIgnoreCase(args[0])) + switch (args[1]) { + case "add": + pm.getAttribute().get(s).add(player, Integer.parseInt(args[2])); + case "remove": + pm.getAttribute().get(s).remove(player, Integer.parseInt(args[2])); + case "set": + pm.getAttribute().get(s).set(player, Integer.parseInt(args[2])); + } } PlayerUtils.updateSkills(main, player); } diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes.java deleted file mode 100644 index a0c6f24..0000000 --- a/src/main/java/gq/unurled/raxen/components/entity/Attributes.java +++ /dev/null @@ -1,272 +0,0 @@ -package gq.unurled.raxen.components.entity; - -import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.attributes.Attribute; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.persistence.PersistentDataContainer; -import org.bukkit.persistence.PersistentDataType; - -public class Attributes { - - private static EntityNamespacedKey namespacedKey; - - public Attributes(Raxen main) { - namespacedKey = new EntityNamespacedKey(main); - } - - public static Attribute getAttribute(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck; - maxHealth = data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER); - health = data.get(namespacedKey.healthKey, PersistentDataType.INTEGER); - itemHealth = data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER); - defense = data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER); - itemDefense = data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER); - speed = data.get(namespacedKey.speedKey, PersistentDataType.INTEGER); - itemSpeed = data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER); - strength = data.get(namespacedKey.strengthKey , PersistentDataType.INTEGER); - itemDmg = data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER); - maxMana = data.get(namespacedKey.maxMana, PersistentDataType.INTEGER); - mana = data.get(namespacedKey.mana, PersistentDataType.INTEGER); - itemMana = data.get(namespacedKey.itemMana, PersistentDataType.INTEGER); - luck = data.get(namespacedKey.luck, PersistentDataType.INTEGER); - itemLuck = data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER); - - return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck); - } - - public static void setAttributes(Entity e, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana, int luck, int itemLuck) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed); - data.set(namespacedKey.strengthKey , PersistentDataType.INTEGER, strength); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, maxMana); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, mana); - data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, itemMana); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, luck); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, itemLuck); - } - - public void removeSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) -i); - } - public void removeHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) -i); - } - public void removeDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) -i); - } - public void removeStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) -i); - } - public void removeMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) -i); - } - public void removeMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) -i); - } - public void removeMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) -i); - } - public void removeLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) -i); - } - - public void removeItemSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) -i); - } - public void removeItemHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) -i); - } - public void removeItemDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER) -i); - } - public void removeItemStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) -i); - } - public void removeItemLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) -i); - } - - - public void addSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) +i); - } - public void addHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) +i); - } - public void addDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i); - } - public void addStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) +i); - } - public void addMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) +i); - } - public void addMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) +i); - } - public void addMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) +i); - } - public void addLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) +i); - } - - public void addItemSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) +i); - } - public void addItemHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) +i); - } - public void addItemDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i); - } - public void addItemStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) +i); - } - public void addItemLuck(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) +i); - } - - public Integer getSpeed(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.speedKey, PersistentDataType.INTEGER); - } - public Integer getStrength(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER); - } - public Integer getHealth(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.healthKey, PersistentDataType.INTEGER); - } - public Integer getDefense(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER); - } - public Integer getMana(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.mana, PersistentDataType.INTEGER); - } - public Integer getMaxMana(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.maxMana, PersistentDataType.INTEGER); - } - public Integer getMaxHealth(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER); - } - public Integer getLuck(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.luck, PersistentDataType.INTEGER); - } - - public Integer getItemSpeed(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER); - } - public Integer getItemStrength(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER); - } - public Integer getItemHealth(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER); - } - public Integer getItemDefense(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER); - } - public Integer getItemLuck(Entity e) { - PersistentDataContainer data = e.getPersistentDataContainer(); - return data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER); - } - - public void setHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, i); - } - public void setDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, i); - } - public void setSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, i); - } - public void setStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, i); - } - public void setMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, i); - } - public void setMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, i); - } - public void setMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, i); - } - public void setLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, i); - } - - public void setItemHealth(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, i); - } - public void setItemDefense(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, i); - } - public void setItemSpeed(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, i); - } - public void setItemStrength(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, i); - } - public void setItemLuck(Entity e, int i) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, i); - } -} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Attribute.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Attribute.java new file mode 100644 index 0000000..c443622 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Attribute.java @@ -0,0 +1,126 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import de.tr7zw.nbtapi.NBTItem; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.inventory.EntityEquipment; +import org.bukkit.inventory.ItemStack; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; + +import static gq.unurled.raxen.utils.Utils.debug; + +public class Attribute { + + /** + * The NamespaceKey register for the PersistentDataContainer. + * static NamespacedKey namespacekey = namespacedKey.TYPE; + */ + public NamespacedKey namespacekey; + + /** + * The name of the attribute + * static String name = "null"; + */ + public String name; + + public Attribute(NamespacedKey namespacekey, String name) { + this.namespacekey = namespacekey; + this.name = name; + } + + /** + * get how many the Entity has Attributed + * @param entity a living entity + * @return the amount of attribute + */ + public Integer get(@NotNull Entity entity) { + if (entity.getPersistentDataContainer().has(namespacekey, PersistentDataType.INTEGER)) { + debug(" attribute gett" + entity.getPersistentDataContainer().get(namespacekey, PersistentDataType.INTEGER)); + return entity.getPersistentDataContainer().get(namespacekey, PersistentDataType.INTEGER); + } + debug(name + " not found in Entity: " + entity.getType().toString() + " " + entity.getName() + " " + entity.getUniqueId().toString()); + set(entity, 0); + return 0; + } + + /** + * get how many the Entity has Attributed + * @param it an ItemStack + * @return the amount of attribute + */ + public Integer get(@NotNull ItemStack it) { + NBTItem nbti = new NBTItem(it); + if (nbti.hasKey(name)){ + return nbti.getInteger(name); + } + return 0; + } + + /** + * Get the amount of attribute on the item + * @param e a LivingEntity + * @return an amount of attribute on the item + */ + public Integer getItem(@NotNull LivingEntity e) { + EntityEquipment equi = e.getEquipment(); + Integer attribute = 0; + if (equi != null) { + if (equi.getItemInMainHand().getType() != Material.AIR && equi.getHelmet() != null) { + ItemStack item = equi.getItemInMainHand(); + attribute = attribute + get(item); + } + if (equi.getHelmet().getType() != Material.AIR && equi.getHelmet() != null) { + ItemStack item = equi.getHelmet(); + attribute = attribute + get(item); + } + if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) { + ItemStack item = equi.getChestplate(); + attribute = attribute + get(item); + } + if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) { + ItemStack item = equi.getChestplate(); + attribute = attribute + get(item); + } + if (equi.getLeggings().getType() != Material.AIR && equi.getLeggings() != null) { + ItemStack item = equi.getLeggings(); + attribute = attribute + get(item); + } + if (equi.getBoots().getType() != Material.AIR && equi.getBoots() != null) { + ItemStack item = equi.getBoots(); + attribute = attribute + get(item); + } + } + return attribute; + } + + /** + * set amount to the entity's attribute + * @param entity a living entity + * @param amount the amount you want to set + */ + public void set(@NotNull Entity entity, @NotNull Integer amount) { + entity.getPersistentDataContainer().set(namespacekey, PersistentDataType.INTEGER, amount); + debug("set " + name + " " + amount); + } + + /** + * add amount to the entity's attribute + * @param entity a living entity + * @param amount the amount you want to set + */ + public void add(@NotNull Entity entity, @NotNull Integer amount) { + set(entity, get(entity) + amount); + } + + /** + * remove amount to the entity's attribute + * @param entity a living entity + * @param amount the amount you want to set + */ + public void remove(@NotNull Entity entity, @NotNull Integer amount) { + set(entity, get(entity) - amount); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Defense.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Defense.java new file mode 100644 index 0000000..8a10592 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Defense.java @@ -0,0 +1,11 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Defense extends Attribute { + + public Defense(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} + diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Health.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Health.java new file mode 100644 index 0000000..03be05a --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Health.java @@ -0,0 +1,11 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Health extends Attribute { + + public Health(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} + diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemDefense.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemDefense.java new file mode 100644 index 0000000..ec56ab5 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemDefense.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemDefense extends Attribute { + + public ItemDefense(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemHealth.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemHealth.java new file mode 100644 index 0000000..e3ce1b1 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemHealth.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemHealth extends Attribute { + + public ItemHealth(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemLuck.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemLuck.java new file mode 100644 index 0000000..a6794dc --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemLuck.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemLuck extends Attribute { + + public ItemLuck(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemMana.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemMana.java new file mode 100644 index 0000000..02ef8bd --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemMana.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemMana extends Attribute { + + public ItemMana(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemSpeed.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemSpeed.java new file mode 100644 index 0000000..effdb4d --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemSpeed.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemSpeed extends Attribute { + + public ItemSpeed(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemStrength.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemStrength.java new file mode 100644 index 0000000..0a6b11b --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/ItemStrength.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class ItemStrength extends Attribute { + + public ItemStrength(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Luck.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Luck.java new file mode 100644 index 0000000..16b0b08 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Luck.java @@ -0,0 +1,11 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Luck extends Attribute { + + public Luck(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} + diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Mana.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Mana.java new file mode 100644 index 0000000..e55ec2c --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Mana.java @@ -0,0 +1,11 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Mana extends Attribute { + + public Mana(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} + diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxHealth.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxHealth.java new file mode 100644 index 0000000..67d0c44 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxHealth.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class MaxHealth extends Attribute { + + public MaxHealth(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxMana.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxMana.java new file mode 100644 index 0000000..3cf87f2 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxMana.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class MaxMana extends Attribute { + + public MaxMana(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxManaBuilder.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxManaBuilder.java new file mode 100644 index 0000000..1aee6e7 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/MaxManaBuilder.java @@ -0,0 +1,22 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class MaxManaBuilder { + private NamespacedKey namespacekey; + private String name; + + public MaxManaBuilder setNamespacekey(NamespacedKey namespacekey) { + this.namespacekey = namespacekey; + return this; + } + + public MaxManaBuilder setName(String name) { + this.name = name; + return this; + } + + public MaxMana createMaxMana() { + return new MaxMana(namespacekey, name); + } +} \ No newline at end of file diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Speed.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Speed.java new file mode 100644 index 0000000..429a74e --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Speed.java @@ -0,0 +1,10 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Speed extends Attribute { + + public Speed(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/Attributes/Strength.java b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Strength.java new file mode 100644 index 0000000..c8a7f94 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/Attributes/Strength.java @@ -0,0 +1,11 @@ +package gq.unurled.raxen.components.entity.Attributes; + +import org.bukkit.NamespacedKey; + +public class Strength extends Attribute { + + public Strength(NamespacedKey namespacekey, String name) { + super(namespacekey, name); + } +} + diff --git a/src/main/java/gq/unurled/raxen/components/entity/EntityNamespacedKey.java b/src/main/java/gq/unurled/raxen/components/entity/EntityNamespacedKey.java deleted file mode 100644 index 4719fac..0000000 --- a/src/main/java/gq/unurled/raxen/components/entity/EntityNamespacedKey.java +++ /dev/null @@ -1,49 +0,0 @@ -package gq.unurled.raxen.components.entity; - -import gq.unurled.raxen.Raxen; -import org.bukkit.NamespacedKey; - -public class EntityNamespacedKey { - - public EntityNamespacedKey(Raxen main) { - nameKey = new NamespacedKey(main, "name"); - levelKey = new NamespacedKey(main, "level"); - maxHealth = new NamespacedKey(main, "maxHealth"); - healthKey = new NamespacedKey(main, "health"); - itemHealthKey = new NamespacedKey(main, "itemHealth"); - speedKey = new NamespacedKey(main, "speed"); - itemSpeedKey = new NamespacedKey(main, "itemSpeedKey"); - defenseKey = new NamespacedKey(main, "defense"); - itemDefenseKey = new NamespacedKey(main, "itemDefense"); - strengthKey = new NamespacedKey(main, "strength"); - itemStrengthKey = new NamespacedKey(main, "itemStrength"); - maxMana = new NamespacedKey(main, "maxMana"); - mana = new NamespacedKey(main, "mana"); - itemMana = new NamespacedKey(main, "itemMana"); - luck = new NamespacedKey(main, "luck"); - itemLuck = new NamespacedKey(main, "itemLuck"); - inventory = new NamespacedKey(main, "inventory"); - storage = new NamespacedKey(main, "storage"); - - } - - public final NamespacedKey nameKey; - public final NamespacedKey levelKey; - public final NamespacedKey maxHealth; - public final NamespacedKey healthKey; - public final NamespacedKey itemHealthKey; - public final NamespacedKey speedKey; - public final NamespacedKey itemSpeedKey; - public final NamespacedKey defenseKey; - public final NamespacedKey itemDefenseKey; - public final NamespacedKey strengthKey; - public final NamespacedKey itemStrengthKey; - public final NamespacedKey maxMana; - public final NamespacedKey mana; - public final NamespacedKey itemMana; - public final NamespacedKey luck; - public final NamespacedKey itemLuck; - public final NamespacedKey inventory; - public final NamespacedKey storage; - -} diff --git a/src/main/java/gq/unurled/raxen/components/entity/EntityUtils.java b/src/main/java/gq/unurled/raxen/components/entity/EntityUtils.java deleted file mode 100644 index 45751bf..0000000 --- a/src/main/java/gq/unurled/raxen/components/entity/EntityUtils.java +++ /dev/null @@ -1,57 +0,0 @@ -package gq.unurled.raxen.components.entity; - -import gq.unurled.raxen.Raxen; -import org.bukkit.entity.LivingEntity; -import org.bukkit.persistence.PersistentDataContainer; -import org.bukkit.persistence.PersistentDataType; -import org.jetbrains.annotations.NotNull; - -import static gq.unurled.raxen.utils.Utils.debug; - -public class EntityUtils { - - private static Raxen main; - private static EntityNamespacedKey namespacedKey; - - public EntityUtils(Raxen main) { - this.main = main; - namespacedKey = new EntityNamespacedKey(main); - } - - public static void setNameSpacedKeys(org.bukkit.entity.@NotNull Entity e, String name, Integer level, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg) { - PersistentDataContainer data = e.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, strength); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg); - data.set(namespacedKey.nameKey, PersistentDataType.STRING, name); - data.set(namespacedKey.levelKey, PersistentDataType.INTEGER, level); - } - - public static void updateSkills(@NotNull LivingEntity livingEntity) { - Attributes attributes = new Attributes(main); - int health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg; - org.bukkit.entity.Entity e = livingEntity; - health = attributes.getHealth(e); - itemHealth = attributes.getItemHealth(e); - defense = attributes.getDefense(e); - itemDefense = attributes.getItemDefense(e); - speed = attributes.getSpeed(e); - itemSpeed = attributes.getItemSpeed(e); - strength = attributes.getStrength(e); - itemDmg = attributes.getItemStrength(e); - if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED) != null) { - livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); - } - if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED) != null) { - livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); - } - livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100); - debug(main, "Speed " + (speed + itemSpeed), "Health " + (health + itemHealth), "Defense " + (defense+itemDefense), "Strength " + (strength+itemDmg)); - } - -} diff --git a/src/main/java/gq/unurled/raxen/components/entity/other/EntityNamespacedKey.java b/src/main/java/gq/unurled/raxen/components/entity/other/EntityNamespacedKey.java new file mode 100644 index 0000000..6258221 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/other/EntityNamespacedKey.java @@ -0,0 +1,49 @@ +package gq.unurled.raxen.components.entity.other; + +import gq.unurled.raxen.Raxen; +import org.bukkit.NamespacedKey; + +public class EntityNamespacedKey { + + public EntityNamespacedKey(Raxen main) { + name = new NamespacedKey(main, "NAME"); + level = new NamespacedKey(main, "LEVEL"); + maxHealth = new NamespacedKey(main, "MAX_HEALTH"); + health = new NamespacedKey(main, "HEALTH"); + itemHealth = new NamespacedKey(main, "ITEM_HEALTH"); + speed = new NamespacedKey(main, "SPEED"); + itemSpeed = new NamespacedKey(main, "ITEM_SPEED"); + defense = new NamespacedKey(main, "DEFENSE"); + itemDefense = new NamespacedKey(main, "ITEM_DEFENSE"); + strength = new NamespacedKey(main, "STRENGTH"); + itemStrength = new NamespacedKey(main, "ITEM_STRENGTH"); + maxMana = new NamespacedKey(main, "MAX_MANA"); + mana = new NamespacedKey(main, "MANA"); + itemMana = new NamespacedKey(main, "ITEM_MANA"); + luck = new NamespacedKey(main, "LUCK"); + itemLuck = new NamespacedKey(main, "ITEM_LUCK"); + inventory = new NamespacedKey(main, "INVENTORY"); + storage = new NamespacedKey(main, "STORAGE"); + + } + + public final NamespacedKey name; + public final NamespacedKey level; + public final NamespacedKey maxHealth; + public final NamespacedKey health; + public final NamespacedKey itemHealth; + public final NamespacedKey speed; + public final NamespacedKey itemSpeed; + public final NamespacedKey defense; + public final NamespacedKey itemDefense; + public final NamespacedKey strength; + public final NamespacedKey itemStrength; + public final NamespacedKey maxMana; + public final NamespacedKey mana; + public final NamespacedKey itemMana; + public final NamespacedKey luck; + public final NamespacedKey itemLuck; + public final NamespacedKey inventory; + public final NamespacedKey storage; + +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/other/EntityUtils.java b/src/main/java/gq/unurled/raxen/components/entity/other/EntityUtils.java new file mode 100644 index 0000000..34a21f6 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/other/EntityUtils.java @@ -0,0 +1,70 @@ +package gq.unurled.raxen.components.entity.other; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.LivingEntity; +import org.bukkit.persistence.PersistentDataContainer; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; + +import static gq.unurled.raxen.utils.Utils.debug; + +public class EntityUtils { + + private static Raxen main; + private static EntityNamespacedKey namespacedKey; + + public EntityUtils(Raxen main) { + this.main = main; + namespacedKey = new EntityNamespacedKey(main); + } + + public static void setNameSpacedKeys(org.bukkit.entity.@NotNull Entity e, String name, Integer level, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg) { + PersistentDataContainer data = e.getPersistentDataContainer(); + data.set(namespacedKey.health, PersistentDataType.INTEGER, health); + data.set(namespacedKey.itemHealth, PersistentDataType.INTEGER, itemHealth); + data.set(namespacedKey.speed, PersistentDataType.INTEGER, speed); + data.set(namespacedKey.itemSpeed, PersistentDataType.INTEGER, itemSpeed); + data.set(namespacedKey.defense, PersistentDataType.INTEGER, defense); + data.set(namespacedKey.itemDefense, PersistentDataType.INTEGER, itemDefense); + data.set(namespacedKey.strength, PersistentDataType.INTEGER, strength); + data.set(namespacedKey.itemStrength, PersistentDataType.INTEGER, itemDmg); + data.set(namespacedKey.name, PersistentDataType.STRING, name); + data.set(namespacedKey.level, PersistentDataType.INTEGER, level); + } + + public static void updateSkills(@NotNull LivingEntity livingEntity) { + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck; + defense= pm.getDefense().get(livingEntity); + maxMana = pm.getMaxMana().get(livingEntity); + itemDefense= pm.getItemDefense().get(livingEntity); + health = pm.getHealth().get(livingEntity); + itemHealth = pm.getItemHealth().get(livingEntity); + mana = pm.getMana().get(livingEntity); + speed = pm.getSpeed().get(livingEntity); + itemLuck = pm.getItemLuck().get(livingEntity); + strength = pm.getStrength().get(livingEntity); + luck = pm.getLuck().get(livingEntity); + maxHealth = pm.getMaxHealth().get(livingEntity); + itemStrength = pm.getItemStrength().get(livingEntity); + itemSpeed = pm.getItemSpeed().get(livingEntity); + itemMana = pm.getItemMana().get(livingEntity); + if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED) != null) { + livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); + } + if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED) != null) { + livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); + } + livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100); + debug("Entity " + livingEntity.getType().name(), + "Speed " + (speed + itemSpeed), + "Health " + (health + itemHealth) + " Max Health " + maxHealth, + "Defense " + (defense+itemDefense), + "Strength " + (strength+itemStrength), + "Luck " + (luck+itemLuck), + "Mana " + (mana + itemMana) + " Max Mana " + maxMana); + } + +} diff --git a/src/main/java/gq/unurled/raxen/components/entity/RaxenEntity.java b/src/main/java/gq/unurled/raxen/components/entity/other/RaxenEntity.java similarity index 96% rename from src/main/java/gq/unurled/raxen/components/entity/RaxenEntity.java rename to src/main/java/gq/unurled/raxen/components/entity/other/RaxenEntity.java index 8c240a7..cea81b4 100644 --- a/src/main/java/gq/unurled/raxen/components/entity/RaxenEntity.java +++ b/src/main/java/gq/unurled/raxen/components/entity/other/RaxenEntity.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.entity; +package gq.unurled.raxen.components.entity.other; import gq.unurled.raxen.Raxen; import lombok.Getter; diff --git a/src/main/java/gq/unurled/raxen/components/entity/custom/Entity.java b/src/main/java/gq/unurled/raxen/components/entity/other/custom/Entity.java similarity index 96% rename from src/main/java/gq/unurled/raxen/components/entity/custom/Entity.java rename to src/main/java/gq/unurled/raxen/components/entity/other/custom/Entity.java index e92bfc2..7e6439b 100644 --- a/src/main/java/gq/unurled/raxen/components/entity/custom/Entity.java +++ b/src/main/java/gq/unurled/raxen/components/entity/other/custom/Entity.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.entity.custom; +package gq.unurled.raxen.components.entity.other.custom; import gq.unurled.raxen.Raxen; import lombok.Getter; diff --git a/src/main/java/gq/unurled/raxen/components/entity/custom/hostile/low/Goblin.java b/src/main/java/gq/unurled/raxen/components/entity/other/custom/hostile/low/Goblin.java similarity index 73% rename from src/main/java/gq/unurled/raxen/components/entity/custom/hostile/low/Goblin.java rename to src/main/java/gq/unurled/raxen/components/entity/other/custom/hostile/low/Goblin.java index 8dd9e4c..d537a47 100644 --- a/src/main/java/gq/unurled/raxen/components/entity/custom/hostile/low/Goblin.java +++ b/src/main/java/gq/unurled/raxen/components/entity/other/custom/hostile/low/Goblin.java @@ -1,8 +1,8 @@ -package gq.unurled.raxen.components.entity.custom.hostile.low; +package gq.unurled.raxen.components.entity.other.custom.hostile.low; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.RaxenEntity; -import gq.unurled.raxen.components.entity.custom.Entity; +import gq.unurled.raxen.components.entity.other.RaxenEntity; +import gq.unurled.raxen.components.entity.other.custom.Entity; public class Goblin extends Entity { diff --git a/src/main/java/gq/unurled/raxen/components/entity/other/spawn/Eggs.java b/src/main/java/gq/unurled/raxen/components/entity/other/spawn/Eggs.java new file mode 100644 index 0000000..3b9c6e2 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/other/spawn/Eggs.java @@ -0,0 +1,4 @@ +package gq.unurled.raxen.components.entity.other.spawn; + +public class Eggs { +} diff --git a/src/main/java/gq/unurled/raxen/components/player/Inventories.java b/src/main/java/gq/unurled/raxen/components/entity/player/Inventories.java similarity index 68% rename from src/main/java/gq/unurled/raxen/components/player/Inventories.java rename to src/main/java/gq/unurled/raxen/components/entity/player/Inventories.java index 2b6712a..0aabe01 100644 --- a/src/main/java/gq/unurled/raxen/components/player/Inventories.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/Inventories.java @@ -1,6 +1,6 @@ -package gq.unurled.raxen.components.player; +package gq.unurled.raxen.components.entity.player; -import gq.unurled.raxen.components.player.storages.Inventory; +import gq.unurled.raxen.components.entity.player.storages.Inventory; public class Inventories { private Inventory inv; diff --git a/src/main/java/gq/unurled/raxen/components/entity/player/PlayerUtils.java b/src/main/java/gq/unurled/raxen/components/entity/player/PlayerUtils.java new file mode 100644 index 0000000..ac99769 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/player/PlayerUtils.java @@ -0,0 +1,42 @@ +package gq.unurled.raxen.components.entity.player; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.attribute.Attribute; +import org.bukkit.entity.Player; + +import static gq.unurled.raxen.utils.Utils.debug; + +public class PlayerUtils { + + public static void updateSkills(Raxen main, Player player) { + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck; + defense= pm.getDefense().get(player); + maxMana = pm.getMaxMana().get(player); + itemDefense= pm.getItemDefense().get(player); + health = pm.getHealth().get(player); + itemHealth = pm.getItemHealth().get(player); + mana = pm.getMana().get(player); + speed = pm.getSpeed().get(player); + itemLuck = pm.getItemLuck().get(player); + strength = pm.getStrength().get(player); + luck = pm.getLuck().get(player); + maxHealth = pm.getMaxHealth().get(player); + itemStrength = pm.getItemStrength().get(player); + itemSpeed = pm.getItemSpeed().get(player); + itemMana = pm.getItemMana().get(player); + player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100); + player.setWalkSpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); + player.setFlySpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); + debug("Player " + player.getName(), + "Speed " + (speed + itemSpeed), + "Health " + (health + itemHealth) + " Max Health " + maxHealth, + "Defense " + (defense+itemDefense), + "Strength " + (strength+itemStrength), + "Luck " + (luck+itemLuck), + "Mana " + (mana + itemMana) + " Max Mana " + maxMana); + } + +} diff --git a/src/main/java/gq/unurled/raxen/components/player/RaxenPlayer.java b/src/main/java/gq/unurled/raxen/components/entity/player/RaxenPlayer.java similarity index 84% rename from src/main/java/gq/unurled/raxen/components/player/RaxenPlayer.java rename to src/main/java/gq/unurled/raxen/components/entity/player/RaxenPlayer.java index d5c2672..f2ced40 100644 --- a/src/main/java/gq/unurled/raxen/components/player/RaxenPlayer.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/RaxenPlayer.java @@ -1,11 +1,11 @@ -package gq.unurled.raxen.components.player; +package gq.unurled.raxen.components.entity.player; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.EntityNamespacedKey; -import gq.unurled.raxen.components.player.attributes.Attribute; -import gq.unurled.raxen.components.player.attributes.Attributes; -import gq.unurled.raxen.components.player.storages.EnderChest; -import gq.unurled.raxen.components.player.storages.Inventory; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; +import gq.unurled.raxen.components.entity.player.attributes.Attribute; +import gq.unurled.raxen.components.entity.player.storages.EnderChest; +import gq.unurled.raxen.components.entity.player.storages.Inventory; +import gq.unurled.raxen.utils.EntityAttributes; import gq.unurled.raxen.utils.Items; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -27,7 +27,6 @@ public class RaxenPlayer { private final Raxen main; private final Player player; private final EntityNamespacedKey namespacedKey; - private final Attributes attributes; private Boolean isRaxenPlayer; @@ -41,12 +40,11 @@ public class RaxenPlayer { this.player = player; this.namespacedKey = new EntityNamespacedKey(main); this.isRaxenPlayer = true; - this.attributes = new Attributes(main); } public Attribute createNewAttribute() { debug(main, "Created new Attribute"); - attributes.setAttributes(player, 100, 100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0); + EntityAttributes.setAttributes(player, 100, 100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0); return new Attribute(100,100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0); } @@ -70,7 +68,7 @@ public class RaxenPlayer { String inv = data.get(namespacedKey.inventory, PersistentDataType.STRING); org.bukkit.inventory.Inventory invv = Bukkit.createInventory(player, InventoryType.PLAYER); invv = setItemsToInventory(Items.listItemStackDeserilize(inv), invv); - gq.unurled.raxen.components.player.storages.Inventory invvv = new gq.unurled.raxen.components.player.storages.Inventory(invv); + Inventory invvv = new Inventory(invv); Inventories invvvv = new Inventories(invvv); return invvvv; } @@ -128,8 +126,4 @@ public class RaxenPlayer { public Attribute getAttribute() { return attribute; } - - public Attributes getAttributes() { - return attributes; - } } diff --git a/src/main/java/gq/unurled/raxen/components/player/Scoreboard.java b/src/main/java/gq/unurled/raxen/components/entity/player/Scoreboard.java similarity index 97% rename from src/main/java/gq/unurled/raxen/components/player/Scoreboard.java rename to src/main/java/gq/unurled/raxen/components/entity/player/Scoreboard.java index 0d09129..5bb65c5 100644 --- a/src/main/java/gq/unurled/raxen/components/player/Scoreboard.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/Scoreboard.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player; +package gq.unurled.raxen.components.entity.player; import gq.unurled.raxen.Raxen; import gq.unurled.raxen.utils.libs.Vault; diff --git a/src/main/java/gq/unurled/raxen/components/player/Storage.java b/src/main/java/gq/unurled/raxen/components/entity/player/Storage.java similarity index 67% rename from src/main/java/gq/unurled/raxen/components/player/Storage.java rename to src/main/java/gq/unurled/raxen/components/entity/player/Storage.java index 103451a..ae685de 100644 --- a/src/main/java/gq/unurled/raxen/components/player/Storage.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/Storage.java @@ -1,6 +1,6 @@ -package gq.unurled.raxen.components.player; +package gq.unurled.raxen.components.entity.player; -import gq.unurled.raxen.components.player.storages.EnderChest; +import gq.unurled.raxen.components.entity.player.storages.EnderChest; public class Storage { diff --git a/src/main/java/gq/unurled/raxen/components/player/attributes/Attribute.java b/src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attribute.java similarity index 93% rename from src/main/java/gq/unurled/raxen/components/player/attributes/Attribute.java rename to src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attribute.java index e20bd75..9c3881b 100644 --- a/src/main/java/gq/unurled/raxen/components/player/attributes/Attribute.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attribute.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.attributes; +package gq.unurled.raxen.components.entity.player.attributes; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attributes.java b/src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attributes.java new file mode 100644 index 0000000..3725e2e --- /dev/null +++ b/src/main/java/gq/unurled/raxen/components/entity/player/attributes/Attributes.java @@ -0,0 +1,57 @@ +package gq.unurled.raxen.components.entity.player.attributes; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +public class Attributes { + + private static EntityNamespacedKey namespacedKey; + + public Attributes(Raxen main) { + namespacedKey = new EntityNamespacedKey(main); + } + + public static Attribute getAttribute(Player player) { + int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck; + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + Entity e = player; + defense= pm.getDefense().get(e); + maxMana = pm.getMaxMana().get(e); + itemDefense= pm.getItemDefense().get(e); + health = pm.getHealth().get(e); + itemHealth = pm.getItemHealth().get(e); + mana = pm.getMana().get(e); + speed = pm.getSpeed().get(e); + itemLuck = pm.getItemLuck().get(e); + strength = pm.getStrength().get(e); + luck = pm.getLuck().get(e); + maxHealth = pm.getMaxHealth().get(e); + itemStrength = pm.getItemStrength().get(e); + itemSpeed = pm.getItemSpeed().get(e); + itemMana = pm.getItemMana().get(e); + return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck); + } + + public static void setAttributes(Player player, int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemStrength, int maxMana, int mana, int itemMana, int luck, int itemLuck) { + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + Entity e = player; + pm.getDefense().set(e, defense); + pm.getMaxMana().set(e, maxMana); + pm.getItemDefense().set(e, itemDefense); + pm.getHealth().set(e, health); + pm.getItemHealth().set(e, itemHealth); + pm.getMana().set(e, mana); + pm.getSpeed().set(e, speed); + pm.getItemLuck().set(e, itemLuck); + pm.getStrength().set(e, strength); + pm.getLuck().set(e, luck); + pm.getMaxHealth().set(e, maxHealth); + pm.getItemStrength().set(e, itemStrength); + pm.getItemSpeed().set(e, itemSpeed); + pm.getItemMana().set(e, itemMana); + } +} diff --git a/src/main/java/gq/unurled/raxen/components/player/classes/Class.java b/src/main/java/gq/unurled/raxen/components/entity/player/classes/Class.java similarity index 92% rename from src/main/java/gq/unurled/raxen/components/player/classes/Class.java rename to src/main/java/gq/unurled/raxen/components/entity/player/classes/Class.java index 945d2cc..f38095e 100644 --- a/src/main/java/gq/unurled/raxen/components/player/classes/Class.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/classes/Class.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.classes; +package gq.unurled.raxen.components.entity.player.classes; import lombok.Getter; import org.bukkit.Material; diff --git a/src/main/java/gq/unurled/raxen/components/player/classes/Classes.java b/src/main/java/gq/unurled/raxen/components/entity/player/classes/Classes.java similarity index 98% rename from src/main/java/gq/unurled/raxen/components/player/classes/Classes.java rename to src/main/java/gq/unurled/raxen/components/entity/player/classes/Classes.java index 9893a62..64acf91 100644 --- a/src/main/java/gq/unurled/raxen/components/player/classes/Classes.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/classes/Classes.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.classes; +package gq.unurled.raxen.components.entity.player.classes; import gq.unurled.raxen.Raxen; import gq.unurled.raxen.manager.entity.PlayerManager; diff --git a/src/main/java/gq/unurled/raxen/components/player/classes/list/Assassin.java b/src/main/java/gq/unurled/raxen/components/entity/player/classes/list/Assassin.java similarity index 86% rename from src/main/java/gq/unurled/raxen/components/player/classes/list/Assassin.java rename to src/main/java/gq/unurled/raxen/components/entity/player/classes/list/Assassin.java index 68d35e6..eaa54f1 100644 --- a/src/main/java/gq/unurled/raxen/components/player/classes/list/Assassin.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/classes/list/Assassin.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.classes.list; +package gq.unurled.raxen.components.entity.player.classes.list; import gq.unurled.raxen.components.items.custom.weapon.Dager; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/gq/unurled/raxen/components/player/storages/EnderChest.java b/src/main/java/gq/unurled/raxen/components/entity/player/storages/EnderChest.java similarity index 85% rename from src/main/java/gq/unurled/raxen/components/player/storages/EnderChest.java rename to src/main/java/gq/unurled/raxen/components/entity/player/storages/EnderChest.java index a5c5f9a..958ca0d 100644 --- a/src/main/java/gq/unurled/raxen/components/player/storages/EnderChest.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/storages/EnderChest.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.storages; +package gq.unurled.raxen.components.entity.player.storages; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/gq/unurled/raxen/components/player/storages/Inventory.java b/src/main/java/gq/unurled/raxen/components/entity/player/storages/Inventory.java similarity index 85% rename from src/main/java/gq/unurled/raxen/components/player/storages/Inventory.java rename to src/main/java/gq/unurled/raxen/components/entity/player/storages/Inventory.java index 238814f..0de76d6 100644 --- a/src/main/java/gq/unurled/raxen/components/player/storages/Inventory.java +++ b/src/main/java/gq/unurled/raxen/components/entity/player/storages/Inventory.java @@ -1,4 +1,4 @@ -package gq.unurled.raxen.components.player.storages; +package gq.unurled.raxen.components.entity.player.storages; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/gq/unurled/raxen/components/entity/spawn/Eggs.java b/src/main/java/gq/unurled/raxen/components/entity/spawn/Eggs.java deleted file mode 100644 index e17c1c9..0000000 --- a/src/main/java/gq/unurled/raxen/components/entity/spawn/Eggs.java +++ /dev/null @@ -1,4 +0,0 @@ -package gq.unurled.raxen.components.entity.spawn; - -public class Eggs { -} diff --git a/src/main/java/gq/unurled/raxen/components/gui/ItemListGui.java b/src/main/java/gq/unurled/raxen/components/gui/ItemListGui.java index e2ce168..f3be692 100644 --- a/src/main/java/gq/unurled/raxen/components/gui/ItemListGui.java +++ b/src/main/java/gq/unurled/raxen/components/gui/ItemListGui.java @@ -1,7 +1,7 @@ package gq.unurled.raxen.components.gui; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.PlayerUtils; +import gq.unurled.raxen.components.entity.player.PlayerUtils; import lombok.Getter; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; diff --git a/src/main/java/gq/unurled/raxen/components/lootchest/GUI.java b/src/main/java/gq/unurled/raxen/components/lootchest/GUI.java index 8e9f05b..0f2ae10 100644 --- a/src/main/java/gq/unurled/raxen/components/lootchest/GUI.java +++ b/src/main/java/gq/unurled/raxen/components/lootchest/GUI.java @@ -17,7 +17,7 @@ public class GUI { } public static Inventory addItems(Player player) { - Integer luck = playerManager.getRaxenPlayer(player).getAttributes().getLuck(player); + Integer luck = playerManager.getLuck().get(player); return inv; } diff --git a/src/main/java/gq/unurled/raxen/components/player/PlayerUtils.java b/src/main/java/gq/unurled/raxen/components/player/PlayerUtils.java deleted file mode 100644 index 34de72c..0000000 --- a/src/main/java/gq/unurled/raxen/components/player/PlayerUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -package gq.unurled.raxen.components.player; - -import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.attributes.Attributes; -import org.bukkit.attribute.Attribute; -import org.bukkit.entity.Player; - -import static gq.unurled.raxen.utils.Utils.msgPlayer; - -public class PlayerUtils { - - public static void updateSkills(Raxen main, Player player) { - Attributes attributes = new Attributes(main); - int health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg; - health = attributes.getHealth(player); - itemHealth = attributes.getItemHealth(player); - defense = attributes.getDefense(player); - itemDefense = attributes.getItemDefense(player); - speed = attributes.getSpeed(player); - itemSpeed = attributes.getItemSpeed(player); - strength = attributes.getStrength(player); - itemDmg = attributes.getItemStrength(player); - player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100); - player.setWalkSpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); - player.setFlySpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2)); - msgPlayer(player, "Speed " + (speed + itemSpeed), "Health " + (health + itemHealth), "Defense " + (defense+itemDefense), "Strength " + (strength+itemDmg)); - } - -} diff --git a/src/main/java/gq/unurled/raxen/components/player/attributes/Attributes.java b/src/main/java/gq/unurled/raxen/components/player/attributes/Attributes.java deleted file mode 100644 index 0d53e85..0000000 --- a/src/main/java/gq/unurled/raxen/components/player/attributes/Attributes.java +++ /dev/null @@ -1,286 +0,0 @@ -package gq.unurled.raxen.components.player.attributes; - -import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.EntityNamespacedKey; -import org.bukkit.entity.Player; -import org.bukkit.persistence.PersistentDataContainer; -import org.bukkit.persistence.PersistentDataType; - -public class Attributes { - - private static EntityNamespacedKey namespacedKey; - - public Attributes(Raxen main) { - namespacedKey = new EntityNamespacedKey(main); - } - - public static Attribute getAttribute(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck; - maxHealth = data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER); - health = data.get(namespacedKey.healthKey, PersistentDataType.INTEGER); - itemHealth = data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER); - defense = data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER); - itemDefense = data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER); - speed = data.get(namespacedKey.speedKey, PersistentDataType.INTEGER); - itemSpeed = data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER); - strength = data.get(namespacedKey.strengthKey , PersistentDataType.INTEGER); - itemDmg = data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER); - mana = data.get(namespacedKey.mana, PersistentDataType.INTEGER); - itemMana = data.get(namespacedKey.itemMana, PersistentDataType.INTEGER); - maxMana = data.get(namespacedKey.maxMana, PersistentDataType.INTEGER); - luck = data.get(namespacedKey.luck, PersistentDataType.INTEGER); - itemLuck = data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER); - return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck); - } - - public static void setAttributes(Player player, int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana, int luck, int itemLuck) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, maxHealth); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed); - data.set(namespacedKey.strengthKey , PersistentDataType.INTEGER, strength); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, maxMana); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, mana); - data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, itemMana); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, luck); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, itemLuck); - } - - public void removeSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) -i); - } - public void removeHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) -i); - } - public void removeDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) -i); - } - public void removeStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) -i); - } - public void removeMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) -i); - } - public void removeMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) -i); - } - public void removeMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) -i); - } - public void removeLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) -i); - } - - public void removeItemSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) -i); - } - public void removeItemHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) -i); - } - public void removeItemDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER) -i); - } - public void removeItemStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) -i); - } - public void removeItemMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, data.get(namespacedKey.itemMana, PersistentDataType.INTEGER) -i); - } - public void removeItemLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) -i); - } - - public void addSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) +i); - } - public void addHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) +i); - } - public void addDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i); - } - public void addStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) +i); - } - public void addMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) +i); - } - public void addMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) +i); - } - public void addMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) +i); - } - public void addLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) +i); - } - - public void addItemSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) +i); - } - public void addItemHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) +i); - } - public void addItemDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i); - } - public void addItemStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) +i); - } - public void addItemMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, data.get(namespacedKey.itemMana, PersistentDataType.INTEGER) +i); - } - public void addItemLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) +i); - } - - public Integer getSpeed(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.speedKey, PersistentDataType.INTEGER); - } - public Integer getStrength(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER); - } - public Integer getHealth(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.healthKey, PersistentDataType.INTEGER); - } - public Integer getDefense(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER); - } - public Integer getMana(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.mana, PersistentDataType.INTEGER); - } - public Integer getMaxMana(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.maxMana, PersistentDataType.INTEGER); - } - public Integer getMaxHealth(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER); - } - public Integer getLuck(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.luck, PersistentDataType.INTEGER); - } - - public Integer getItemSpeed(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER); - } - public Integer getItemStrength(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER); - } - public Integer getItemHealth(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER); - } - public Integer getItemDefense(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER); - } - public Integer getItemMana(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemMana, PersistentDataType.INTEGER); - } - public Integer getItemLuck(Player player) { - PersistentDataContainer data = player.getPersistentDataContainer(); - return data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER); - } - - public void setHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, i); - } - public void setDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, i); - } - public void setSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, i); - } - public void setStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, i); - } - public void setMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, i); - } - public void setMaxMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, i); - } - public void setMaxHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, i); - } - public void setLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.luck, PersistentDataType.INTEGER, i); - } - - public void setItemHealth(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, i); - } - public void setItemDefense(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, i); - } - public void setItemSpeed(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, i); - } - public void setItemStrength(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, i); - } - public void setItemMana(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.mana, PersistentDataType.INTEGER, i); - } - public void setItemLuck(Player player, int i) { - PersistentDataContainer data = player.getPersistentDataContainer(); - data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, i); - } -} diff --git a/src/main/java/gq/unurled/raxen/config/PlayerConfig.java b/src/main/java/gq/unurled/raxen/config/PlayerConfig.java index 113b590..caeff4c 100644 --- a/src/main/java/gq/unurled/raxen/config/PlayerConfig.java +++ b/src/main/java/gq/unurled/raxen/config/PlayerConfig.java @@ -3,10 +3,12 @@ package gq.unurled.raxen.config; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.Inventories; -import gq.unurled.raxen.components.player.Storage; -import gq.unurled.raxen.components.player.attributes.Attributes; -import gq.unurled.raxen.components.player.storages.EnderChest; +import gq.unurled.raxen.components.entity.Attributes.Attribute; +import gq.unurled.raxen.components.entity.player.Inventories; +import gq.unurled.raxen.components.entity.player.PlayerUtils; +import gq.unurled.raxen.components.entity.player.Storage; +import gq.unurled.raxen.components.entity.player.attributes.Attributes; +import gq.unurled.raxen.components.entity.player.storages.EnderChest; import gq.unurled.raxen.manager.entity.PlayerManager; import gq.unurled.raxen.manager.entity.StorageManager; import gq.unurled.raxen.utils.Items; @@ -24,6 +26,7 @@ import org.bukkit.inventory.PlayerInventory; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import static gq.unurled.raxen.utils.Items.listItemStackDeserilize; @@ -57,21 +60,12 @@ public class PlayerConfig { debug(main, "Saving " + player.getName() + "'s data!"); Document doc = new Document("uuid", player.getUniqueId().toString()) .append("name", player.getName()) - .append("maxHealth", attributes.getMaxHealth(player)) - .append("health", attributes.getHealth(player)) - .append("itemHealth", attributes.getItemHealth(player)) - .append("defense", attributes.getDefense(player)) - .append("itemDefense", attributes.getItemDefense(player)) - .append("speed", attributes.getSpeed(player)) - .append("itemSpeed", attributes.getItemSpeed(player)) - .append("strength", attributes.getStrength(player)) - .append("itemStrength", attributes.getItemStrength(player)) - .append("maxMana", attributes.getMaxMana(player)) - .append("mana", attributes.getMana(player)) - .append("itemMana", attributes.getItemMana(player)) - .append("luck", attributes.getLuck(player)) - .append("itemLuck", attributes.getItemLuck(player)) .append("inv", invstr); + HashMap attribute = main.getManager().getPlayerManager().getAttribute(); + for (String s : attribute.keySet()) { + debug("saving " + s); + doc.append(s, attribute.get(s).get(player)); + } if (playerManager.getRaxenPlayer(player).getStorage() != null) { if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) { debug(main, "Saving " + player.getName() + "'s storage!"); @@ -103,20 +97,10 @@ public class PlayerConfig { public void saveUsingYml(Player player, Attributes attributes, String invstr, Integer reverse) { FileConfiguration config = sto.createYml(player); config.set("name", player.getName()); - config.set("maxHealth", attributes.getMaxHealth(player)); - config.set("health", attributes.getHealth(player)); - config.set("itemHealth", attributes.getItemHealth(player)); - config.set("strength", attributes.getStrength(player)); - config.set("itemStrength", attributes.getItemStrength(player)); - config.set("speed", attributes.getSpeed(player)); - config.set("itemSpeed", attributes.getItemSpeed(player)); - config.set("defense", attributes.getDefense(player)); - config.set("itemDefense", attributes.getItemDefense(player)); - config.set("maxMana", attributes.getMaxMana(player)); - config.set("mana", attributes.getMana(player)); - config.set("itemMana", attributes.getItemMana(player)); - config.set("luck", attributes.getLuck(player)); - config.set("itemLuck", attributes.getItemLuck(player)); + HashMap attribute = main.getManager().getPlayerManager().getAttribute(); + for (String s : attribute.keySet()) { + config.set(s, attribute.get(s).get(player)); + } config.set("inv", invstr); if (playerManager.getRaxenPlayer(player).getStorage() != null) { if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) { @@ -148,14 +132,16 @@ public class PlayerConfig { playerManager.getRaxenPlayer(player).createNewAttribute(); playerManager.getRaxenPlayer(player).createStorage(); playerManager.getRaxenPlayer(player).createInventory(); + PlayerUtils.updateSkills(main, player); return; } debug(main, "Loading " + player.getName() + "'s data!"); - attributes.setAttributes(player, playerDoc.getInteger("maxHealth"), playerDoc.getInteger("health"), playerDoc.getInteger("itemHealth"), playerDoc.getInteger("defense"), - playerDoc.getInteger("itemDefense"), playerDoc.getInteger("speed"), playerDoc.getInteger("itemSpeed"), - playerDoc.getInteger("strength"), playerDoc.getInteger("itemStrength"), - playerDoc.getInteger("maxMana"), playerDoc.getInteger("mana"), playerDoc.getInteger("itemMana"), - playerDoc.getInteger("luck"), playerDoc.getInteger("itemLuck")); + attributes.setAttributes(player, playerDoc.getInteger("MAX_HEALTH"), playerDoc.getInteger("HEALTH"), playerDoc.getInteger("ITEM_HEALTH"), + playerDoc.getInteger("DEFENSE"), playerDoc.getInteger("ITEM_DEFENSE"), + playerDoc.getInteger("SPEED"), playerDoc.getInteger("ITEM_SPEED"), + playerDoc.getInteger("STRENGTH"), playerDoc.getInteger("ITEM_STRENGTH"), + playerDoc.getInteger("MAX_MANA"), playerDoc.getInteger("MANA"), playerDoc.getInteger("ITEM_MANA"), + playerDoc.getInteger("LUCK"), playerDoc.getInteger("ITEM_LUCK")); Inventory ec = Bukkit.createInventory(null, 54, Component.text("Ender Chest")); if(playerDoc.getString("ec") != null) { debug(main, "Loading " + player.getName() + "'s storage."); @@ -166,9 +152,10 @@ public class PlayerConfig { inv = setItemsToInventory(listItemStackDeserilize(playerDoc.getString("inv")), inv); player.getInventory().setContents(inv.getContents()); player.updateInventory(); - gq.unurled.raxen.components.player.storages.Inventory invv = new gq.unurled.raxen.components.player.storages.Inventory(inv); + gq.unurled.raxen.components.entity.player.storages.Inventory invv = new gq.unurled.raxen.components.entity.player.storages.Inventory(inv); Inventories invvv = new Inventories(invv); playerManager.getRaxenPlayer(player).setInventory(inv); + PlayerUtils.updateSkills(main, player); } public void loadUsingYml(Player player) throws IOException { @@ -190,7 +177,7 @@ public class PlayerConfig { inv = setItemsToInventory(listItemStackDeserilize((String) config.getString("inv")), inv); player.getInventory().setContents(inv.getContents()); player.updateInventory(); - gq.unurled.raxen.components.player.storages.Inventory invv = new gq.unurled.raxen.components.player.storages.Inventory(inv); + gq.unurled.raxen.components.entity.player.storages.Inventory invv = new gq.unurled.raxen.components.entity.player.storages.Inventory(inv); Inventories invvv = new Inventories(invv); playerManager.getRaxenPlayer(player).setInventory(inv); } diff --git a/src/main/java/gq/unurled/raxen/listener/entity/DamageEntity.java b/src/main/java/gq/unurled/raxen/listener/entity/DamageEntity.java index 5c1e8aa..1a745d1 100644 --- a/src/main/java/gq/unurled/raxen/listener/entity/DamageEntity.java +++ b/src/main/java/gq/unurled/raxen/listener/entity/DamageEntity.java @@ -1,9 +1,9 @@ package gq.unurled.raxen.listener.entity; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.EntityNamespacedKey; -import gq.unurled.raxen.components.items.Attributes; -import gq.unurled.raxen.utils.Items; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; import org.bukkit.attribute.Attribute; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; @@ -29,55 +29,53 @@ public class DamageEntity implements Listener { @EventHandler public void entityDamageByEntity(EntityDamageByEntityEvent e) { - if (!(e.getEntity() instanceof LivingEntity)) { + if (!(e.getEntity() instanceof LivingEntity) || !(e.getDamager() instanceof LivingEntity)) { debug("Not Living Entity, Some block falling shit or block entities"); } else { e.setDamage(0); Integer damage = 1; Integer strength = 0; - Integer itemDmg = 0; + Integer itemStrength = 0; Integer defense = 0; Integer itemDefense = 0; Integer health = 0; Integer itemHealth = 0; Integer initDamage = 0; + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); debug(main, e.getEntity().getName(), e.getEntity().getType().toString(), e.getDamager().getType().toString(), e.getDamager().getName()); if (e.getDamager() instanceof Player) { Player playerDamager = (Player) e.getDamager(); - gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main); - strength = attributes.getStrength(playerDamager); - itemDmg = attributes.getItemStrength(playerDamager); + strength = pm.getStrength().get(playerDamager); + itemStrength = pm.getItemStrength().get(playerDamager); } else { Entity entityDamager = e.getDamager(); PersistentDataContainer data = entityDamager.getPersistentDataContainer(); - if (data.has(entityNamespacedKey.strengthKey, PersistentDataType.INTEGER)) { - strength = data.get(entityNamespacedKey.strengthKey, PersistentDataType.INTEGER); + if (data.has(entityNamespacedKey.strength, PersistentDataType.INTEGER)) { + strength = data.get(entityNamespacedKey.strength, PersistentDataType.INTEGER); } - Attributes attributes = Items.getNbtFromEntity((LivingEntity) entityDamager); - itemDmg = attributes.getStrength(); + itemStrength = pm.getItemStrength().getItem((LivingEntity) entityDamager); } if (e.getEntity() instanceof Player) { Player playerVictim = (Player) e.getEntity(); - gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main); - defense = attributes.getDefense(playerVictim); - health = attributes.getHealth(playerVictim); - itemDefense = attributes.getItemDefense(playerVictim); - itemHealth = attributes.getItemHealth(playerVictim); + gq.unurled.raxen.components.entity.player.attributes.Attributes attributes = new gq.unurled.raxen.components.entity.player.attributes.Attributes(main); + defense = pm.getDefense().get(playerVictim); + health = pm.getHealth().get(playerVictim); + itemDefense = pm.getItemDefense().get(playerVictim); + itemHealth = pm.getItemHealth().get(playerVictim); } else { Entity entityVictim = e.getEntity(); PersistentDataContainer data = entityVictim.getPersistentDataContainer(); - if (data.has(entityNamespacedKey.defenseKey, PersistentDataType.INTEGER)) { - defense = data.get(entityNamespacedKey.defenseKey, PersistentDataType.INTEGER); + if (data.has(entityNamespacedKey.defense, PersistentDataType.INTEGER)) { + defense = data.get(entityNamespacedKey.defense, PersistentDataType.INTEGER); } - if (data.has(entityNamespacedKey.healthKey, PersistentDataType.INTEGER)) { - health = data.get(entityNamespacedKey.healthKey, PersistentDataType.INTEGER); + if (data.has(entityNamespacedKey.health, PersistentDataType.INTEGER)) { + health = data.get(entityNamespacedKey.health, PersistentDataType.INTEGER); } - Attributes attributes = Items.getNbtFromEntity((LivingEntity) entityVictim); - itemDefense = attributes.getDefense(); - itemHealth = attributes.getHealth(); + itemDefense = pm.getItemDefense().getItem((LivingEntity) entityVictim); + itemHealth = pm.getItemHealth().getItem((LivingEntity) entityVictim); } debug(main, initDamage.toString(), itemDefense.toString(), strength.toString()); - initDamage = (5+ itemDmg) * (1+ (strength/100)); + initDamage = (5+ itemStrength) * (1+ (strength/100)); damage = initDamage; defense = defense + itemDefense; debug(main, String.valueOf(damage)); @@ -100,13 +98,12 @@ public class DamageEntity implements Listener { } if (e.getEntity() instanceof Player) { Player playerVictim = (Player) e.getEntity(); - gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main); - attributes.setHealth(playerVictim, health); + gq.unurled.raxen.components.entity.player.attributes.Attributes attributes = new gq.unurled.raxen.components.entity.player.attributes.Attributes(main); + pm.getHealth().set(playerVictim, health); playerVictim.setHealth(health.doubleValue()/5); } else { Entity entityVictim = e.getEntity(); - PersistentDataContainer data = entityVictim.getPersistentDataContainer(); - data.set(entityNamespacedKey.healthKey, PersistentDataType.INTEGER, health); + pm.getHealth().set(entityVictim, health); } debug(main, health.toString()); } @@ -118,8 +115,7 @@ public class DamageEntity implements Listener { e.setDamage(0); if (e.getEntity() instanceof Player) { Player player = (Player) e.getEntity(); - gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main); - Integer health = attributes.getHealth(player); + } } diff --git a/src/main/java/gq/unurled/raxen/listener/entity/SpawnEvent.java b/src/main/java/gq/unurled/raxen/listener/entity/SpawnEvent.java index 1247c1c..e5e5566 100644 --- a/src/main/java/gq/unurled/raxen/listener/entity/SpawnEvent.java +++ b/src/main/java/gq/unurled/raxen/listener/entity/SpawnEvent.java @@ -1,8 +1,8 @@ package gq.unurled.raxen.listener.entity; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.entity.EntityNamespacedKey; -import gq.unurled.raxen.components.entity.EntityUtils; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; +import gq.unurled.raxen.components.entity.other.EntityUtils; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -30,9 +30,9 @@ public class SpawnEvent implements Listener { if (e.getEntity() instanceof Player) { //player stuff dont want to talk about it; debug(main, "Player: " + ((Player) e.getEntity()).getName()); - } else if (e.getEntity().getType() != EntityType.DROPPED_ITEM) { + } else if (e.getEntity().getType() != EntityType.DROPPED_ITEM && e.getEntity().getType() != EntityType.FALLING_BLOCK) { debug(main, e.getEntity().getName()); - if (!e.getEntity().getPersistentDataContainer().has(namespacedKey.nameKey, PersistentDataType.STRING)) { + if (!e.getEntity().getPersistentDataContainer().has(namespacedKey.name, PersistentDataType.STRING)) { entityUtils.setNameSpacedKeys(e.getEntity(), e.getEntityType().name(), 1, 10, 0, 50, 0, 100, 0, 100, 0); } entityUtils.updateSkills((LivingEntity) e.getEntity()); diff --git a/src/main/java/gq/unurled/raxen/listener/player/ArmorEvent.java b/src/main/java/gq/unurled/raxen/listener/player/ArmorEvent.java index 4a86741..285ab4f 100644 --- a/src/main/java/gq/unurled/raxen/listener/player/ArmorEvent.java +++ b/src/main/java/gq/unurled/raxen/listener/player/ArmorEvent.java @@ -3,9 +3,12 @@ package gq.unurled.raxen.listener.player; import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent; import de.tr7zw.nbtapi.NBTItem; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.PlayerUtils; -import gq.unurled.raxen.components.player.attributes.Attributes; +import gq.unurled.raxen.components.entity.player.PlayerUtils; +import gq.unurled.raxen.components.entity.player.attributes.Attributes; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -22,37 +25,42 @@ public class ArmorEvent implements Listener { @EventHandler public void ArmorChangeEvent(PlayerArmorChangeEvent e) { Player player = e.getPlayer(); + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + Entity entity = player; Attributes attributes = new Attributes(main); if(e.getOldItem() != null && e.getOldItem().getType() != Material.AIR) { ItemStack oldItem = e.getOldItem(); NBTItem nbti = new NBTItem(oldItem); if(nbti.hasKey("SPEED")) { - attributes.removeSpeed(player, nbti.getInteger("SPEED")); + pm.getSpeed().remove(entity, nbti.getInteger("SPEED")); } if(nbti.hasKey("HEALTH")) { - attributes.removeHealth(player, nbti.getInteger("HEALTH")); + pm.getHealth().remove(entity, nbti.getInteger("HEALTH")); } if(nbti.hasKey("DEFENSE")) { - attributes.removeDefense(player, nbti.getInteger("DEFENSE")); + pm.getDefense().remove(entity, nbti.getInteger("DEFENSE")); + } if(nbti.hasKey("STRENGTH")) { - attributes.removeStrength(player, nbti.getInteger("STRENGTH")); + pm.getStrength().remove(entity, nbti.getInteger("STRENGTH")); } } if(e.getNewItem() != null && e.getNewItem().getType() != Material.AIR) { ItemStack newItem = e.getNewItem(); NBTItem nbti = new NBTItem(newItem); if(nbti.hasKey("SPEED")) { - attributes.addSpeed(player, nbti.getInteger("SPEED")); + pm.getSpeed().add(entity, nbti.getInteger("SPEED")); } if(nbti.hasKey("HEALTH")) { - attributes.addHealth(player, nbti.getInteger("HEALTH")); + pm.getHealth().add(entity, nbti.getInteger("HEALTH")); + } if(nbti.hasKey("DEFENSE")) { - attributes.addDefense(player, nbti.getInteger("DEFENSE")); + pm.getDefense().add(entity, nbti.getInteger("DEFENSE")); + } if(nbti.hasKey("STRENGTH")) { - attributes.addStrength(player, nbti.getInteger("STRENGTH")); + pm.getStrength().add(entity, nbti.getInteger("STRENGTH")); } } PlayerUtils.updateSkills(main, player); diff --git a/src/main/java/gq/unurled/raxen/listener/player/ItemHandEvent.java b/src/main/java/gq/unurled/raxen/listener/player/ItemHandEvent.java index d57768f..42861b0 100644 --- a/src/main/java/gq/unurled/raxen/listener/player/ItemHandEvent.java +++ b/src/main/java/gq/unurled/raxen/listener/player/ItemHandEvent.java @@ -2,9 +2,12 @@ package gq.unurled.raxen.listener.player; import de.tr7zw.nbtapi.NBTItem; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.PlayerUtils; -import gq.unurled.raxen.components.player.attributes.Attributes; +import gq.unurled.raxen.components.entity.player.PlayerUtils; +import gq.unurled.raxen.components.entity.player.attributes.Attributes; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -22,37 +25,45 @@ public class ItemHandEvent implements Listener { @EventHandler public void ItemHeldEvent(PlayerItemHeldEvent e) { Player player = e.getPlayer(); + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + Entity entity = player; Attributes attributes = new Attributes(main); ItemStack oldItem = player.getInventory().getItem(e.getPreviousSlot()); ItemStack newItem = player.getInventory().getItem(e.getNewSlot()); if(oldItem != null && oldItem.getType() != Material.AIR) { NBTItem nbti = new NBTItem(oldItem); if(nbti.hasKey("SPEED")) { - attributes.removeItemSpeed(player, nbti.getInteger("SPEED")); + pm.getItemSpeed().remove(player, nbti.getInteger("SPEED")); } if(nbti.hasKey("HEALTH")) { - attributes.removeItemHealth(player, nbti.getInteger("HEALTH")); + pm.getItemHealth().remove(player, nbti.getInteger("HEALTH")); + } if(nbti.hasKey("DEFENSE")) { - attributes.removeItemDefense(player, nbti.getInteger("DEFENSE")); + pm.getItemDefense().remove(player, nbti.getInteger("DEFENSE")); + } if(nbti.hasKey("STRENGTH")) { - attributes.removeItemStrength(player, nbti.getInteger("STRENGTH")); + pm.getItemStrength().remove(player, nbti.getInteger("STRENGTH")); + } } if(newItem != null && newItem.getType() != Material.AIR) { NBTItem nbti = new NBTItem(newItem); if(nbti.hasKey("SPEED")) { - attributes.addItemSpeed(player, nbti.getInteger("SPEED")); + pm.getItemSpeed().add(player, nbti.getInteger("SPEED")); } if(nbti.hasKey("HEALTH")) { - attributes.addItemHealth(player, nbti.getInteger("HEALTH")); + pm.getItemHealth().add(player, nbti.getInteger("HEALTH")); + } if(nbti.hasKey("DEFENSE")) { - attributes.addItemDefense(player, nbti.getInteger("DEFENSE")); + pm.getItemDefense().add(player, nbti.getInteger("DEFENSE")); + } if(nbti.hasKey("STRENGTH")) { - attributes.addItemStrength(player, nbti.getInteger("STRENGTH")); + pm.getItemStrength().add(player, nbti.getInteger("STRENGTH")); + } } PlayerUtils.updateSkills(main, player); diff --git a/src/main/java/gq/unurled/raxen/listener/player/JoinEvent.java b/src/main/java/gq/unurled/raxen/listener/player/JoinEvent.java index 96e3fce..2a177b7 100644 --- a/src/main/java/gq/unurled/raxen/listener/player/JoinEvent.java +++ b/src/main/java/gq/unurled/raxen/listener/player/JoinEvent.java @@ -1,7 +1,7 @@ package gq.unurled.raxen.listener.player; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.Scoreboard; +import gq.unurled.raxen.components.entity.player.Scoreboard; import gq.unurled.raxen.components.resourcepack.ResourcePack; import gq.unurled.raxen.config.PlayerConfig; import gq.unurled.raxen.manager.entity.PlayerManager; diff --git a/src/main/java/gq/unurled/raxen/listener/player/TransactionEvent.java b/src/main/java/gq/unurled/raxen/listener/player/TransactionEvent.java index 2908b77..c871ff3 100644 --- a/src/main/java/gq/unurled/raxen/listener/player/TransactionEvent.java +++ b/src/main/java/gq/unurled/raxen/listener/player/TransactionEvent.java @@ -1,7 +1,7 @@ package gq.unurled.raxen.listener.player; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.Scoreboard; +import gq.unurled.raxen.components.entity.player.Scoreboard; import gq.unurled.raxen.utils.libs.Vault; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/main/java/gq/unurled/raxen/manager/Manager.java b/src/main/java/gq/unurled/raxen/manager/Manager.java index 396ee68..ca51ee8 100644 --- a/src/main/java/gq/unurled/raxen/manager/Manager.java +++ b/src/main/java/gq/unurled/raxen/manager/Manager.java @@ -8,15 +8,15 @@ import lombok.Getter; public class Manager { @Getter - private static WorldManager worldManager; + private WorldManager worldManager; @Getter - private static StorageManager storageManager; + private StorageManager storageManager; @Getter - private static PlayerManager playerManager; + private PlayerManager playerManager; @Getter - private static ListenerManager listenerManager; + private ListenerManager listenerManager; @Getter - private static CommandManager commandManager; + private CommandManager commandManager; @Getter private ItemManager itemManager; @Getter diff --git a/src/main/java/gq/unurled/raxen/manager/entity/EntityManager.java b/src/main/java/gq/unurled/raxen/manager/entity/EntityManager.java index d751d1a..82052a1 100644 --- a/src/main/java/gq/unurled/raxen/manager/entity/EntityManager.java +++ b/src/main/java/gq/unurled/raxen/manager/entity/EntityManager.java @@ -24,7 +24,7 @@ public class EntityManager { @Setter public List list = new ArrayList<>(); - public HashMap entities = new HashMap<>(); + public HashMap entities = new HashMap<>(); public HashMap livingEntities = new HashMap<>(); diff --git a/src/main/java/gq/unurled/raxen/manager/entity/PlayerManager.java b/src/main/java/gq/unurled/raxen/manager/entity/PlayerManager.java index e0c64ce..c5232b8 100644 --- a/src/main/java/gq/unurled/raxen/manager/entity/PlayerManager.java +++ b/src/main/java/gq/unurled/raxen/manager/entity/PlayerManager.java @@ -1,9 +1,11 @@ package gq.unurled.raxen.manager.entity; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.player.RaxenPlayer; -import gq.unurled.raxen.components.player.attributes.Attribute; -import gq.unurled.raxen.components.player.classes.Class; +import gq.unurled.raxen.components.entity.Attributes.*; +import gq.unurled.raxen.components.entity.other.EntityNamespacedKey; +import gq.unurled.raxen.components.entity.player.RaxenPlayer; +import gq.unurled.raxen.components.entity.player.classes.Class; +import lombok.Getter; import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -17,9 +19,28 @@ public class PlayerManager { private Raxen main; private HashMap actionBar = new HashMap<>(); private HashMap classes = new HashMap<>(); + @Getter + private HashMap attribute = new HashMap<>(); + + // Attributes + private Defense defense; + private Health health; + private ItemDefense itemDefense; + private ItemHealth itemHealth; + private ItemLuck itemLuck; + private ItemMana itemMana; + private ItemSpeed itemSpeed; + private ItemStrength itemStrength; + private Luck luck; + private Mana mana; + private MaxHealth maxHealth; + private MaxMana maxMana; + private Speed speed; + private Strength strength; public PlayerManager(Raxen main) { this.main = main; + registerAttributes(); } public RaxenPlayer getRaxenPlayer(Player player) { @@ -27,11 +48,11 @@ public class PlayerManager { } public void registerActionBar(Player player) { - Attribute attributes = getRaxenPlayer(player).getAttributes().getAttribute(player); + PlayerManager pm = main.getManager().getPlayerManager(); BukkitTask task = new BukkitRunnable() { @Override public void run() { - player.sendActionBar(Component.text(attributes.getHealth() + "/" + attributes.getMaxHealth() + "❤ " + attributes.getMana() + "/" + attributes.getMaxMana())); + player.sendActionBar(Component.text(pm.getHealth().get(player) + "/" + pm.getMaxHealth().get(player) + "❤ " + pm.getMana().get(player) + "/" + pm.getMaxMana().get(player))); } }.runTaskTimer(main, 0L, 20L); if(actionBar.containsKey(player.getUniqueId())) { @@ -72,4 +93,109 @@ public class PlayerManager { public void addClasses(Class clas, String id) { classes.put(id, clas); } + + /** + * register all Attributes in gq.unurled.raxen.components.entity.Attributes; + */ + public void registerAttributes() { + EntityNamespacedKey key = new EntityNamespacedKey(main); + + this.defense = new Defense(key.defense, "DEFENSE"); + attribute.put("DEFENSE", defense); + + this.health = new Health(key.health, "HEALTH"); + attribute.put("HEALTH", health); + + this.itemDefense = new ItemDefense(key.itemDefense, "ITEM_DEFENSE"); + attribute.put("ITEM_DEFENSE", itemDefense); + + this.itemHealth = new ItemHealth(key.itemHealth, "ITEM_HEALTH"); + attribute.put("ITEM_HEALTH", itemHealth); + + this.itemLuck = new ItemLuck(key.itemLuck, "ITEM_LUCK"); + attribute.put("ITEM_LUCK", itemLuck); + + this.itemMana = new ItemMana(key.itemMana, "ITEM_MANA"); + attribute.put("ITEM_MANA", itemMana); + + this.itemSpeed = new ItemSpeed(key.itemSpeed, "ITEM_SPEED"); + attribute.put("ITEM_SPEED", itemSpeed); + + this.itemStrength = new ItemStrength(key.itemStrength, "ITEM_STRENGTH"); + attribute.put("ITEM_STRENGTH", itemStrength); + + this.luck = new Luck(key.luck, "LUCK"); + attribute.put("LUCK", luck); + + this.mana = new Mana(key.mana, "MANA"); + attribute.put("MANA", mana); + + this.maxMana = new MaxManaBuilder().setNamespacekey(key.maxMana).setName("MAX_MANA").createMaxMana(); + attribute.put("MAX_MANA", maxMana); + + this.maxHealth = new MaxHealth(key.maxHealth, "MAX_HEALTH"); + attribute.put("MAX_HEALTH", maxHealth); + + this.speed = new Speed(key.speed, "SPEED"); + attribute.put("SPEED", speed); + + this.strength = new Strength(key.strength, "STRENGTH"); + attribute.put("STRENGTH", strength); + } + + public Defense getDefense() { + return (Defense) attribute.get("DEFENSE"); + } + + public Health getHealth() { + return (Health) attribute.get("HEALTH"); + } + + public ItemDefense getItemDefense() { + return (ItemDefense) attribute.get("ITEM_DEFENSE"); + } + + public ItemHealth getItemHealth() { + return (ItemHealth) attribute.get("ITEM_HEALTH"); + } + + public ItemLuck getItemLuck() { + return (ItemLuck) attribute.get("ITEM_LUCK"); + } + + public ItemMana getItemMana() { + return (ItemMana) attribute.get("ITEM_MANA"); + } + + public ItemSpeed getItemSpeed() { + return (ItemSpeed) attribute.get("ITEM_SPEED"); + } + + public ItemStrength getItemStrength() { + return (ItemStrength) attribute.get("ITEM_STRENGTH"); + } + + public Luck getLuck() { + return (Luck) attribute.get("LUCK"); + } + + public Mana getMana() { + return (Mana) attribute.get("MANA"); + } + + public MaxMana getMaxMana() { + return (MaxMana) attribute.get("MAX_MANA"); + } + + public MaxHealth getMaxHealth() { + return (MaxHealth) attribute.get("MAX_HEALTH"); + } + + public Speed getSpeed() { + return (Speed) attribute.get("SPEED"); + } + + public Strength getStrength() { + return (Strength) attribute.get("STRENGTH"); + } } diff --git a/src/main/java/gq/unurled/raxen/utils/EntityAttributes.java b/src/main/java/gq/unurled/raxen/utils/EntityAttributes.java new file mode 100644 index 0000000..b5b2a84 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/EntityAttributes.java @@ -0,0 +1,55 @@ +package gq.unurled.raxen.utils; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.components.entity.player.attributes.Attribute; +import gq.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Entity; + +import static gq.unurled.raxen.utils.Utils.debug; + +public class EntityAttributes { + + + public static Attribute getAttribute(Entity e) { + int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck; + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + defense= pm.getDefense().get(e); + maxMana = pm.getMaxMana().get(e); + itemDefense= pm.getItemDefense().get(e); + health = pm.getHealth().get(e); + itemHealth = pm.getItemHealth().get(e); + mana = pm.getMana().get(e); + speed = pm.getSpeed().get(e); + itemLuck = pm.getItemLuck().get(e); + strength = pm.getStrength().get(e); + luck = pm.getLuck().get(e); + maxHealth = pm.getMaxHealth().get(e); + itemStrength = pm.getItemStrength().get(e); + itemSpeed = pm.getItemSpeed().get(e); + itemMana = pm.getItemMana().get(e); + return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck); + } + + public static void setAttributes(Entity e, int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemStrength, int maxMana, int mana, int itemMana, int luck, int itemLuck) { + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + pm.getDefense().set(e, defense); + pm.getMaxMana().set(e, maxMana); + pm.getItemDefense().set(e, itemDefense); + pm.getHealth().set(e, health); + pm.getItemHealth().set(e, itemHealth); + pm.getMana().set(e, mana); + pm.getSpeed().set(e, speed); + pm.getItemLuck().set(e, itemLuck); + pm.getStrength().set(e, strength); + pm.getLuck().set(e, luck); + pm.getMaxHealth().set(e, maxHealth); + pm.getItemStrength().set(e, itemStrength); + pm.getItemSpeed().set(e, itemSpeed); + pm.getItemMana().set(e, itemMana); + debug("Speeeeeeeeeed " + speed); + for (String s : pm.getAttribute().keySet()) { + debug(s + " " + pm.getAttribute().get(s).get(e).toString()); + } + } +} diff --git a/src/main/java/gq/unurled/raxen/utils/Items.java b/src/main/java/gq/unurled/raxen/utils/Items.java index 352c3f7..875ac6a 100644 --- a/src/main/java/gq/unurled/raxen/utils/Items.java +++ b/src/main/java/gq/unurled/raxen/utils/Items.java @@ -3,17 +3,19 @@ package gq.unurled.raxen.utils; import com.google.gson.Gson; import de.tr7zw.nbtapi.NBTItem; import gq.unurled.raxen.Raxen; -import gq.unurled.raxen.components.items.Attributes; import gq.unurled.raxen.components.items.NBT; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.LivingEntity; -import org.bukkit.inventory.*; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.io.BukkitObjectInputStream; import org.bukkit.util.io.BukkitObjectOutputStream; +import org.jetbrains.annotations.NotNull; import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; import java.io.ByteArrayInputStream; @@ -25,7 +27,7 @@ import static gq.unurled.raxen.utils.Utils.*; public class Items { - public static ItemStack createItem(Material material, int amount, boolean glow, boolean unb, String name, String... lore) { + public static @NotNull ItemStack createItem(Material material, int amount, boolean glow, boolean unb, String name, String... lore) { ItemStack item = new ItemStack(material, amount); ItemMeta itemMeta = item.getItemMeta(); if(name != null) { @@ -49,7 +51,7 @@ public class Items { return item; } - public static ItemStack editItem(ItemStack item, String name,int amount, List lore) { + public static @NotNull ItemStack editItem(ItemStack item, String name, int amount, List lore) { if(amount == 0) { amount = 1; } @@ -62,16 +64,15 @@ public class Items { item.setItemMeta(itemMeta); return item; } - - public static ItemStack closeItem () { + public static @NotNull ItemStack closeItem () { return createItem(Material.BARRIER, 1, false, false, colorString("CLOSE")); } - public static ItemStack greyPane() { + public static @NotNull ItemStack greyPane() { return createItem(Material.GRAY_STAINED_GLASS_PANE, 1, false, true, ""); } - public static String itemStackSerilize(ItemStack it, Integer slot) { + public static @NotNull String itemStackSerilize(ItemStack it, @NotNull Integer slot) { String str = ""; str = itemTo64(it); str = str + "@#SLOT#" + slot.toString(); @@ -96,7 +97,7 @@ public class Items { } } - public static itemStackDeserilizeResult itemStackDeserilize(String str) { + public static @NotNull itemStackDeserilizeResult itemStackDeserilize(@NotNull String str) { List mapp = Arrays.asList(str.split("@#SLOT#")); Gson gson = new Gson(); ItemStack it = new ItemStack(Material.AIR); @@ -119,7 +120,7 @@ public class Items { return itt; } - public static String listItemStackSerelize(List list) { + public static String listItemStackSerelize(@NotNull List list) { Gson gson = new Gson(); String str = ""; for(String a : list) { @@ -128,7 +129,7 @@ public class Items { return str; } - public static HashMap listItemStackDeserilize(String str) { + public static @NotNull HashMap listItemStackDeserilize(@NotNull String str) { Gson gson = new Gson(); List map = Arrays.asList(str.split("@#NEW_ITEM#")); HashMap inv = new HashMap<>(); @@ -150,14 +151,14 @@ public class Items { return inv; } - public static Inventory setItemsToInventory(HashMap list, Inventory inv) { + public static Inventory setItemsToInventory(@NotNull HashMap list, Inventory inv) { for (Map.Entry entry : list.entrySet()) { inv.setItem(entry.getKey(), entry.getValue()); } return inv; } - public static PlayerInventory setItemsToInventory(HashMap list, PlayerInventory inv) { + public static PlayerInventory setItemsToInventory(@NotNull HashMap list, PlayerInventory inv) { for (Map.Entry entry : list.entrySet()) { if (entry.getKey() == 40) { inv.setHelmet(entry.getValue()); @@ -177,7 +178,7 @@ public class Items { return inv; } - private static String itemTo64(ItemStack stack) throws IllegalStateException { + private static @NotNull String itemTo64(ItemStack stack) throws IllegalStateException { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream); @@ -207,7 +208,7 @@ public class Items { } } - public static String attributes(String str) { + public static @NotNull String attributes(@NotNull String str) { String stt = ""; if(str.contains("SPEED")) { stt = "Speed"; @@ -231,7 +232,7 @@ public class Items { } } - public static NBTItem setAttributes(Raxen main, String str, Integer nb, NBTItem nbti) { + public static NBTItem setAttributes(Raxen main, @NotNull String str, Integer nb, NBTItem nbti) { switch (str) { case "SPEED": nbti.setInteger(NBT.SPEED, nb); @@ -251,50 +252,7 @@ public class Items { return nbti; } - public static Integer getHealth(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.HEALTH)){ - return nbti.getInteger(NBT.HEALTH); - } - return 0; - } - public static Integer getSpeed(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.SPEED)){ - return nbti.getInteger(NBT.SPEED); - } - return 0; - } - public static Integer getDefense(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.DEFENSE)){ - return nbti.getInteger(NBT.DEFENSE); - } - return 0; - } - public static Integer getStrength(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.STRENGTH)){ - return nbti.getInteger(NBT.STRENGTH); - } - return 0; - } - public static Integer getLuck(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.LUCK)){ - return nbti.getInteger(NBT.LUCK); - } - return 0; - } - public static Integer getMana(ItemStack it) { - NBTItem nbti = new NBTItem(it); - if (nbti.hasKey(NBT.MANA)){ - return nbti.getInteger(NBT.MANA); - } - return 0; - } - - public static ItemStack setLoreFromNBT(ItemStack it) { + public static @NotNull ItemStack setLoreFromNBT(@NotNull ItemStack it) { ItemMeta itm = it.getItemMeta(); List lore = new ArrayList<>(); for (Component cp : itm.lore()) { @@ -348,72 +306,4 @@ public class Items { return it; } - public static Attributes getNbtFromEntity(LivingEntity e) { - EntityEquipment equi = e.getEquipment(); - Integer health = 0; - Integer defense = 0; - Integer speed = 0; - Integer strength = 0; - Integer mana = 0; - Integer luck = 0; - if (equi != null) { - if (equi.getItemInMainHand().getType() != Material.AIR && equi.getHelmet() != null) { - ItemStack item = equi.getItemInMainHand(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - if (equi.getHelmet().getType() != Material.AIR && equi.getHelmet() != null) { - ItemStack item = equi.getHelmet(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) { - ItemStack item = equi.getChestplate(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) { - ItemStack item = equi.getChestplate(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - if (equi.getLeggings().getType() != Material.AIR && equi.getLeggings() != null) { - ItemStack item = equi.getLeggings(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - if (equi.getBoots().getType() != Material.AIR && equi.getBoots() != null) { - ItemStack item = equi.getBoots(); - health = health + getHealth(item); - defense = defense + getDefense(item); - speed = speed + getSpeed(item); - strength = strength + getStrength(item); - mana = mana + getMana(item); - luck = luck + getLuck(item); - } - } - Attributes attributes = new Attributes(health, defense, speed, strength, mana, luck); - return attributes; - } - } diff --git a/src/main/java/gq/unurled/raxen/utils/libs/Citizens.java b/src/main/java/gq/unurled/raxen/utils/libs/Citizens.java new file mode 100644 index 0000000..75ac756 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/Citizens.java @@ -0,0 +1,23 @@ +package gq.unurled.raxen.utils.libs; + +import gq.unurled.raxen.Raxen; +import org.bukkit.entity.Entity; + +public class Citizens { + + private Raxen main; + + public Citizens(Raxen main) { + this.main = main; + } + + public boolean isNPC(Entity e) { + return e.hasMetadata("NPC"); + } + + /* + public void createNPC(EntityType type) { + NPC npc = CitizensAPI.getNPCRegistry().createNPC(type); + } + */ +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/LuckPerm.java b/src/main/java/gq/unurled/raxen/utils/libs/LuckPerm.java new file mode 100644 index 0000000..7420f9b --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/LuckPerm.java @@ -0,0 +1,24 @@ +package gq.unurled.raxen.utils.libs; + +import gq.unurled.raxen.Raxen; +import lombok.Getter; +import net.luckperms.api.LuckPerms; +import org.bukkit.Bukkit; +import org.bukkit.plugin.RegisteredServiceProvider; + +public class LuckPerm { + + private static RegisteredServiceProvider provider; + @Getter + private static LuckPerms api; + + public LuckPerm(Raxen main) { + provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class); + } + + public static void register() { + if (provider != null) { + api = provider.getProvider(); + } + } +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/MongoDB.java b/src/main/java/gq/unurled/raxen/utils/libs/MongoDB.java new file mode 100644 index 0000000..75748e7 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/MongoDB.java @@ -0,0 +1,47 @@ +package gq.unurled.raxen.utils.libs; + +import com.mongodb.ConnectionString; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import lombok.Getter; +import org.bson.Document; +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; + +import java.util.Objects; + +import static gq.unurled.raxen.utils.Utils.colorComp; +import static gq.unurled.raxen.utils.Utils.log; + +public class MongoDB { + @Getter + private MongoClient mongoClient; + @Getter + private MongoDatabase mongoDatabase; + @Getter + private MongoCollection mongoCollection; + @Getter + private MongoCollection mongoConfigs; + + public void connect() { + FileConfiguration config = Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("Raxen")).getConfig(); + String uri = (String) config.get("url"); + assert uri != null; + log("URI" + uri); + ConnectionString connectionString = new ConnectionString(uri); + mongoClient = MongoClients.create(connectionString); + mongoDatabase = mongoClient.getDatabase("Raxen"); + mongoCollection = mongoDatabase.getCollection("player"); + mongoConfigs = mongoDatabase.getCollection("config"); + + Bukkit.getConsoleSender().sendMessage(colorComp("MongoDB connected!")); + } + + public void close() { + mongoClient.close(); + + Bukkit.getConsoleSender().sendMessage(colorComp("MongoDB disconnected!")); + } +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/Mysql.java b/src/main/java/gq/unurled/raxen/utils/libs/Mysql.java new file mode 100644 index 0000000..f9be08b --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/Mysql.java @@ -0,0 +1,46 @@ +package gq.unurled.raxen.utils.libs; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.config.Config; +import gq.unurled.raxen.manager.entity.StorageManager; +import org.bukkit.entity.Player; + +import java.sql.SQLException; + +public class Mysql { + + private static String username; + private static String password; + private static String url; + + private Raxen main; + private StorageManager sto; + private Config config; + + public Mysql(Raxen main) { + this.main = main; + this.sto = main.getManager().getStorageManager(); + this.config = main.getConf(); + this.username = (String) config.getConfig().get("username"); + this.url = (String) config.getConfig().get("url"); + this.password = (String) config.getConfig().get("password"); + + } + + public static void init() { + + } + + public static String get(Player player, String str) throws SQLException { + return "False"; + } + + public static void connect() { + + } + + public static void disconnect() { + + } + +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/PlaceHolderAPI.java b/src/main/java/gq/unurled/raxen/utils/libs/PlaceHolderAPI.java new file mode 100644 index 0000000..94eabf7 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/PlaceHolderAPI.java @@ -0,0 +1,18 @@ +package gq.unurled.raxen.utils.libs; + +import gq.unurled.raxen.Raxen; + +public class PlaceHolderAPI { + + private Raxen main; + + public PlaceHolderAPI(Raxen main) { + this.main = main; + } + + /* + public static setPlaceholders() { + + } + */ +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/Vault.java b/src/main/java/gq/unurled/raxen/utils/libs/Vault.java new file mode 100644 index 0000000..5c8a46f --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/Vault.java @@ -0,0 +1,48 @@ +package gq.unurled.raxen.utils.libs; + +import gq.unurled.raxen.Raxen; +import lombok.Getter; +import net.milkbowl.vault.economy.Economy; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.plugin.RegisteredServiceProvider; + +import java.text.DecimalFormat; + +import static gq.unurled.raxen.utils.Utils.error; + +public class Vault { + @Getter + private Economy econ = null; + //econ.depositPlayer(player,amount) + //econ.withdrawPlayer(player,amount) + //econ.getBalance(player); + + + private static Raxen main; + + public Vault(Raxen main) { + this.main = main; + setupEconomy(); + } + + private void setupEconomy() { + if (main.getServer().getPluginManager().getPlugin("Vault") == null) { + error((Raxen) Bukkit.getPluginManager().getPlugin("Raxen"),"Need to install plugin Vault. (https://github.com/milkbowl/Vault)"); + return; + } + RegisteredServiceProvider rsp = main.getServer().getServicesManager().getRegistration(Economy.class); + if (rsp == null) { + error((Raxen) Bukkit.getPluginManager().getPlugin("Raxen"),"Some bug happend in the initialisation of Vault and Raxen."); + return; + } + econ = rsp.getProvider(); + return; + } + + public String getBalanceString(Player player) { + double bal = econ.getBalance(player); + DecimalFormat format = new DecimalFormat("#,###.00"); + return format.format(bal); + } +} diff --git a/src/main/java/gq/unurled/raxen/utils/libs/WorldEdit.java b/src/main/java/gq/unurled/raxen/utils/libs/WorldEdit.java new file mode 100644 index 0000000..7a78401 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/libs/WorldEdit.java @@ -0,0 +1,5 @@ +package gq.unurled.raxen.utils.libs; + +public class WorldEdit { + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0cd46d8..cc0b004 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,14 +1,14 @@ -version: "${version}" -motd: "YAY, Super server!" -motd-reload: "Server reloading!" + version: "${version}" + motd: "YAY, Super server!" + motd-reload: "Server reloading!" -storage: "MONGODB" #switch between "MONGODB", "MYSQL"(not implemented), "YML"(currzently making it) -#if MYSQL -username: "Your-username-here" -password: "Your-password-here" -url: "url-to-the-server/db_Name" + storage: "MONGODB" # switch between "MONGODB", "MYSQL"(not implemented), "YML"(currently making it) + # if MYSQL or MongoDB + username: "no_usr" # if mysql if you are on mongodb, add username in the url + password: "no_pass" # if mysql if you are on mongodb, add password in the url + url: "mongodb://localhost:27017" -useResourcePack: true -resource_pack_url: "https://mc-packs.net/" # recommend to use https://mc-packs.net/ => free ressource pack hoster (will eventualy developp one myself but not atm) -resource_pack_sha1: "sha1hallo" # sha1 hash -debug: true \ No newline at end of file + useResourcePack: false + resource_pack_url: "https://mc-packs.net/" # recommend to use https://mc-packs.net/ => free resource pack hoster (will eventually develop one myself but not atm) + resource_pack_sha1: "sha1hallo" # sha1 hash + debug: true \ No newline at end of file