diff --git a/betterhoppers/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/betterhoppers/.gradle/buildOutputCleanup/buildOutputCleanup.lock index db23e12..4e71169 100644 Binary files a/betterhoppers/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/betterhoppers/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/betterhoppers/.gradle/buildOutputCleanup/cache.properties b/betterhoppers/.gradle/buildOutputCleanup/cache.properties index 44f27f3..7ff97e6 100644 --- a/betterhoppers/.gradle/buildOutputCleanup/cache.properties +++ b/betterhoppers/.gradle/buildOutputCleanup/cache.properties @@ -1,2 +1,2 @@ -#Wed Jul 02 13:29:37 CEST 2025 +#Wed Jul 02 13:32:02 CEST 2025 gradle.version=8.14.2 diff --git a/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 8f79d34..3118f81 100644 Binary files a/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/environmentex/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log b/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log index a451174..60c98f3 100644 --- a/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log +++ b/environmentex/.gradle/caches/paperweight/taskCache/reobfJar.log @@ -1,2 +1,2 @@ Command: /opt/homebrew/Cellar/openjdk/23.0.2/libexec/openjdk.jdk/Contents/Home/bin/java -Xmx1G -classpath /Users/janik/.gradle/caches/modules-2/files-2.1/net.fabricmc/tiny-remapper/0.11.1/6c1f29838864ba8f495855edfc8ef17706fedb5d/tiny-remapper-0.11.1-fat.jar net.fabricmc.tinyremapper.Main /Users/janik/Desktop/MCPlugins/environmentex-1.0-SNAPSHOT.jar /Users/janik/Desktop/MCPlugins/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar /Users/janik/Desktop/MCPlugins/environmentex/.gradle/caches/paperweight/taskCache/reobfMappings.tiny mojang spigot /Users/janik/Desktop/MCPlugins/environmentex/.gradle/caches/paperweight/taskCache/mappedServerJar.jar --threads=1 -[INFO] Finished after 3356,66 ms. +[INFO] Finished after 944,74 ms. diff --git a/environmentex/.gradle/file-system.probe b/environmentex/.gradle/file-system.probe index 55fb95a..a2b73c4 100644 Binary files a/environmentex/.gradle/file-system.probe and b/environmentex/.gradle/file-system.probe differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExCommands.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExCommands.class index 029f90b..473bd9b 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExCommands.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExCommands.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$1.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$1.class index 36caaef..13dd892 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$1.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$1.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$3.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$3.class index 9c3cab6..a49a468 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$3.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$3.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$4.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$4.class deleted file mode 100644 index fdb3488..0000000 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$4.class and /dev/null differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$5.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$5.class deleted file mode 100644 index e376f65..0000000 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$5.class and /dev/null differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$6.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$6.class deleted file mode 100644 index 9f29031..0000000 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$6.class and /dev/null differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$7.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$7.class deleted file mode 100644 index 62cff17..0000000 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners$7.class and /dev/null differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners.class b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners.class index b4d85e1..ac03358 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/EnvironmentExListeners.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/PinFeature.class b/environmentex/build/classes/java/main/de/hessj/environmentex/PinFeature.class index f302a8d..582b550 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/PinFeature.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/PinFeature.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener$1.class b/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener$1.class index 8e04b5f..9668139 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener$1.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener$1.class differ diff --git a/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener.class b/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener.class index 3c4acdd..f2d75aa 100644 Binary files a/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener.class and b/environmentex/build/classes/java/main/de/hessj/environmentex/VillagerListener.class differ diff --git a/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar b/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar index e729b92..b334b41 100644 Binary files a/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar and b/environmentex/build/libs/environmentex-1.0-SNAPSHOT-reobf.jar differ diff --git a/environmentex/build/reports/problems/problems-report.html b/environmentex/build/reports/problems/problems-report.html index f5b6fd8..2a566b6 100644 --- a/environmentex/build/reports/problems/problems-report.html +++ b/environmentex/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/environmentex/build/tmp/compileJava/previous-compilation-data.bin b/environmentex/build/tmp/compileJava/previous-compilation-data.bin index 1083a47..d8bdafe 100644 Binary files a/environmentex/build/tmp/compileJava/previous-compilation-data.bin and b/environmentex/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java index e332c09..4bce159 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java +++ b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java @@ -36,6 +36,12 @@ public class EnvironmentExCommands implements CommandExecutor, Listener { public static HashMap bossBars = new HashMap<>(); int taskId; + +public boolean isPlayerOnlineByName(String name) { + Player player = Bukkit.getPlayer(name); + return player != null && player.isOnline(); +} + @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (sender instanceof Player) { @@ -94,7 +100,7 @@ Player p = (Player) sender; if (args.length < 1) { p.sendMessage(helper.R3SMessage(Type.ERROR, - "Benutzung: /pin [name | id] | send [id | onlineplayer]")); + "Benutzung: /pin [name | id] | share [id | onlineplayer]")); return true; } @@ -102,11 +108,92 @@ Player p = (Player) sender; Map pins = playerPins.get(playerId); switch (subCommand) { - case "send": + case "share": if (args.length < 3) { - p.sendMessage(helper.R3SMessage(Type.ERROR, "Benutzung: /pin send ")); + p.sendMessage(helper.R3SMessage(Type.ERROR, "Benutzung: /pin share ")); return true; } + if(isPlayerOnlineByName(args[2].toString()) == false) { + p.sendMessage(helper.R3SMessage(Type.ERROR, "Dieser Spieler ist nicht online!")); + return true; + } + if(Bukkit.getPlayer(args[2].toString()).getUniqueId().equals(p.getUniqueId())){ + p.sendMessage(helper.R3SMessage(Type.ERROR, "Du kannst deine Pins nicht an dich selbst teilen!")); + return true; + } + try { + + + + + + + + int pinId1 = Integer.parseInt(args[1]); + String pinName1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".name"); + String locationString1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".loc"); + + if (pinName1 == null || locationString1 == null) { + p.sendMessage(helper.R3SMessage(Type.ERROR, "Kein Pin mit dieser ID gefunden.")); + return true; + } + App.main.log("PinName: " + pinName1); + App.main.log("LocationString: " + locationString1); + // Standort aus der YML auslesen + String[] locParts = locationString1.split(", "); + App.main.log("World: " + locParts[0]); + + +/* +ALSO CHECK IF PIN WITH NAME + LOC EXISTS + // **Nimmt den gesamten Text nach "/pin set" als Namen** + String pinName = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); + Location playerLocation = p.getLocation(); + + // **Kleinste verfügbare ID suchen** + int nextId = 1; + ConfigurationSection playerSection = PinFeature.pinConfig + .getConfigurationSection(playerId.toString()); + if (playerSection != null) { + Set existingIds = playerSection.getKeys(false).stream() + .map(Integer::parseInt) + .collect(Collectors.toSet()); + + while (existingIds.contains(nextId)) { + nextId++; + } + } + + pins.put(pinName, playerLocation); + String locationString = playerLocation.getWorld().getName() + ", " + + playerLocation.getBlockX() + ", " + + playerLocation.getBlockY() + ", " + + playerLocation.getBlockZ(); + + PinFeature.pinConfig.set(playerId + "." + nextId + ".name", pinName); + PinFeature.pinConfig.set(playerId + "." + nextId + ".loc", locationString); + savePins(); + */ + + + + + + + + + + + + + + + Bukkit.getPlayer(args[2].toString()).sendMessage(helper.R3SMessage(Type.SUCCESS, "Du hast den Pin '" + pinName1 + "' von " + p.getName() + " erhalten!")); + p.sendMessage(helper.R3SMessage(Type.SUCCESS, "Du hast den Pin '" + pinName1 + "' an " + args[2].toString() + " geteilt!")); + } catch (NumberFormatException e) { + p.sendMessage(helper.R3SMessage(Type.ERROR, "Ungültige Pin-ID.")); + } + break; case "set": diff --git a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java index c0066a8..62fffa7 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java +++ b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java @@ -179,7 +179,7 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore p.sendMessage(helper.R3SMessage(Type.OK, "Das Gewitter wird durchgeschlafen. (" + voteForYes + "x Ja, " + voteForNo + "x Nein, " - + (voteablePlayers - voteForNo - voteForYes) + "x enthalten)")); + + (voteablePlayers+1 - voteForNo - voteForYes) + "x enthalten)")); } @@ -187,7 +187,7 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore p.sendMessage(helper.R3SMessage(Type.OK, "Die Nacht wird durchgeschlafen. (" + voteForYes + "x Ja, " + voteForNo + "x Nein, " - + (voteablePlayers - voteForNo - voteForYes) + "x enthalten)")); + + (voteablePlayers+1 - voteForNo - voteForYes) + "x enthalten)")); } } @@ -209,14 +209,14 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore p.sendMessage(helper.R3SMessage(Type.ERROR, "Das Gewitter wird nicht durchgeschlafen. (" + voteForYes + "x Ja, " + voteForNo - + "x Nein, " + (voteablePlayers - voteForNo - voteForYes) + + "x Nein, " + (voteablePlayers+1 - voteForNo - voteForYes) + "x enthalten)")); } else { p.sendMessage(helper.R3SMessage(Type.ERROR, "Die Nacht wird nicht durchgeschlafen. (" + voteForYes + "x Ja, " + voteForNo - + "x Nein, " + (voteablePlayers - voteForNo - voteForYes) + + "x Nein, " + (voteablePlayers+1 - voteForNo - voteForYes) + "x enthalten)")); } if (p.isSleeping()) { @@ -744,16 +744,16 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore // e.getPlayer().openInventory(inv); e.setCancelled(true); - e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.AIR)); e.getPlayer().openInventory(hm.get(e.getPlayer())); - Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { @Override public void run() { - e.getPlayer().getInventory().setItemInOffHand(is); + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); } - }, 3L); + }, 10L);*/ } } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() @@ -772,14 +772,14 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore hm2.put(e.getPlayer(), Bukkit.createInventory(null, 18, Component.translatable("Rucksack"))); // e.getPlayer().openInventory(inv2); e.setCancelled(true); - e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.AIR)); e.getPlayer().openInventory(hm2.get(e.getPlayer())); - Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { @Override public void run() { - e.getPlayer().getInventory().setItemInOffHand(is); + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); } - }, 3L); + }, 10L);*/ } } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() .has(App.main.nsk3, PersistentDataType.STRING) @@ -798,14 +798,14 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore hm3.put(e.getPlayer(), Bukkit.createInventory(null, 27, Component.translatable("Großer Rucksack"))); // e.getPlayer().openInventory(inv3); e.setCancelled(true); - e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.AIR)); e.getPlayer().openInventory(hm3.get(e.getPlayer())); - Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { @Override public void run() { - e.getPlayer().getInventory().setItemInOffHand(is); + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); } - }, 3L); + }, 10L);*/ } } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() .has(App.main.nsk4, PersistentDataType.STRING) @@ -824,15 +824,15 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore hm4.put(e.getPlayer(), Bukkit.createInventory(null, 36, Component.translatable("Riesiger Rucksack"))); e.setCancelled(true); - e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.AIR)); e.getPlayer().openInventory(hm4.get(e.getPlayer())); // e.getPlayer().openInventory(inv4); - Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { @Override public void run() { - e.getPlayer().getInventory().setItemInOffHand(is); + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); } - }, 3L); + }, 10L);*/ } } } diff --git a/environmentex/src/main/java/de/hessj/environmentex/PinFeature.java b/environmentex/src/main/java/de/hessj/environmentex/PinFeature.java index 56e5a83..8b29504 100644 --- a/environmentex/src/main/java/de/hessj/environmentex/PinFeature.java +++ b/environmentex/src/main/java/de/hessj/environmentex/PinFeature.java @@ -32,7 +32,7 @@ public List onTabComplete(CommandSender sender, Command cmd, String labe UUID playerId = player.getUniqueId(); if (args.length == 1) { - return Arrays.asList("set", "list", "remove", "follow", "unfollow", "send"); + return Arrays.asList("set", "list", "remove", "follow", "unfollow", "share"); } if (args.length == 2) { @@ -46,7 +46,7 @@ public List onTabComplete(CommandSender sender, Command cmd, String labe return Collections.emptyList(); // Keine Argumente notwendig } - if (subCommand.equals("remove") || subCommand.equals("follow") || subCommand.equals("send") ) { + if (subCommand.equals("remove") || subCommand.equals("follow") || subCommand.equals("share") ) { ConfigurationSection playerSection = PinFeature.pinConfig.getConfigurationSection(playerId.toString()); if (playerSection != null) { return playerSection.getKeys(false).stream() diff --git a/environmentex/src/main/java/de/hessj/environmentex/VillagerListener.java b/environmentex/src/main/java/de/hessj/environmentex/VillagerListener.java index 9bb89d9..fa98eec 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/VillagerListener.java +++ b/environmentex/src/main/java/de/hessj/environmentex/VillagerListener.java @@ -40,7 +40,10 @@ public class VillagerListener implements Listener { for (Entity ent : en) { if (ent instanceof Player) { - + Player enti = (Player) ent; + if(!enti.getPlayer().displayName().toString().contains("R3STEAS")){ + return; + } if (mr.getResult().getItemMeta() instanceof EnchantmentStorageMeta) { EnchantmentStorageMeta meta = (EnchantmentStorageMeta) mr.getResult() .getItemMeta();