diff --git a/pom.xml b/pom.xml
index 6da6989..ff21402 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
com.destroystokyo.paper
paper
- 1.16.4-R0.1-SNAPSHOT
+ 1.16.5-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java
index cb9d579..13b2fb8 100644
--- a/src/main/java/de/fanta/challenges/Challenges.java
+++ b/src/main/java/de/fanta/challenges/Challenges.java
@@ -2,7 +2,6 @@
import de.fanta.challenges.challenges.RandomDrops;
import de.fanta.challenges.commands.CommandRegistration;
-import de.fanta.challenges.commands.GamemodeCommand;
import de.fanta.challenges.events.PlayerCountChangedEvent;
import de.fanta.challenges.events.ServerStatusChangedEvent;
import de.fanta.challenges.events.TimerChangedEvent;
@@ -24,17 +23,18 @@
import de.fanta.challenges.listeners.InventoryClickListener;
import de.fanta.challenges.listeners.PlayerListener;
import de.fanta.challenges.listeners.QuitJoinListener;
+import de.fanta.challenges.listeners.VoidListener;
import de.fanta.challenges.scoreboard.ScoreBoardManager;
import de.fanta.challenges.scoreboard.ScoreManager;
import de.fanta.challenges.utils.ChatUtil;
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;
import org.bukkit.Material;
-import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.WorldType;
@@ -53,9 +53,12 @@
import java.util.Arrays;
import java.util.List;
import java.util.Random;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
public class Challenges extends JavaPlugin {
+ public static Logger LOGGER;
+
private static Challenges plugin;
private File backpackConfigFile;
@@ -92,10 +95,58 @@
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() {
plugin = this;
- getCommand("gamemode").setExecutor(new GamemodeCommand());
+ //getCommand("gamemode").setExecutor(new GamemodeCommand());
this.timer = new Timer(this);
this.rndDrops = new RandomDrops();
@@ -117,6 +168,7 @@
pM.registerEvents(new DamageListener(), this);
pM.registerEvents(new DeathListener(), this);
pM.registerEvents(new PlayerListener(), this);
+ pM.registerEvents(new VoidListener(), this);
pM.registerEvents(new TimerGui(), this);
pM.registerEvents(new ResetGui(), this);
pM.registerEvents(new MainGui(), this);
diff --git a/src/main/java/de/fanta/challenges/commands/BingoCommand.java b/src/main/java/de/fanta/challenges/commands/BingoCommand.java
index 9f1f4e6..8a0e2cb 100644
--- a/src/main/java/de/fanta/challenges/commands/BingoCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/BingoCommand.java
@@ -5,6 +5,7 @@
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;
@@ -25,7 +26,19 @@
return true;
}
if (plugin.getConfig().getBoolean("event.enabled") && Objects.equals(plugin.getConfig().getString("event.type"), "bingo") && plugin.getTimer().isRunning()) {
- EventItemsGui.openPlayerInv((Player) sender);
+ 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;
+ }
+ EventItemsGui.openPlayerInv(player, (Player) sender);
+
+ } else {
+ EventItemsGui.openPlayerInv((Player) sender, (Player) sender);
+ }
return true;
} else {
ChatUtil.sendErrorMessage(sender, "Aktuell läuft kein Bingo Event");
diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
index c7882d0..db27185 100644
--- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
+++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java
@@ -107,5 +107,9 @@
CommandRouter netherRouter = new CommandRouter(plugin.getCommand("nether"));
netherRouter.addCommandMapping(new NetherToggleCommand(plugin, true), "enable");
netherRouter.addCommandMapping(new NetherToggleCommand(plugin, false), "disable");
+
+ CommandRouter voidRouter = new CommandRouter(plugin.getCommand("void"));
+ voidRouter.addCommandMapping(new VoidToggleCommand(plugin, true), "enable");
+ voidRouter.addCommandMapping(new VoidToggleCommand(plugin, false), "disable");
}
}
diff --git a/src/main/java/de/fanta/challenges/commands/VillageCommand.java b/src/main/java/de/fanta/challenges/commands/VillageCommand.java
index c96c9b9..c9a5d08 100644
--- a/src/main/java/de/fanta/challenges/commands/VillageCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/VillageCommand.java
@@ -8,6 +8,7 @@
import org.bukkit.HeightMap;
import org.bukkit.Location;
import org.bukkit.StructureType;
+import org.bukkit.block.Structure;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesSaveCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesSaveCommand.java
index ab9a5ce..cb24f56 100644
--- a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesSaveCommand.java
+++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesSaveCommand.java
@@ -5,11 +5,13 @@
import de.fanta.challenges.utils.SaveWorldUtils;
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;
import java.util.UUID;
+import java.util.logging.Level;
public class ChallengesSaveCommand extends SubCommand {
@@ -33,9 +35,9 @@
try {
SaveWorldUtils.saveWorld(uuid);
} catch (Exception ex) {
- ex.printStackTrace();
+ Bukkit.getLogger().log(Level.SEVERE, "Could not save world ", ex);
ChatUtil.sendErrorMessage(sender, "Challenge konnte nicht gespeichert werden!");
- return false;
+ return true;
}
ChatUtil.sendNormalMessage(sender, "Challenge wurde erfolgreich gespeichert!");
} else {
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 fa17f77..c5a0d92 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 + ChatColor.RED + " Der Timer wurde zurückgesetzt!");
+ Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.GREEN + " 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/guis/eventgui/EventItemsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java
index 62b0ff3..1106ee6 100644
--- a/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java
+++ b/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java
@@ -44,7 +44,7 @@
return playerInvs;
}
- public static void openPlayerInv(Player player) {
+ public static void openPlayerInv(Player player, Player sender) {
Inventory inventory = Bukkit.createInventory(player, InventoryType.DISPENSER, Challenges.GUIPREFIX + " >> Bingo");
Bingo bingo = plugin.getBingo();
List playerMaterials = bingo.getPlayerMaterials().getOrDefault(player.getUniqueId(), new ArrayList<>());
@@ -59,7 +59,7 @@
inventory.addItem(itemStack);
});
playerInvs.put(player.getUniqueId(), inventory);
- player.openInventory(inventory);
+ sender.openInventory(inventory);
}
@EventHandler
diff --git a/src/main/java/de/fanta/challenges/listeners/DamageListener.java b/src/main/java/de/fanta/challenges/listeners/DamageListener.java
index 8021dbd..1859aca 100644
--- a/src/main/java/de/fanta/challenges/listeners/DamageListener.java
+++ b/src/main/java/de/fanta/challenges/listeners/DamageListener.java
@@ -27,6 +27,10 @@
@EventHandler
public void onDamage(EntityDamageEvent e) {
+ if (!plugin.getTimer().isRunning()) {
+ e.setCancelled(true);
+ return;
+ }
if (e.getEntity() instanceof Player) {
Player p = (Player) e.getEntity();
if (plugin.getVanish().isVanish(p)) {
@@ -43,7 +47,7 @@
Bukkit.broadcastMessage(Challenges.PREFIX + " " + 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") && (plugin.getTimer().isRunning())) {
+ } 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());
}
} else if (e.getCause() == DamageCause.CUSTOM) {
@@ -52,10 +56,10 @@
}
} else if (e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) {
- } else if (plugin.getConfig().getBoolean("dmginchat") && (plugin.getTimer().isRunning())) {
+ } 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());
}
- if (plugin.getConfig().getBoolean("sharedmg") && plugin.getTimer().isRunning()) {
+ if (plugin.getConfig().getBoolean("sharedmg")) {
for (Player pp : Bukkit.getOnlinePlayers()) {
if (pp != p) {
if (!plugin.getVanish().isVanish(pp)) {
@@ -83,6 +87,10 @@
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
+ if (!plugin.getTimer().isRunning()) {
+ e.setCancelled(true);
+ return;
+ }
if (e.getEntity() instanceof Player) {
Player p = (Player) e.getEntity();
if (plugin.getVanish().isVanish(p)) {
@@ -96,9 +104,6 @@
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());
}
}
- if (!plugin.getTimer().isRunning()) {
- e.setCancelled(true);
- }
}
@EventHandler
@@ -176,6 +181,10 @@
@EventHandler
public void onDamageclear(EntityDamageEvent e) {
+ if (!plugin.getTimer().isRunning()) {
+ e.setCancelled(true);
+ return;
+ }
if (e.getEntity() instanceof Player) {
Player p = (Player) e.getEntity();
if (e.getEntity() instanceof Player) {
diff --git a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java
index 6098ca2..c53e2ca 100644
--- a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java
+++ b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java
@@ -1,5 +1,6 @@
package de.fanta.challenges.listeners;
+import com.destroystokyo.paper.event.player.PlayerJumpEvent;
import de.fanta.challenges.Bingo;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.RIPBoden;
@@ -31,7 +32,10 @@
import org.bukkit.scheduler.BukkitRunnable;
import org.kitteh.vanish.event.VanishStatusChangeEvent;
+import java.util.Arrays;
+import java.util.List;
import java.util.Objects;
+import java.util.Random;
public class PlayerListener implements Listener {
@@ -107,20 +111,11 @@
Location playerloc = player.getLocation();
if (!plugin.getConfig().getBoolean("firsttimerstart")) {
if (!plugin.getTimer().isRunning() && player.getGameMode() == GameMode.SURVIVAL) {
- if (plugin.getConfig().getBoolean("nether.enabled")) {
- Location netherspawn = Bukkit.getWorlds().get(1).getSpawnLocation();
- if (playerloc.distance(netherspawn) > 20) {
- player.teleport(netherspawn);
- ChatUtil.sendWarningMessage(player, "Du kommst erst vom Spawn weg, wenn die Map gestartet wurde!");
- }
- } else {
- Location spawn = Bukkit.getWorlds().get(0).getSpawnLocation();
- if (playerloc.distance(spawn) > 20) {
- player.teleport(spawn);
- ChatUtil.sendWarningMessage(player, "Du kommst erst vom Spawn weg, wenn die Map gestartet wurde!");
- }
+ Location spawn = e.getPlayer().getWorld().getSpawnLocation();
+ if (playerloc.distance(spawn) > 20) {
+ player.teleport(spawn);
+ ChatUtil.sendWarningMessage(player, "Du kommst erst vom Spawn weg, wenn die Map gestartet wurde!");
}
-
}
}
if (plugin.getTimer().isRunning() && player.getGameMode() == GameMode.SURVIVAL && !plugin.getVanish().isVanish(player)) {
@@ -182,7 +177,7 @@
}
if (plugin.getConfig().getBoolean("nether.enabled")) {
Location spawn = Bukkit.getWorlds().get(1).getSpawnLocation();
- e.setRespawnLocation(spawn);
+ e.setRespawnLocation(spawn);
}
}
diff --git a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java
index 751c5c2..e6ab2a9 100644
--- a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java
+++ b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java
@@ -50,7 +50,8 @@
sb.append('\n');
sb.append("=".repeat(20));
sb.append('\n');
- sb.append("Erstellt von: ").append(ownerName).append('\n');
+ sb.append("Editor: ").append(ownerName).append('\n');
+ sb.append("Erstellt von: ").append(player.getName()).append('\n');
sb.append("Erstellt am: ").append(formatter.format(currentTime)).append('\n');
sb.append("Timer: ").append(plugin.getTimer().formatTime()).append('\n');
sb.append("=".repeat(20));
diff --git a/src/main/java/de/fanta/challenges/utils/ChatSkullAPI/Message.java b/src/main/java/de/fanta/challenges/utils/ChatSkullAPI/Message.java
index 9b9bf0c..d4ad069 100644
--- a/src/main/java/de/fanta/challenges/utils/ChatSkullAPI/Message.java
+++ b/src/main/java/de/fanta/challenges/utils/ChatSkullAPI/Message.java
@@ -78,17 +78,6 @@
}
}
- public void setItemLore(Player player) {
- byte b;
- int i;
- String[] arrayOfString;
- for (i = (arrayOfString = this.lines).length, b = 0; b < i; ) {
- String line = arrayOfString[b];
- player.performCommand("additemlore " + line);
- b++;
- }
- }
-
private ChatColor getClosestChatColor(ChatColor color) {
return color;
}
diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java
index 637a960..5ce7940 100644
--- a/src/main/java/de/fanta/challenges/utils/ChatUtil.java
+++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java
@@ -5,7 +5,6 @@
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
public class ChatUtil {
@@ -18,23 +17,23 @@
// prevent instances
}
- public static void sendMessage(CommandSender sender, String colors, Object message, Object... messageParts) {
- ChatUtilBukkit.sendMessage(sender, Challenges.PREFIX, colors, message, messageParts);
+ public static void sendMessage(CommandSender sender, String colors, Object... messageParts) {
+ ChatUtilBukkit.sendMessage(sender, Challenges.PREFIX, colors, messageParts);
}
- public static void sendNormalMessage(CommandSender sender, Object message, Object... messageParts) {
- sendMessage(sender, GREEN.toString(), message, messageParts);
+ public static void sendNormalMessage(CommandSender sender, Object... messageParts) {
+ sendMessage(sender, GREEN.toString(), messageParts);
}
- public static void sendWarningMessage(CommandSender sender, Object message, Object... messageParts) {
- sendMessage(sender, ORANGE.toString(), message, messageParts);
+ public static void sendWarningMessage(CommandSender sender, Object... messageParts) {
+ sendMessage(sender, ORANGE.toString(), messageParts);
}
- public static void sendErrorMessage(CommandSender sender, Object message, Object... messageParts) {
- sendMessage(sender, RED.toString(), message, messageParts);
+ public static void sendErrorMessage(CommandSender sender, Object... messageParts) {
+ sendMessage(sender, RED.toString(), messageParts);
}
- public static void sendBrodcastMessage(Object message) {
+ public static void sendBrodcastMessage(String message) {
Bukkit.broadcastMessage(Challenges.PREFIX + " " + GREEN + message);
}
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 55921fb..57d2648 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -31,4 +31,6 @@
enabled: false
type: nix
nether:
+ enabled: false
+void:
enabled: false
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index ee8ebe5..c9541c8 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -67,8 +67,8 @@
nether:
description: Spiele die Challenge vom Nether ins End durch
usage: Use /nether
- gamemode:
- aliases:
- - gm
+ void:
+ description: Void Challenge
+ usage: Use /void
test:
description: test command
\ No newline at end of file