diff --git a/.gitignore b/.gitignore
index 02ec840..0343c2a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,4 @@
.gitignore
.classpath
.project
-.idea
+.idea/
diff --git a/pom.xml b/pom.xml
index 31ec7b3..559c098 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,10 @@
brokkonaut
https://www.iani.de/nexus/content/groups/public
+
+ viaversion-repo
+ https://repo.viaversion.com
+
@@ -52,6 +56,12 @@
provided
+ com.viaversion
+ viaversion-api
+ LATEST
+ provided
+
+
org.jetbrains
annotations
RELEASE
diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java
index b9d2971..e17f6db 100644
--- a/src/main/java/de/fanta/challenges/Challenges.java
+++ b/src/main/java/de/fanta/challenges/Challenges.java
@@ -33,7 +33,6 @@
import de.fanta.challenges.utils.VanishUtils;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import net.md_5.bungee.api.ChatColor;
-import org.apache.commons.io.FileUtils;
import org.bukkit.BanList;
import org.bukkit.Bukkit;
import org.bukkit.GameRule;
@@ -60,6 +59,8 @@
import java.util.stream.Collectors;
public class Challenges extends JavaPlugin {
+ public Boolean CavesAndCliffs;
+
public static Logger LOGGER;
private static Challenges plugin;
@@ -102,60 +103,11 @@
private boolean waitingForShutdown;
@Override
- public void onLoad() {
- LOGGER = getLogger();
-
- saveDefaultConfig();
- if (getConfig().getBoolean("World_Reset")) {
- File world = new File(Bukkit.getWorldContainer(), "world");
- File nether = new File(Bukkit.getWorldContainer(), "world_nether");
- File end = new File(Bukkit.getWorldContainer(), "world_the_end");
- File void_world = new File(Bukkit.getWorldContainer(), "VOID");
- File mlg_world = new File(Bukkit.getWorldContainer(), "mlg_challenge");
-
- File mlg_new = new File("plugins/Challenges/mlg_challenge");
- File mlg_dir = new File("mlg_challenge");
- try {
- FileUtils.deleteDirectory(world);
- FileUtils.deleteDirectory(nether);
- FileUtils.deleteDirectory(end);
- FileUtils.deleteDirectory(void_world);
- FileUtils.deleteDirectory(mlg_world);
-
- FileUtils.copyDirectory(mlg_new, mlg_dir);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- world.mkdirs();
- new File(world, "data").mkdirs();
- new File(world, "datapacks").mkdirs();
- new File(world, "playerdata").mkdirs();
- new File(world, "poi").mkdirs();
- new File(world, "region").mkdirs();
-
- new File(nether, "data").mkdirs();
- new File(nether, "datapacks").mkdirs();
- new File(nether, "playerdata").mkdirs();
- new File(nether, "poi").mkdirs();
- new File(nether, "region").mkdirs();
-
- new File(end, "data").mkdirs();
- new File(end, "datapacks").mkdirs();
- new File(end, "playerdata").mkdirs();
- new File(end, "poi").mkdirs();
- new File(end, "region").mkdirs();
- System.out.println("Welten Erfolgreich zurückgesetzte!");
- }
- }
-
- @Override
public void onEnable() {
+ LOGGER = getLogger();
plugin = this;
nmsUtils = getServer().getServicesManager().load(NMSUtils.class);
- //getCommand("gamemode").setExecutor(new GamemodeCommand());
-
this.timer = new Timer(this);
this.rndDrops = new RandomDrops();
this.bingo = new Bingo();
@@ -206,6 +158,8 @@
plugin.getSBManager().initScoreboard();
}, 1L);
+ CavesAndCliffs = getConfig().getBoolean("1-18-datapack");
+
if (getConfig().getBoolean("World_Reset")) {
File config = new File(plugin.getDataFolder(), "config.yml");
config.delete();
diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java
index 27d8c10..31b621b 100644
--- a/src/main/java/de/fanta/challenges/Timer.java
+++ b/src/main/java/de/fanta/challenges/Timer.java
@@ -62,8 +62,8 @@
p.setGameMode(GameMode.SPECTATOR);
p.sendTitle(ChatColor.DARK_RED + "ZEIT ABGELAUFEN!", ChatColor.RED + "Challenge fehgeschlagen", 10, 60, 10);
}
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.DARK_RED + " Die Zeit ist abgelaufen und die Challenge somit fehlgeschlagen!");
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + " Seed: " + ChatColor.AQUA + Bukkit.getWorlds().get(0).getSeed());
+ ChatUtil.sendBrodcastMessage(ChatColor.DARK_RED + "Die Zeit ist abgelaufen und die Challenge somit fehlgeschlagen!");
+ ChatUtil.sendBrodcastMessage("Seed: " + ChatColor.AQUA + Bukkit.getWorlds().get(0).getSeed());
} else {
for (Player p : Bukkit.getOnlinePlayers()) {
@@ -121,7 +121,7 @@
public boolean triggerMLG() {
if (plugin.getConfig().getBoolean("mlg.enabled") && !mlgActive && Bukkit.getOnlinePlayers().size() >= 1) {
mlgActive = true;
- Bukkit.broadcastMessage(Challenges.PREFIX + " §bZeit für einen MLG! §6Viel Glück!");
+ ChatUtil.sendBrodcastMessage("Zeit für einen MLG! Viel Glück!");
timeSinceMLG = 0;
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.getGameMode() == GameMode.SURVIVAL && !p.isDead()) {
diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
index 31d4cb3..60d745c 100644
--- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
+++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
@@ -4,6 +4,8 @@
import de.fanta.challenges.commands.challenges.ChallengesCommand;
import de.fanta.challenges.commands.challenges.ChallengesHelpCommand;
import de.fanta.challenges.commands.challenges.ChallengesKickCommand;
+import de.fanta.challenges.commands.challenges.ChallengesMemoryCommand;
+import de.fanta.challenges.commands.challenges.ChallengesPingCommand;
import de.fanta.challenges.commands.challenges.ChallengesSaveCommand;
import de.fanta.challenges.commands.coords.CoordsCommand;
import de.fanta.challenges.commands.coords.CoordsDeleteCommand;
@@ -48,6 +50,8 @@
challengesRouter.addCommandMapping(new ChallengesHelpCommand(plugin), "help");
challengesRouter.addCommandMapping(new ChallengesKickCommand(plugin), "kick");
challengesRouter.addCommandMapping(new ChallengesSaveCommand(plugin), "save");
+ challengesRouter.addCommandMapping(new ChallengesPingCommand(), "ping");
+ challengesRouter.addCommandMapping(new ChallengesMemoryCommand(plugin), "mem");
CommandRouter resetRouter = new CommandRouter(plugin.getCommand("reset"));
resetRouter.addCommandMapping(new ResetCommand(plugin));
diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java
new file mode 100644
index 0000000..44e8bd3
--- /dev/null
+++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java
@@ -0,0 +1,35 @@
+package de.fanta.challenges.commands.challenges;
+
+import de.fanta.challenges.Challenges;
+import de.fanta.challenges.utils.ChatUtil;
+import de.iani.cubesideutils.bukkit.commands.SubCommand;
+import de.iani.cubesideutils.commands.ArgsParser;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class ChallengesMemoryCommand extends SubCommand {
+
+ private final Challenges plugin;
+
+ private static final long MB = 1024L * 1024L;
+
+ public ChallengesMemoryCommand(Challenges plugin) {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
+ if (sender.hasPermission("Challenges.editor.override")) {
+ ChatUtil.sendNormalMessage(sender, "Speichernutzung: " + KBToMB(Runtime.getRuntime().totalMemory()) + " MB / " + KBToMB(Runtime.getRuntime().maxMemory()) + " MB (Freier Speicher: " + KBToMB(Runtime.getRuntime().freeMemory()) + "MB)");
+ } else {
+ ChatUtil.sendErrorMessage(sender, "Keine Rechte!");
+ }
+ return true;
+ }
+
+ public static long KBToMB(long KB)
+ {
+ return KB / MB;
+ }
+}
diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java
new file mode 100644
index 0000000..02e34d3
--- /dev/null
+++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java
@@ -0,0 +1,37 @@
+package de.fanta.challenges.commands.challenges;
+
+import de.fanta.challenges.utils.ChatUtil;
+import de.iani.cubesideutils.bukkit.commands.SubCommand;
+import de.iani.cubesideutils.commands.ArgsParser;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class ChallengesPingCommand extends SubCommand {
+
+ public ChallengesPingCommand() {
+ }
+
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
+ if (!(sender instanceof Player p)) {
+ ChatUtil.sendErrorMessage(sender, "You are not a Player :>");
+ return true;
+ }
+
+ if (args.hasNext()) {
+ String playerName = args.getNext();
+ Player player = Bukkit.getPlayer(playerName);
+
+ if (player == null) {
+ ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!");
+ return true;
+ }
+ ChatUtil.sendNormalMessage(sender, "Ping von " + player.getName() + ": " + player.getPing());
+ } else {
+ ChatUtil.sendNormalMessage(sender, "Ping: " + ((Player) sender).getPing());
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java
index a2c3d73..191d67b 100644
--- a/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java
@@ -27,7 +27,7 @@
int x = player.getLocation().getBlockX();
int y = player.getLocation().getBlockY();
int z = player.getLocation().getBlockZ();
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + sender.getName() + ChatUtil.GREEN + " ist bei " + ChatUtil.ORANGE + x + "/" + y + "/" + z + " " + ChatUtil.ORANGE + w);
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + sender.getName() + ChatUtil.GREEN + " ist bei " + ChatUtil.ORANGE + x + "/" + y + "/" + z + " " + ChatUtil.ORANGE + w);
return true;
}
}
diff --git a/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java b/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java
index 1cfc619..ba64bf7 100644
--- a/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java
@@ -34,7 +34,7 @@
return true;
} else if (!plugin.isEditor(player)){
plugin.setCurrentEditor(player);
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.GREEN + player.getName() + " wurde von " + sender.getName() + " zum Editor ernannt");
+ ChatUtil.sendBrodcastMessage(player.getName() + " wurde von " + sender.getName() + " zum Editor ernannt");
ChatUtil.sendNormalMessage(player, "Du bist jetzt Editor und kannst diese Lobby bearbeiten. (/challenges)");
return true;
} else {
diff --git a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java
index 15dda89..0c3de31 100644
--- a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java
@@ -9,12 +9,16 @@
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
+import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
import java.util.Properties;
public class ResetConfirmCommand extends SubCommand {
@@ -28,6 +32,17 @@
@Override
public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
if ((sender instanceof Player && plugin.isEditor((Player) sender)) || sender.hasPermission("Challenges.editor.override")) {
+ String datapack = "";
+ if (args.hasNext()) {
+ datapack = args.getNext();
+ if (datapack.equals("true")) {
+ plugin.getConfig().set("1-18-datapack", true);
+ ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
+ String consolen_command = "/datapack enable \"file/CavesAndCliffsPreview.zip\"";
+ Bukkit.dispatchCommand(console, consolen_command);
+ }
+ }
+
try {
BufferedReader in = new BufferedReader(new FileReader("server.properties"));
Properties props = new Properties();
@@ -72,4 +87,14 @@
}
return true;
}
+
+ @Override
+ public Collection onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) {
+ args.next();
+ if (!args.hasNext()) {
+ return List.of("true", "false");
+ }
+
+ return Collections.emptyList();
+ }
}
diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java
index c5a0d92..3809fc3 100644
--- a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java
@@ -26,7 +26,7 @@
}
if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
plugin.getTimer().setTime(0);
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.GREEN + " Der Timer wurde zurückgesetzt!");
+ ChatUtil.sendBrodcastMessage("Der Timer wurde zurückgesetzt!");
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!");
return true;
diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java
index f145059..e182b32 100644
--- a/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java
@@ -26,9 +26,9 @@
if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
plugin.getTimer().reverseTimer();
if (plugin.getTimer().isReverse()) {
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.BLUE + " Der Timer läuft nun rückwärts!");
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + "Der Timer läuft nun rückwärts!");
} else {
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.GREEN + " Der Timer läuft nun vorwärts!");
+ ChatUtil.sendBrodcastMessage("Der Timer läuft nun vorwärts!");
}
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!");
diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java
index 88c6b2e..6256044 100644
--- a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java
@@ -29,7 +29,7 @@
if (time >= 0) {
if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
plugin.getTimer().setTime(time);
- Bukkit.broadcastMessage(Challenges.PREFIX + " §bDer Timer wurde auf " + plugin.getTimer().formatTime(ChatColor.GREEN) + " §bgesetzt!");
+ ChatUtil.sendBrodcastMessage("Der Timer wurde auf " + plugin.getTimer().formatTime(ChatColor.GREEN) + " gesetzt!");
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!");
return true;
diff --git a/src/main/java/de/fanta/challenges/guis/BackpackGui.java b/src/main/java/de/fanta/challenges/guis/BackpackGui.java
index e7e030b..02b6084 100644
--- a/src/main/java/de/fanta/challenges/guis/BackpackGui.java
+++ b/src/main/java/de/fanta/challenges/guis/BackpackGui.java
@@ -1,6 +1,7 @@
package de.fanta.challenges.guis;
import de.fanta.challenges.Challenges;
+import de.fanta.challenges.utils.ChatUtil;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -42,7 +43,7 @@
ItemStack item = backpack.getItem(i);
if (item != null && item.getType() != Material.AIR) {
if (!newBackpack.addItem(item).isEmpty()) {
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.DARK_RED + " Backpack kann nicht verkleinert werden. Zu wenig Platz!"); // TODO COLOR
+ ChatUtil.sendBrodcastMessage(ChatColor.DARK_RED + "Backpack kann nicht verkleinert werden. Zu wenig Platz!");
return;
}
}
diff --git a/src/main/java/de/fanta/challenges/listeners/DamageListener.java b/src/main/java/de/fanta/challenges/listeners/DamageListener.java
index 5191657..7d3671d 100644
--- a/src/main/java/de/fanta/challenges/listeners/DamageListener.java
+++ b/src/main/java/de/fanta/challenges/listeners/DamageListener.java
@@ -41,19 +41,19 @@
if (e.getFinalDamage() > 0) {
if (e.getCause() == DamageCause.FALL) {
if (plugin.getConfig().getBoolean("deathonfall")) {
- if (plugin.getConfig().getBoolean("dmginchat")) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
+ if (plugin.getConfig().getBoolean("dmginchat")) { ;
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
}
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> p.setHealth(0), 1);
} else if (plugin.getConfig().getBoolean("dmginchat")) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
}
} else if (e.getCause() == DamageCause.CUSTOM) {
if (!p.isSneaking() && (plugin.getConfig().getBoolean("dmginchat"))) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + plugin.getConfig().getDouble("sneakdmg") + ChatUtil.GREEN + " HP Schaden genommen durch" + ChatUtil.ORANGE + " Server");
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + plugin.getConfig().getDouble("sneakdmg") + ChatUtil.GREEN + " HP Schaden genommen durch" + ChatUtil.ORANGE + " Server");
}
} else if (plugin.getConfig().getBoolean("dmginchat")) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause());
}
if (plugin.getConfig().getBoolean("sharedmg")) {
for (Player pp : Bukkit.getOnlinePlayers()) {
@@ -95,7 +95,7 @@
if ((e.getEntity() instanceof Player p) && (e.getFinalDamage() > 0) && (plugin.getTimer().isRunning())) {
String dmg = new DecimalFormat("#.##").format(e.getFinalDamage());
if ((e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) && plugin.getConfig().getBoolean("dmginchat")) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getDamager().getName());
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getDamager().getName());
}
}
}
diff --git a/src/main/java/de/fanta/challenges/listeners/DeathListener.java b/src/main/java/de/fanta/challenges/listeners/DeathListener.java
index c421eba..7172a48 100644
--- a/src/main/java/de/fanta/challenges/listeners/DeathListener.java
+++ b/src/main/java/de/fanta/challenges/listeners/DeathListener.java
@@ -59,17 +59,17 @@
if (Objects.equals(plugin.getConfig().getString("event.type"), "nix")) {
if ((e.getEntity() instanceof EnderDragon && plugin.getConfig().getBoolean("target")) || (e.getEntity() instanceof Wither && !plugin.getConfig().getBoolean("target"))) {
plugin.getTimer().stopTimer();
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt.");
- Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Benötigte Zeit: §2§l" + plugin.getTimer().formatTime(ChatColor.GREEN) + "§7!");
- Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed());
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX);
- Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+ ChatUtil.sendBrodcastMessage("" + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage(" §8>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt.");
+ ChatUtil.sendBrodcastMessage(" §8>> §7Benötigte Zeit: §2§l" + plugin.getTimer().formatTime(ChatColor.GREEN) + "§7!");
+ ChatUtil.sendBrodcastMessage(" §8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed());
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage("");
+ ChatUtil.sendBrodcastMessage("" + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
}
}
diff --git a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java
index be13ce2..6d04640 100644
--- a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java
+++ b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java
@@ -1,13 +1,19 @@
package de.fanta.challenges.listeners;
+import com.viaversion.viaversion.api.Via;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.events.PlayerCountChangedEvent;
import de.fanta.challenges.events.ServerStatusChangedEvent;
import de.fanta.challenges.utils.ChatUtil;
+import de.speedy64.globalport.GlobalApi;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
+import org.bukkit.GameRule;
import org.bukkit.Location;
+import org.bukkit.Server;
+import org.bukkit.World;
import org.bukkit.entity.Player;
+import org.bukkit.entity.Spider;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
@@ -24,6 +30,19 @@
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
+
+ //Wenn CavesandCliffs Aktiv dürfen nur Spieler ab 1.17 Joinen
+ System.out.println(Via.getAPI().getPlayerVersion(e.getPlayer().getUniqueId()));
+ System.out.println(plugin.CavesAndCliffs);
+
+ if (plugin.CavesAndCliffs) {
+ if (Via.getAPI().getPlayerVersion(p.getUniqueId()) < 755) {
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
+ p.kickPlayer("Du musst mit Minecraft 1.17 Joinen");
+ }, 3L);
+ }
+ }
+
if (resetTaskId > 0) {
Bukkit.getScheduler().cancelTask(resetTaskId);
resetTaskId = -1;
@@ -36,8 +55,7 @@
ChatUtil.sendNormalMessage(p, "Du bist im Vanish, niemand weiß, dass du in der Lobby bist.");
return;
}
- Bukkit.broadcastMessage(
- Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers()) + "/" + Bukkit.getServer().getMaxPlayers() + "]");
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers()) + "/" + Bukkit.getServer().getMaxPlayers() + "]");
e.setJoinMessage(null);
if (plugin.getConfig().getBoolean("sharedmg")) {
int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size());
@@ -81,7 +99,8 @@
}
if (!plugin.getVanish().isVanish(player)) {
- e.setQuitMessage(Challenges.PREFIX + " " + ChatColor.of("#3D98DC") + player.getName() + ChatColor.of("#C45B3D") + " hat die Lobby verlassen! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers() - 1) + "/" + Bukkit.getServer().getMaxPlayers() + "]");
+ e.setQuitMessage(null);
+ ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + player.getName() + ChatColor.of("#C45B3D") + " hat die Lobby verlassen! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers() - 1) + "/" + Bukkit.getServer().getMaxPlayers() + "]");
this.plugin.getSBManager().removeScoreboard(player);
if (Bukkit.getServer().getOnlinePlayers().size() - 1 == 0) {
diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java
index 5ce7940..f6c36d9 100644
--- a/src/main/java/de/fanta/challenges/utils/ChatUtil.java
+++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java
@@ -5,6 +5,7 @@
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
public class ChatUtil {
@@ -33,7 +34,9 @@
sendMessage(sender, RED.toString(), messageParts);
}
- public static void sendBrodcastMessage(String message) {
- Bukkit.broadcastMessage(Challenges.PREFIX + " " + GREEN + message);
+ public static void sendBrodcastMessage(Object... messageParts) {
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ sendMessage(player, GREEN.toString(), messageParts);
+ }
}
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 9c3e79e..ecffdd6 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -29,6 +29,7 @@
Saved_Locations: {}
World_Name: world
World_Reset: false
+1-18-datapack: false
event:
enabled: false
type: nix