From 21f32349ee29d350d341bbc45a385c0f4d20d4f5 Mon Sep 17 00:00:00 2001 From: unurled Date: Mon, 21 Nov 2022 10:05:00 +0100 Subject: [PATCH] 0.5.5 --- .gitignore | 2 + build.gradle | 33 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- .../raxen/assets/minecraft/font/default.json | 14 --- .../assets/minecraft/models/item/compass.json | 15 --- .../minecraft/models/item/diamond_axe.json | 20 ---- .../minecraft/models/item/diamond_shovel.json | 25 ----- .../models/raxen/gui/lower_section.json | 27 ----- .../models/raxen/gui/upper_section.json | 27 ----- .../minecraft/models/raxen/item/device.json | 37 ------- .../minecraft/textures/block/oak_planks.png | Bin 1666 -> 0 bytes .../textures/raxen/gui/lower_section.png | Bin 3519 -> 0 bytes .../textures/raxen/gui/upper_section.png | Bin 3475 -> 0 bytes .../minecraft/textures/raxen/item/device.png | Bin 201 -> 0 bytes src/main/java/me/unurled/raxen/Raxen.java | 2 +- .../raxen/commands/admin/EntitiyCommand.java | 2 + .../raxen/commands/admin/ItemTo64Command.java | 2 + .../raxen/commands/admin/SpawnEntity.java | 104 ++++++++++++++++-- .../components/entity/player/Scoreboard.java | 20 ++-- .../raxen/listener/entity/DamageEntity.java | 15 ++- .../raxen/listener/player/InteractEvent.java | 18 +++ .../raxen/listener/player/RespawnEvent.java | 21 ++++ .../raxen/manager/entity/PlayerManager.java | 10 +- .../raxen/manager/server/CommandManager.java | 14 ++- .../manager/server/ResourcePackManager.java | 2 +- .../java/me/unurled/raxen/utils/Items.java | 7 +- .../java/me/unurled/raxen/utils/Utils.java | 75 ++++++++++++- .../me/unurled/raxen/utils/libs/MongoDB.java | 6 +- src/main/resources/plugin.yml | 12 +- 29 files changed, 284 insertions(+), 228 deletions(-) delete mode 100644 resource_pack/raxen/assets/minecraft/font/default.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/item/compass.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/item/diamond_axe.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/item/diamond_shovel.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/raxen/gui/lower_section.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/raxen/gui/upper_section.json delete mode 100644 resource_pack/raxen/assets/minecraft/models/raxen/item/device.json delete mode 100644 resource_pack/raxen/assets/minecraft/textures/block/oak_planks.png delete mode 100644 resource_pack/raxen/assets/minecraft/textures/raxen/gui/lower_section.png delete mode 100644 resource_pack/raxen/assets/minecraft/textures/raxen/gui/upper_section.png delete mode 100644 resource_pack/raxen/assets/minecraft/textures/raxen/item/device.png create mode 100644 src/main/java/me/unurled/raxen/commands/admin/EntitiyCommand.java create mode 100644 src/main/java/me/unurled/raxen/commands/admin/ItemTo64Command.java create mode 100644 src/main/java/me/unurled/raxen/listener/player/InteractEvent.java create mode 100644 src/main/java/me/unurled/raxen/listener/player/RespawnEvent.java diff --git a/.gitignore b/.gitignore index f9ab433..090c47c 100644 --- a/.gitignore +++ b/.gitignore @@ -128,3 +128,5 @@ buildNumber.properties run/ /.gradle/ /gradle/ + +resource_pack/raxen/assets/minecraft/ diff --git a/build.gradle b/build.gradle index 081ebf5..09d9bae 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java' id 'maven-publish' id "com.github.johnrengelman.shadow" version "7.1.2" - id "io.papermc.paperweight.userdev" version "1.3.5" + id "io.papermc.paperweight.userdev" version "1.3.9" } apply plugin: "java" @@ -60,27 +60,27 @@ dependencies { testCompileOnly 'org.projectlombok:lombok:1.18.24' // mongo stuff - implementation 'org.mongodb:mongodb-driver-sync:4.7.1' - implementation 'org.mongodb:bson:4.7.1' - implementation 'org.mongodb:mongodb-driver-core:4.7.1' + implementation 'org.mongodb:mongodb-driver-sync:4.7.2' + implementation 'org.mongodb:bson:4.7.2' + implementation 'org.mongodb:mongodb-driver-core:4.7.2' implementation 'de.tr7zw:item-nbt-api-plugin:2.10.0' - compileOnly 'io.papermc.paper:paper-api:1.19-R0.1-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.19.2-R0.1-SNAPSHOT' compileOnly 'com.comphenix.protocol:ProtocolLib:4.8.0' compileOnly 'net.luckperms:api:5.4' compileOnly 'com.github.MilkBowl:VaultAPI:1.7.1' - compileOnly 'net.essentialsx:EssentialsX:2.19.4' + compileOnly 'net.essentialsx:EssentialsX:2.19.7' //compileOnly 'com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.3.0' //compileOnly 'com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.3.0' - compileOnly 'me.clip:placeholderapi:2.11.1' + compileOnly 'me.clip:placeholderapi:2.11.2' //compileOnly 'net.citizensnpcs:citizens-main:2.0.30-SNAPSHOT' compileOnly 'com.onarandombox.multiversecore:Multiverse-Core:4.3.1' compileOnly fileTree(dir: 'libs', include: '*.jar') - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.19-R0.1-SNAPSHOT") + paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.19.2-R0.1-SNAPSHOT") } group = 'me.unurled' -version = '0.5.4' +version = '0.5.5' description = 'Raxen' java { @@ -110,9 +110,9 @@ tasks { shadowJar { dependencies { include dependency('de.tr7zw:item-nbt-api-plugin:2.10.0') - include dependency('org.mongodb:mongodb-driver-sync:4.5.1') - include dependency('org.mongodb:bson:4.5.1') - include dependency('org.mongodb:mongodb-driver-core:4.5.1') + include dependency('org.mongodb:mongodb-driver-sync:4.7.2') + include dependency('org.mongodb:bson:4.7.2') + include dependency('org.mongodb:mongodb-driver-core:4.7.2') } relocate("de.tr7zw.changeme", "me.unurled.libs.de.tr7zw") relocate("de.tr7zw", "me.unurled.libs.de.tr7zw") @@ -123,8 +123,7 @@ shadowJar { } } -gradle.projectsEvaluated { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" - } -} \ No newline at end of file + +tasks.withType(JavaCompile) { + options.compilerArgs += ["-Xlint:unchecked", "-Xlint:deprecation"] +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index aa991fc..ae04661 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/resource_pack/raxen/assets/minecraft/font/default.json b/resource_pack/raxen/assets/minecraft/font/default.json deleted file mode 100644 index 2c6f3a9..0000000 --- a/resource_pack/raxen/assets/minecraft/font/default.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "providers": [ - { - "chars": - [ - "ꀀ" - ], - "file": "minecraft:/recipe_showcase.png", - "ascent":40, - "height":164, - "type":"bitmap" - } - ] -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/models/item/compass.json b/resource_pack/raxen/assets/minecraft/models/item/compass.json deleted file mode 100644 index 59fd30e..0000000 --- a/resource_pack/raxen/assets/minecraft/models/item/compass.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "item/compass_16" - }, - "overrides": [ - { - "predicate": { - "custom_model_data": 1 - }, - "model": "raxen/item/device" - } - - ] -} diff --git a/resource_pack/raxen/assets/minecraft/models/item/diamond_axe.json b/resource_pack/raxen/assets/minecraft/models/item/diamond_axe.json deleted file mode 100644 index a5ea6a9..0000000 --- a/resource_pack/raxen/assets/minecraft/models/item/diamond_axe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "parent":"item/handheld", - "textures": { - "layer0":"item/diamond_axe" - }, - "overrides": [ - { - "predicate": { - "custom_model_data":1 - }, - "model":"default/magical_axe" - }, - { - "predicate": { - "custom_model_data":2 - }, - "model":"default/battle_axe" - } - ] -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/models/item/diamond_shovel.json b/resource_pack/raxen/assets/minecraft/models/item/diamond_shovel.json deleted file mode 100644 index f6cbdeb..0000000 --- a/resource_pack/raxen/assets/minecraft/models/item/diamond_shovel.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "minecraft:item/diamond_shovel" - }, - "overrides": [ - { - "predicate": { - "custom_model_data": 1 - }, - "model":"raxen/item/device" - }, - { - "predicate": { - "custom_model_data": 2 - }, - "model":"raxen/gui/lower_section" - },{ - "predicate": { - "custom_model_data": 3 - }, - "model":"raxen/gui/upper_section" - } - ] -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/models/raxen/gui/lower_section.json b/resource_pack/raxen/assets/minecraft/models/raxen/gui/lower_section.json deleted file mode 100644 index b44bd7e..0000000 --- a/resource_pack/raxen/assets/minecraft/models/raxen/gui/lower_section.json +++ /dev/null @@ -1,27 +0,0 @@ -{ -"textures": { - "texture": "raxen/gui/lower_section" -}, -"elements": [ -{ - "from": [ -16, -16, 15.9375 ], - "to": [ 32, 32, 16 ], - "faces": { - "north": { "uv": [ 11, 16, 0, 5 ], "rotation": 180, "texture": "#texture" }, - "south": { "uv": [ 0, 5, 11, 16 ], "texture": "#texture" } - } -} -], -"display": { - "firstperson_lefthand": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0, 0, 0 ] - }, - "gui": { - "rotation": [ 0, 0, 0 ], - "translation": [ 72, -74, -80 ], - "scale": [ 3.66, 3.66, 3.66 ] - } -} -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/models/raxen/gui/upper_section.json b/resource_pack/raxen/assets/minecraft/models/raxen/gui/upper_section.json deleted file mode 100644 index 3abf8d3..0000000 --- a/resource_pack/raxen/assets/minecraft/models/raxen/gui/upper_section.json +++ /dev/null @@ -1,27 +0,0 @@ -{ -"textures": { - "texture": "raxen/gui/upper_section" -}, -"elements": [ -{ - "from": [ -16, -16, 15.9375 ], - "to": [ 32, 32, 16 ], - "faces": { - "north": { "uv": [ 11, 16, 0, 5 ], "rotation": 180, "texture": "#texture" }, - "south": { "uv": [ 0, 5, 11, 16 ], "texture": "#texture" } - } -} -], -"display": { - "firstperson_lefthand": { - "rotation": [ 0, 0, 0 ], - "translation": [ 0, 0, 0 ], - "scale": [ 0, 0, 0 ] - }, - "gui": { - "rotation": [ 0, 0, 0 ], - "translation": [ 72, 29, -80 ], - "scale": [ 3.66, 3.66, 3.66 ] - } -} -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/models/raxen/item/device.json b/resource_pack/raxen/assets/minecraft/models/raxen/item/device.json deleted file mode 100644 index 61c801b..0000000 --- a/resource_pack/raxen/assets/minecraft/models/raxen/item/device.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "credit": "Made with Blockbench", - "texture_size": [32, 32], - "textures": { - "0": "raxen/item/device" - }, - "elements": [ - { - "from": [5, 4, 7], - "to": [12, 12, 9], - "faces": { - "north": {"uv": [7, 0, 14, 8], "texture": "#0"}, - "east": {"uv": [2, 8, 4, 16], "texture": "#0"}, - "south": {"uv": [0, 0, 7, 8], "texture": "#0"}, - "west": {"uv": [0, 8, 2, 16], "texture": "#0"}, - "up": {"uv": [11, 10, 4, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [11, 10, 4, 12], "rotation": 180, "texture": "#0"} - } - } - ], - "display": { - "thirdperson_righthand": { - "translation": [0, 4, 1] - }, - "firstperson_righthand": { - "rotation": [-12, -25, 0] - }, - "gui": { - "translation": [-0.75, 0, 0], - "scale": [1.5, 1.5, 1.5] - }, - "fixed": { - "rotation": [0, -180, 0], - "scale": [1.5, 1.5, 1.5] - } - } -} \ No newline at end of file diff --git a/resource_pack/raxen/assets/minecraft/textures/block/oak_planks.png b/resource_pack/raxen/assets/minecraft/textures/block/oak_planks.png deleted file mode 100644 index 05faf77776614281ce41a043c8b647d78e73cd93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1666 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 AssI20 diff --git a/resource_pack/raxen/assets/minecraft/textures/raxen/gui/upper_section.png b/resource_pack/raxen/assets/minecraft/textures/raxen/gui/upper_section.png deleted file mode 100644 index 5b86c80763a8e7a6250fa6c071471fe9f1464df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3475 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 NObjgbtD!FU{|&4dlEnZ3 diff --git a/resource_pack/raxen/assets/minecraft/textures/raxen/item/device.png b/resource_pack/raxen/assets/minecraft/textures/raxen/item/device.png deleted file mode 100644 index 6790fde319a3a3757119111095d38e999dcba0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ37#&FArY-_r=AvUP~c&e=eru& zX*(hL#X+wefBi=suQWQ^oWHs8&8&TxKBMwjzre(s>vb6}yx27B!-LhFrB|(1HgJg~ zHSSt&CH|4qg{hCD&%@7wiTl9>t2MU8G4HSc61jf=!Z8-7OZJo5Z_RK}@ZERS-lI+{ zVDgvy`<-gILmXH`9(0o}&n>FVdQ&MBb@02NJ6 AGynhq diff --git a/src/main/java/me/unurled/raxen/Raxen.java b/src/main/java/me/unurled/raxen/Raxen.java index 1345827..f898707 100644 --- a/src/main/java/me/unurled/raxen/Raxen.java +++ b/src/main/java/me/unurled/raxen/Raxen.java @@ -18,7 +18,7 @@ import static me.unurled.raxen.utils.Utils.colorComp; public final class Raxen extends JavaPlugin { private static final String prefix = "Rx> "; - @Getter private static String version = "0.5.4"; + @Getter private static String version = "0.5.5"; private final PluginManager pm = getServer().getPluginManager(); private static Raxen plugin; diff --git a/src/main/java/me/unurled/raxen/commands/admin/EntitiyCommand.java b/src/main/java/me/unurled/raxen/commands/admin/EntitiyCommand.java new file mode 100644 index 0000000..254d5e6 --- /dev/null +++ b/src/main/java/me/unurled/raxen/commands/admin/EntitiyCommand.java @@ -0,0 +1,2 @@ +package me.unurled.raxen.commands.admin;public class EntitiyCommand { +} diff --git a/src/main/java/me/unurled/raxen/commands/admin/ItemTo64Command.java b/src/main/java/me/unurled/raxen/commands/admin/ItemTo64Command.java new file mode 100644 index 0000000..0476e9c --- /dev/null +++ b/src/main/java/me/unurled/raxen/commands/admin/ItemTo64Command.java @@ -0,0 +1,2 @@ +package me.unurled.raxen.commands.admin;public class ItemTo64 { +} diff --git a/src/main/java/me/unurled/raxen/commands/admin/SpawnEntity.java b/src/main/java/me/unurled/raxen/commands/admin/SpawnEntity.java index ea4a05a..2e6917b 100644 --- a/src/main/java/me/unurled/raxen/commands/admin/SpawnEntity.java +++ b/src/main/java/me/unurled/raxen/commands/admin/SpawnEntity.java @@ -2,19 +2,27 @@ package me.unurled.raxen.commands.admin; import me.unurled.raxen.Raxen; import me.unurled.raxen.components.entity.other.EntityNamespacedKey; +import org.bukkit.Bukkit; +import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; +import org.bukkit.inventory.EntityEquipment; +import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import static me.unurled.raxen.components.entity.other.EntityUtils.setNameSpacedKeys; +import static me.unurled.raxen.utils.Items.itemFrom64; import static me.unurled.raxen.utils.Utils.*; public class SpawnEntity implements TabExecutor { @@ -30,23 +38,99 @@ public class SpawnEntity implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (!(sender instanceof Player)) { - log(colorString("Console can't execute this command!")); - return false; + log(colorTextComp("Console can't execute this command!")); + try { // /entityspawn ZOMBIE "&cHello folks" x:0 y:0 z:0 level health defense speed strength itemStackBinary64: helmet, chestplate, leggings, boots, main-hand, off-hand + if (validateArgs(args, 16)) { + args = setNullInArgs(args); + } else { + log(colorTextComp("Please use null if you don't want some parameters in the command.")); + log(colorTextComp("Follow this command: /entityspawn TYPE \"name\" x y z level health defense speed strength " + + "helmet(itemStackBinary64) chestplate(itemStackBinary64) leggings(itemStackBinary64) boots(itemStackBinary64) main-hand(itemStackBinary64) off-hand(itemStackBinary64)")); + return false; + } + + EntityType types = EntityType.valueOf(args[0]); + Location loc = new Location(Bukkit.getWorld("world"), Double.parseDouble(args[2]), Double.parseDouble(args[3]), Double.parseDouble(args[4])); + Entity e = loc.getWorld().spawnEntity(loc, types, false); + setNameSpacedKeys(e, getStringFromArg(args), Integer.parseInt(args[6]), Integer.parseInt(args[7]),0, + Integer.parseInt(args[8]),0, Integer.parseInt(args[9]),0, Integer.parseInt(args[10]),0); + e.customName(colorTextComp(getStringFromArg(args))); + e.setCustomNameVisible(true); + if (e instanceof LivingEntity livingEntity) { +// livingEntity.getEquipment().set + ItemStack helmet = itemFrom64(args[11]); + ItemStack chestplate = itemFrom64(args[12]); + ItemStack leggins = itemFrom64(args[13]); + ItemStack boots = itemFrom64(args[14]); + ItemStack mainhand = itemFrom64(args[15]); + ItemStack offhand = itemFrom64(args[14]); + EntityEquipment equip = livingEntity.getEquipment(); + equip.setHelmet(helmet); + equip.setChestplate(chestplate); + equip.setLeggings(leggins); + equip.setBoots(boots); + equip.setItemInMainHand(mainhand); + equip.setItemInOffHand(offhand); + } + + System.out.println(e.getName()); + } catch (IllegalArgumentException e) { + error("Something happened near the SpawnEntity command."); + throw new RuntimeException(e); + } catch (IOException e) { + error("Could not deserialize item from the command EntitySpawn (command launched by " + sender.getName() + ")"); + throw new RuntimeException(e); + } + } + for (String arg : args) { + log(arg); } Player player = (Player) sender; if (!player.hasPermission("raxen.entityspawn.cmd")) { player.sendMessage(noPerms()); return false; } - //example command : /entityspawn ZOMBIE "&cHello folks" 50 200 - try { - EntityType types = EntityType.valueOf(args[0]); - Entity e = player.getWorld().spawnEntity(player.getLocation(), types, false); - setNameSpacedKeys(e, "Name", 100, 100,0,50,0,100,0,100,0); - e.customName(colorTextComp(args[1])); - e.setCustomNameVisible(true); - } catch (IllegalArgumentException e) { + try { // /entityspawn ZOMBIE "&cHello folks" x:0 y:0 z:0 level health defense speed strength itemStackBinary64: helmet, chestplate, leggings, boots, main-hand, off-hand + if (validateArgs(args, 16)) { + args = setNullInArgs(args); + } else { + log(colorTextComp("Please use null if you don't want some parameters in the command.")); + log(colorTextComp("Follow this command: /entityspawn TYPE \"name\" x y z level health defense speed strength " + + "helmet(itemStackBinary64) chestplate(itemStackBinary64) leggings(itemStackBinary64) boots(itemStackBinary64) main-hand(itemStackBinary64) off-hand(itemStackBinary64)")); + return false; + } + EntityType types = EntityType.valueOf(args[0]); + Location loc = new Location(Bukkit.getWorld("world"), Double.parseDouble(args[2]), Double.parseDouble(args[3]), Double.parseDouble(args[4])); + Entity e = loc.getWorld().spawnEntity(loc, types, false); + setNameSpacedKeys(e, getStringFromArg(args), Integer.parseInt(args[6]), Integer.parseInt(args[7]),0, + Integer.parseInt(args[8]),0, Integer.parseInt(args[9]),0, Integer.parseInt(args[10]),0); + e.customName(colorTextComp(getStringFromArg(args))); + e.setCustomNameVisible(true); + if (e instanceof LivingEntity livingEntity) { +// livingEntity.getEquipment().set + ItemStack helmet = itemFrom64(args[11]); + ItemStack chestplate = itemFrom64(args[12]); + ItemStack leggins = itemFrom64(args[13]); + ItemStack boots = itemFrom64(args[14]); + ItemStack mainhand = itemFrom64(args[15]); + ItemStack offhand = itemFrom64(args[14]); + EntityEquipment equip = livingEntity.getEquipment(); + equip.setHelmet(helmet); + equip.setChestplate(chestplate); + equip.setLeggings(leggins); + equip.setBoots(boots); + equip.setItemInMainHand(mainhand); + equip.setItemInOffHand(offhand); + } + + System.out.println(e.getName()); + } catch (IllegalArgumentException e) { + error("Something happened near the SpawnEntity command."); + throw new RuntimeException(e); + } catch (IOException e) { + error("Could not deserialize item from the command EntitySpawn (command launched by " + sender.getName() + ")"); + throw new RuntimeException(e); } return false; diff --git a/src/main/java/me/unurled/raxen/components/entity/player/Scoreboard.java b/src/main/java/me/unurled/raxen/components/entity/player/Scoreboard.java index 7c196d6..5aee096 100644 --- a/src/main/java/me/unurled/raxen/components/entity/player/Scoreboard.java +++ b/src/main/java/me/unurled/raxen/components/entity/player/Scoreboard.java @@ -4,10 +4,7 @@ import me.unurled.raxen.Raxen; import me.unurled.raxen.utils.libs.Vault; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Score; -import org.bukkit.scoreboard.ScoreboardManager; +import org.bukkit.scoreboard.*; import static me.unurled.raxen.utils.Utils.*; @@ -24,17 +21,17 @@ public class Scoreboard { public void createScorebord(Player player) { ScoreboardManager manager = Bukkit.getScoreboardManager(); org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard(); - Objective obj = board.registerNewObjective("Raxen","dummy", colorTextComp("Elixium")); + Objective obj = board.registerNewObjective("Raxen", "dummy", colorTextComp("Elixium")); obj.setDisplaySlot(DisplaySlot.SIDEBAR); - Score score = obj.getScore(colorString("-------------")); + Score score = obj.getScore(textCompToString(colorTextComp("-------------"))); score.setScore(4); - Score score1 = obj.getScore(colorString("Name:" + player.getName())); + Score score1 = obj.getScore(textCompToString(colorTextComp("Name:" + player.getName()))); score1.setScore(3); - Score score2 = obj.getScore(colorString("Location")); + Score score2 = obj.getScore(textCompToString(colorTextComp("Location"))); score2.setScore(2); - Score score3 = obj.getScore(colorString("Coins: " + vault.getBalanceString(player))); + Score score3 = obj.getScore(textCompToString(colorTextComp("Coins: " + vault.getBalanceString(player)))); score3.setScore(1); - Score score4 = obj.getScore(colorString("unurled.me")); + Score score4 = obj.getScore(textCompToString(colorTextComp("unurled.me"))); score4.setScore(0); player.setScoreboard(board); } @@ -50,7 +47,8 @@ public class Scoreboard { } } player.getScoreboard().resetScores("Coins"); - Score score = objective.getScore(colorString("Coins: " + vault.getBalanceString(player))); + assert objective != null; + Score score = objective.getScore(textCompToString(colorTextComp("Coins: " + vault.getBalanceString(player)))); score.setScore(1); } } diff --git a/src/main/java/me/unurled/raxen/listener/entity/DamageEntity.java b/src/main/java/me/unurled/raxen/listener/entity/DamageEntity.java index 53b930f..0daf4b1 100644 --- a/src/main/java/me/unurled/raxen/listener/entity/DamageEntity.java +++ b/src/main/java/me/unurled/raxen/listener/entity/DamageEntity.java @@ -15,6 +15,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; +import java.util.Objects; + import static me.unurled.raxen.utils.Utils.debug; public class DamageEntity implements Listener { @@ -46,10 +48,9 @@ public class DamageEntity implements Listener { Integer health = 0; Integer itemHealth = 0; Integer initDamage = 0; - PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + PlayerManager pm = ((Raxen) Objects.requireNonNull(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(); + if (e.getDamager() instanceof Player playerDamager) { strength = pm.getStrength().get(playerDamager); itemStrength = pm.getItemStrength().get(playerDamager); } else { @@ -60,8 +61,7 @@ public class DamageEntity implements Listener { } itemStrength = pm.getItemStrength().getItem((LivingEntity) entityDamager); } - if (e.getEntity() instanceof Player) { - Player playerVictim = (Player) e.getEntity(); + if (e.getEntity() instanceof Player playerVictim) { me.unurled.raxen.components.entity.player.attributes.Attributes attributes = new me.unurled.raxen.components.entity.player.attributes.Attributes(main); defense = pm.getDefense().get(playerVictim); health = pm.getHealth().get(playerVictim); @@ -93,7 +93,7 @@ public class DamageEntity implements Listener { debug(main, String.valueOf(health_with_defense)); if (damage >= health_with_defense) { debug(main, "Killed entity normally."); - e.setDamage(e.getEntity().getType().getDefaultAttributes().getAttribute(Attribute.GENERIC_MAX_HEALTH).getDefaultValue()); + e.setDamage(Objects.requireNonNull(e.getEntity().getType().getDefaultAttributes().getAttribute(Attribute.GENERIC_MAX_HEALTH)).getDefaultValue()); } else { debug(main, "Applying damage to entity."); if (defense == 0) { @@ -101,8 +101,7 @@ public class DamageEntity implements Listener { } else { health = health_with_defense - health - damage; } - if (e.getEntity() instanceof Player) { - Player playerVictim = (Player) e.getEntity(); + if (e.getEntity() instanceof Player playerVictim) { me.unurled.raxen.components.entity.player.attributes.Attributes attributes = new me.unurled.raxen.components.entity.player.attributes.Attributes(main); pm.getHealth().set(playerVictim, health); playerVictim.setHealth(health.doubleValue()/5); diff --git a/src/main/java/me/unurled/raxen/listener/player/InteractEvent.java b/src/main/java/me/unurled/raxen/listener/player/InteractEvent.java new file mode 100644 index 0000000..2512f67 --- /dev/null +++ b/src/main/java/me/unurled/raxen/listener/player/InteractEvent.java @@ -0,0 +1,18 @@ +package me.unurled.raxen.listener.player; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; + +public class InteractEvent implements Listener { + @EventHandler + public void PlayerInteractEvent(PlayerInteractEvent e) { +// Player p = e.getPlayer(); +// if (e.hasItem()) { +// ItemStack i = e.getItem(); +// } + } +} diff --git a/src/main/java/me/unurled/raxen/listener/player/RespawnEvent.java b/src/main/java/me/unurled/raxen/listener/player/RespawnEvent.java new file mode 100644 index 0000000..78c807e --- /dev/null +++ b/src/main/java/me/unurled/raxen/listener/player/RespawnEvent.java @@ -0,0 +1,21 @@ +package me.unurled.raxen.listener.player; + +import me.unurled.raxen.Raxen; +import me.unurled.raxen.manager.entity.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerRespawnEvent; + +import static me.unurled.raxen.utils.Utils.msgPlayer; + +public class RespawnEvent implements Listener { + @EventHandler + public void PlayerRespawnEvent(PlayerRespawnEvent e) { + Player p = e.getPlayer(); + PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager(); + pm.getHealth().set(p, pm.getMaxHealth().get(p)); + msgPlayer(p, "You have been killed. You lost something deep in you..."); + } +} diff --git a/src/main/java/me/unurled/raxen/manager/entity/PlayerManager.java b/src/main/java/me/unurled/raxen/manager/entity/PlayerManager.java index d082906..d792d8a 100644 --- a/src/main/java/me/unurled/raxen/manager/entity/PlayerManager.java +++ b/src/main/java/me/unurled/raxen/manager/entity/PlayerManager.java @@ -15,6 +15,8 @@ import org.bukkit.scheduler.BukkitTask; import java.util.HashMap; import java.util.UUID; +import static me.unurled.raxen.utils.Utils.*; + public class PlayerManager { private Raxen main; @@ -61,9 +63,11 @@ public class PlayerManager { BukkitTask task = new BukkitRunnable() { @Override public void run() { - player.sendActionBar(Component.text(pm.getHealth().get(player) + "/" + pm.getMaxHealth().get(player) + "❤ " + pm.getMana().get(player) + "/" + pm.getMaxMana().get(player))); + player.sendActionBar(colorComp("" + pm.getHealth().get(player) + "/" + + pm.getMaxHealth().get(player) + "❤ " + pm.getMana().get(player) + "/" + + pm.getMaxMana().get(player) + "")); } - }.runTaskTimer(main, 0L, 20L); + }.runTaskTimerAsynchronously(main, 10, 20); if(actionBar.containsKey(player.getUniqueId())) { actionBar.replace(player.getUniqueId(), task); } else { @@ -80,6 +84,8 @@ public class PlayerManager { BukkitTask task = actionBar.get(player.getUniqueId()); task.cancel(); actionBar.remove(player.getUniqueId()); + } else { + debug(colorTextComp("Player " + player.getName() + " didn't have any Action Bar" + player.getUniqueId().toString() + "")); } } diff --git a/src/main/java/me/unurled/raxen/manager/server/CommandManager.java b/src/main/java/me/unurled/raxen/manager/server/CommandManager.java index 43cca01..d58b9c9 100644 --- a/src/main/java/me/unurled/raxen/manager/server/CommandManager.java +++ b/src/main/java/me/unurled/raxen/manager/server/CommandManager.java @@ -22,20 +22,24 @@ public class CommandManager { private SkillsCommand skillsCommand; private RaxenCommand raxenCommand; private SpawnEntity entityspawn; + private EntitiyCommand entitiyCommand; private ClassCommand classCommand; private CustomModelDataCommand customModelDataCommand; private MainGuiCommand mainGuiCommand; + private ItemTo64Command itemTo64Command; public CommandManager(Raxen main) { this.main = main; this.itemListCommand = new ItemListCommand(this.main); this.nbtCommand = new NbtCommand(this.main); this.entityspawn = new SpawnEntity(this.main); + this.entitiyCommand = new EntitiyCommand(); this.classCommand = new ClassCommand(this.main); - this.skillsCommand = new SkillsCommand(main); - this.raxenCommand = new RaxenCommand(main); + this.skillsCommand = new SkillsCommand(this.main); + this.raxenCommand = new RaxenCommand(this.main); this.customModelDataCommand = new CustomModelDataCommand(); - this.mainGuiCommand = new MainGuiCommand(main); + this.mainGuiCommand = new MainGuiCommand(this.main); + this.itemTo64Command = new ItemTo64Command(); } /** @@ -75,6 +79,8 @@ public class CommandManager { main.getCommand("main_gui").setTabCompleter(mainGuiCommand); main.getCommand("main_gui").setExecutor(mainGuiCommand); - } + main.getCommand("itemto64").setTabCompleter(itemTo64Command); + main.getCommand("itemto64").setExecutor(itemTo64Command); + } } diff --git a/src/main/java/me/unurled/raxen/manager/server/ResourcePackManager.java b/src/main/java/me/unurled/raxen/manager/server/ResourcePackManager.java index 169f190..2e9b497 100644 --- a/src/main/java/me/unurled/raxen/manager/server/ResourcePackManager.java +++ b/src/main/java/me/unurled/raxen/manager/server/ResourcePackManager.java @@ -28,7 +28,7 @@ public class ResourcePackManager { } /** - * Method to enable the ressourcpack + * Method to enable the ressourcepack */ private void enable() { if(useRP) { diff --git a/src/main/java/me/unurled/raxen/utils/Items.java b/src/main/java/me/unurled/raxen/utils/Items.java index 753bb19..5220c22 100644 --- a/src/main/java/me/unurled/raxen/utils/Items.java +++ b/src/main/java/me/unurled/raxen/utils/Items.java @@ -393,7 +393,7 @@ public class Items { * @return a string * @throws IllegalStateException stream errors */ - private static @NotNull String itemTo64(ItemStack stack) throws IllegalStateException { + public static @NotNull String itemTo64(ItemStack stack) throws IllegalStateException { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream); @@ -414,7 +414,10 @@ public class Items { * @return itemstack * @throws IOException stream error */ - private static ItemStack itemFrom64(String data) throws IOException { + public static ItemStack itemFrom64(String data) throws IOException { + if (data != null) { + return new ItemStack(Material.AIR); + } try { ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream); diff --git a/src/main/java/me/unurled/raxen/utils/Utils.java b/src/main/java/me/unurled/raxen/utils/Utils.java index e2492dd..cc95da3 100644 --- a/src/main/java/me/unurled/raxen/utils/Utils.java +++ b/src/main/java/me/unurled/raxen/utils/Utils.java @@ -112,7 +112,7 @@ public class Utils { /** * Strips all color from a string. - * @param string the string that want's to be decolored. + * @param string the string that wants to be decolored. * @return a decolored string */ public static String decolor(String string) { @@ -163,6 +163,21 @@ public class Utils { } } + /** + * debug output to console if debug is set to true in config + * @param comps output to console + */ + public static void debug(TextComponent... comps) { + Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); + assert main != null; + FileConfiguration config = main.getConfig(); + if(config.getBoolean("debug")) { + for(TextComponent comp : comps) { + main.getLogger().info(textCompToString(comp)); + } + } + } + /** * Log the strings to the console * @param main a main instance running @@ -366,4 +381,62 @@ public class Utils { } return true; } + + /** + * get a string from args which contains "" + * @param args a string list + * @return a string + */ + public static String getStringFromArg(String[] args) { + String result = ""; + boolean getFColon = false; + boolean getLColon = false; + for (String arg : args) { + if (arg.contains("\"")) { + if (!getFColon) { + getFColon = true; + } else if (getFColon && !getLColon) { + result += arg.replace("\"", ""); + return result; + } else if (getFColon) { + result += arg.replace("\"", ""); + } + } + } + return result; + } + + /** + * search if there is an args that is null or do not exist + * @param args a list of string + * @param n a number of entries a list should have + * @return a boolean if true or not + */ + public static Boolean validateArgs(String[] args, Integer n) { + for (int i = 0; i < n ; i++) { + if (args.length < n-1) { + return false; + } else if (args[i] == null) { + return false; + } + } + return true; + } + + /** + * changes every "null" in list to the object null + * @param args a list of strings + * @return return a new list + */ + public static String[] setNullInArgs(String[] args) { + String[] newList = new String[args.length]; + for (int i = 0 ; i < args.length ; i++) { + if (args[i].equalsIgnoreCase("null")) { + newList[i] = null; + } else { + newList[i] = args[i]; + } + } + return newList; + } } diff --git a/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java b/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java index bd75b75..d01826a 100644 --- a/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java +++ b/src/main/java/me/unurled/raxen/utils/libs/MongoDB.java @@ -1,6 +1,7 @@ package me.unurled.raxen.utils.libs; import com.mongodb.ConnectionString; +import com.mongodb.MongoClientSettings; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; @@ -12,8 +13,7 @@ import org.bukkit.configuration.file.FileConfiguration; import java.util.Objects; -import static me.unurled.raxen.utils.Utils.colorComp; -import static me.unurled.raxen.utils.Utils.log; +import static me.unurled.raxen.utils.Utils.*; public class MongoDB { @Getter @@ -29,7 +29,7 @@ public class MongoDB { FileConfiguration config = Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("Raxen")).getConfig(); String uri = (String) config.get("url"); assert uri != null; - log("URI" + uri); + debug("URI " + uri); ConnectionString connectionString = new ConnectionString(uri); mongoClient = MongoClients.create(connectionString); mongoDatabase = mongoClient.getDatabase("Raxen"); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 703e2f5..cecaf1c 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ main: me.unurled.raxen.Raxen author: unurled api-version: 1.19 depend: [ProtocolLib, PlaceholderAPI, 'Multiverse-Core'] -softdepend: [AureliumSkills, LuckPerms] +softdepend: [LuckPerms, Essentials] commands: reloadplugin: @@ -29,6 +29,8 @@ commands: description: Open ItemList menu entityspawn: description: Spawn an custom entity + entity: + description: Spawn an custom entity class: description: player command that make them choose their class and then their stats custommodeldata: @@ -38,6 +40,8 @@ commands: description: set custom model data to item main_gui: description: not very much used, more with right click on device + itemto64: + description: transform an item to it's 64encoded byte permissions: raxen.reload.cmd: @@ -52,9 +56,13 @@ permissions: description: itemlist command permission raxen.entityspawn.cmd: description: entityspawn command permission + raxen.entity.cmd: + description: entity command permission raxen.class.cmd: description: class command permission raxen.custommodeldata.cmd: description: custom model data command permission raxen.maingui.cmd: - description: main gui command permission \ No newline at end of file + description: main gui command permission + raxen.itemto64.cmd: + description: item to 64 command permission