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();