diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
index 5fe7906..25ed069 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
@@ -28,26 +28,25 @@ public final class BlazeSMP extends JavaPlugin {
@Getter private BukkitTask tabListUpdateTask;
private boolean isEndOpen;
-
@Override
public void onLoad() {
- this.log=getSLF4JLogger();
+ this.log = getSLF4JLogger();
this.log.info("Loading BlazeSMP...");
this.log.info("Loading ProtectedBlocks...");
- this.protectedBlocks=new ProtectedBlocks();
+ this.protectedBlocks = new ProtectedBlocks();
this.protectedBlocks.load();
this.log.info("Loaded ProtectedBlocks!");
this.log.info("Loading Clans...");
- this.clans=new Clans();
+ this.clans = new Clans();
this.clans.loadAllClans();
this.log.info("Loaded Clans!");
this.log.info("Loading config...");
saveDefaultConfig();
- this.configuration= getConfig();
+ this.configuration = getConfig();
saveConfig();
this.log.info("Loaded config!");
@@ -60,12 +59,13 @@ public final class BlazeSMP extends JavaPlugin {
@Override
public void onEnable() {
- BlazeSMP.instance=this;
+ BlazeSMP.instance = this;
+ isEndOpen = getConfig().getBoolean("isEndOpen", false);
this.log.info("Enabling BlazeSMP...");
this.log.info("Loading Homes...");
- this.homes=new Homes();
+ this.homes = new Homes();
this.homes.load();
this.log.info("Loaded Homes!");
@@ -77,6 +77,7 @@ public final class BlazeSMP extends JavaPlugin {
new DiscordCommand().register();
new ReloadCommand().register();
new VanishCommand().register();
+ new EventCommand(this).register();
this.log.info("Registered Commands!");
this.log.info("Registering EventListeners...");
@@ -125,11 +126,14 @@ public final class BlazeSMP extends JavaPlugin {
this.log.info("Disabling BlazeSMP!");
}
+
public boolean isEndOpen() {
return isEndOpen;
}
public void setEndOpen(boolean endOpen) {
isEndOpen = endOpen;
+ getConfig().set("isEndOpen", endOpen);
+ saveConfig();
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/EventCommand.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/EventCommand.java
new file mode 100644
index 0000000..89bd5cf
--- /dev/null
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/EventCommand.java
@@ -0,0 +1,85 @@
+package me.freezy.plugins.papermc.blazesmp.command;
+
+import me.freezy.plugins.papermc.blazesmp.BlazeSMP;
+import me.freezy.plugins.papermc.blazesmp.command.util.SimpleCommand;
+import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4;
+import net.kyori.adventure.text.minimessage.MiniMessage;
+import net.kyori.adventure.title.Title;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Sound;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.command.ConsoleCommandSender;
+import org.bukkit.entity.Player;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.time.Duration;
+import java.util.List;
+
+public class EventCommand extends SimpleCommand {
+
+ private final BlazeSMP plugin;
+
+ public EventCommand(BlazeSMP plugin) {
+ super("event");
+ this.plugin = plugin;
+ }
+
+ @Override
+ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ if (args.length == 1 && args[0].equalsIgnoreCase("open")) {
+ if (!(sender.getName().equals("BlazeGHC") || sender.getName().equals("EmrageGHC"))) {
+ sender.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.no_permission")));
+ return true;
+ }
+
+ if (plugin.isEndOpen()) {
+ sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "The End is already open!");
+ return true;
+ }
+
+ if (sender instanceof Player || sender instanceof ConsoleCommandSender) {
+ for (int i = 10; i > 0; i--) {
+ int finalI = i;
+ Bukkit.getScheduler().runTaskLater(plugin, () -> {
+ String titleMessage = "" + finalI + "";
+ String subtitleMessage = "The End is opening soon!";
+ Bukkit.getOnlinePlayers().forEach(player -> {
+ player.showTitle(Title.title(
+ MiniMessage.miniMessage().deserialize(titleMessage),
+ MiniMessage.miniMessage().deserialize(subtitleMessage)
+ ));
+ player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0f, 1.0f);
+ });
+ }, (10 - i) * 20L);
+ }
+
+ Bukkit.getScheduler().runTaskLater(plugin, () -> {
+ plugin.setEndOpen(true);
+ plugin.getConfig().set("isEndOpen", true);
+ plugin.saveConfig();
+ Bukkit.broadcastMessage(ChatColor.GREEN + "" + ChatColor.BOLD + "The End is now open! Good luck!");
+ Bukkit.getOnlinePlayers().forEach(player -> {
+ player.playSound(player.getLocation(), Sound.ENTITY_ENDER_DRAGON_GROWL, 1.0f, 1.0f);
+ player.showTitle(Title.title(
+ MiniMessage.miniMessage().deserialize("Open!"),
+ MiniMessage.miniMessage().deserialize("Good luck!"),
+ Title.Times.times(Duration.ofSeconds(1), Duration.ofSeconds(3), Duration.ofSeconds(1))
+ ));
+ });
+ }, 10 * 20L);
+ return true;
+ } else {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ return List.of();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndPortalListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndPortalListener.java
index 8215e25..1768d69 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndPortalListener.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndPortalListener.java
@@ -1,6 +1,6 @@
package me.freezy.plugins.papermc.blazesmp.listener;
-import me.freezy.plugins.papermc.blazeghcsmpclan.Main;
+import me.freezy.plugins.papermc.blazesmp.BlazeSMP;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.World.Environment;
@@ -11,9 +11,9 @@ import org.bukkit.event.player.PlayerPortalEvent;
public class EndPortalListener implements Listener {
- private final Main plugin;
+ private final BlazeSMP plugin;
- public EndPortalListener(Main plugin) {
+ public EndPortalListener(BlazeSMP plugin) {
this.plugin = plugin;
}