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 1925409..84acc8a 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java @@ -2,7 +2,6 @@ package me.freezy.plugins.papermc.blazesmp; import lombok.Getter; import me.freezy.plugins.papermc.blazesmp.command.*; -import me.freezy.plugins.papermc.blazesmp.command.util.SimpleCommand; import me.freezy.plugins.papermc.blazesmp.listener.*; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; import me.freezy.plugins.papermc.blazesmp.module.manager.Homes; @@ -10,7 +9,6 @@ import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4; import me.freezy.plugins.papermc.blazesmp.module.manager.ProtectedBlocks; import me.freezy.plugins.papermc.blazesmp.tasks.PlayerNameUpdate; import me.freezy.plugins.papermc.blazesmp.tasks.TabListTimer; -import org.bukkit.NamespacedKey; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -19,93 +17,102 @@ import org.bukkit.scoreboard.Team; import org.slf4j.Logger; public final class BlazeSMP extends JavaPlugin { - @Getter private static BlazeSMP instance; - @Getter private Homes homes; - @Getter private ProtectedBlocks protectedBlocks; - @Getter private Clans clans; - @Getter private FileConfiguration configuration; - @Getter private Logger log; - @Getter private BukkitTask nameUpdateTask; - @Getter private BukkitTask tabListUpdateTask; + @Getter + private static BlazeSMP instance; + @Getter + private Homes homes; + @Getter + private ProtectedBlocks protectedBlocks; + @Getter + private Clans clans; + @Getter + private FileConfiguration configuration; + @Getter + private Logger log; + @Getter + private BukkitTask nameUpdateTask; + @Getter + private BukkitTask tabListUpdateTask; private boolean isEndOpen; @Override -public void onLoad() { - this.log = getSLF4JLogger(); + public void onLoad() { + this.log = getSLF4JLogger(); - this.log.info("Loading BlazeSMP..."); + this.log.info("Loading BlazeSMP..."); - this.log.info("Loading ProtectedBlocks..."); - this.protectedBlocks = new ProtectedBlocks(); - this.protectedBlocks.load(); - this.log.info("Loaded ProtectedBlocks!"); + this.log.info("Loading ProtectedBlocks..."); + this.protectedBlocks = new ProtectedBlocks(); + this.protectedBlocks.load(); + this.log.info("Loaded ProtectedBlocks!"); - this.log.info("Loading config..."); - saveDefaultConfig(); - this.configuration = getConfig(); - saveConfig(); - this.log.info("Loaded config!"); + this.log.info("Loading config..."); + saveDefaultConfig(); + this.configuration = getConfig(); + saveConfig(); + this.log.info("Loaded config!"); - this.log.info("Loading L4M4..."); - L4M4.init(); - this.log.info("Loaded L4M4!"); + this.log.info("Loading L4M4..."); + L4M4.init(); + this.log.info("Loaded L4M4!"); - this.log.info("Loaded BlazeSMP!"); -} + this.log.info("Loaded BlazeSMP!"); + } -@Override -public void onEnable() { - BlazeSMP.instance = this; - isEndOpen = getConfig().getBoolean("isEndOpen", false); + @Override + public void onEnable() { + BlazeSMP.instance = this; + isEndOpen = getConfig().getBoolean("isEndOpen", false); - this.getServer().getScheduler().runTaskLater(this, () -> { - this.log.info("Enabling BlazeSMP..."); + this.getServer().getScheduler().runTaskLater(this, () -> { + this.log.info("Enabling BlazeSMP..."); - this.log.info("Loading Homes..."); - this.homes = new Homes(); - this.homes.load(); - this.log.info("Loaded Homes!"); + this.log.info("Loading Homes..."); + this.homes = new Homes(); + this.homes.load(); + this.log.info("Loaded Homes!"); - this.log.info("Loading Clans..."); - this.clans = new Clans(); - this.clans.loadAllClans(); - this.log.info("Loaded Clans!"); + this.log.info("Loading Clans..."); + this.clans = new Clans(); + this.clans.loadAllClans(); + this.log.info("Loaded Clans!"); - this.log.info("Registering Commands..."); - new ClanCommand().register(); - new ReportCommand().register(); - new ClaimCommand().register(); - new HomeCommand().register(); - new DiscordCommand().register(); - new ReloadCommand().register(); - new VanishCommand().register(); - new EventCommand(this).register(); - new RestartCommand().register(); - this.log.info("Registered Commands!"); + this.log.info("Registering Commands..."); + new ClanCommand().register(); + new ReportCommand().register(); + new ClaimCommand().register(); + new HomeCommand().register(); + new DiscordCommand().register(); + new ReloadCommand().register(); + new VanishCommand().register(); + new EventCommand(this).register(); + new RestartCommand().register(); + this.log.info("Registered Commands!"); - this.log.info("Registering EventListeners..."); - PluginManager pm = getServer().getPluginManager(); - pm.registerEvents(new PlayerJoinListener(), this); - pm.registerEvents(new PlayerChatListener(), this); - pm.registerEvents(new PlayerCommandBlockerListener(), this); - pm.registerEvents(new PlayerClaimListener(), this); - pm.registerEvents(new ChunkInventoryListener(), this); - pm.registerEvents(new PressurePlateListener(), this); - pm.registerEvents(new PlayerVsPlayerListener(clans), this); - pm.registerEvents(new EndPortalListener(this), this); - pm.registerEvents(new PvPListener(), this); - pm.registerEvents(new PlayerQuitListener(), this); - //pm.registerEvents(new ProtectedBlockListener(), this); - this.log.info("Registered EventListeners!"); + this.log.info("Registering EventListeners..."); + PluginManager pm = getServer().getPluginManager(); + pm.registerEvents(new PlayerJoinListener(), this); + pm.registerEvents(new PlayerChatListener(), this); + pm.registerEvents(new PlayerCommandBlockerListener(), this); + pm.registerEvents(new PlayerClaimListener(), this); + pm.registerEvents(new ChunkInventoryListener(), this); + pm.registerEvents(new PressurePlateListener(), this); + pm.registerEvents(new PlayerVsPlayerListener(clans), this); + pm.registerEvents(new EndPortalListener(this), this); + pm.registerEvents(new PvPListener(), this); + pm.registerEvents(new PlayerQuitListener(), this); + //pm.registerEvents(new ProtectedBlockListener(), this); + pm.registerEvents(new EndBedPlaceListener(), this); + this.log.info("Registered EventListeners!"); - this.log.info("Starting Timer tasks..."); - this.nameUpdateTask = new PlayerNameUpdate().runTaskTimer(this, 0L, 20L); - this.tabListUpdateTask = new TabListTimer().runTaskTimer(this, 0L, 20L); - this.log.info("Started Timer tasks!"); + this.log.info("Starting Timer tasks..."); + this.nameUpdateTask = new PlayerNameUpdate().runTaskTimer(this, 0L, 20L); + this.tabListUpdateTask = new TabListTimer().runTaskTimer(this, 0L, 20L); + this.log.info("Started Timer tasks!"); - this.log.info("Enabled BlazeSMP!"); - }, 20L); -} + this.log.info("Enabled BlazeSMP!"); + }, 20L); + } @Override public void onDisable() { diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndBedPlaceListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndBedPlaceListener.java new file mode 100644 index 0000000..403527c --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/EndBedPlaceListener.java @@ -0,0 +1,41 @@ +package me.freezy.plugins.papermc.blazesmp.listener; + +import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4; +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPlaceEvent; + +import java.util.Set; + +public class EndBedPlaceListener implements Listener { + private final Set beds = Set.of( + Material.BLACK_BED, + Material.BLUE_BED, + Material.BROWN_BED, + Material.CYAN_BED, + Material.GRAY_BED, + Material.GREEN_BED, + Material.LIGHT_BLUE_BED, + Material.LIGHT_GRAY_BED, + Material.LIME_BED, + Material.MAGENTA_BED, + Material.ORANGE_BED, + Material.PINK_BED, + Material.PURPLE_BED, + Material.RED_BED, + Material.WHITE_BED, + Material.YELLOW_BED + ); + + @EventHandler + public void onBedPlace(BlockPlaceEvent event) { + Block block = event.getBlock(); + if (beds.contains(block.getType()) && event.getPlayer().getWorld().getName().equalsIgnoreCase("world_the_end")) { + event.setCancelled(true); + event.getPlayer().sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.bed_place_in_end"))); + } + } +} diff --git a/src/main/resources/storage/messages.json b/src/main/resources/storage/messages.json index cd8ca7e..8d99c4a 100644 --- a/src/main/resources/storage/messages.json +++ b/src/main/resources/storage/messages.json @@ -32,7 +32,6 @@ "error.not_found": "Not Found", "error.no_reason": "Please provide a reason for the restart.", "error.no_permission": "You can't do this.", - "usage.clan_create": "Usage: /clan create ", "usage.clan_chat": "Usage: /clan chat ", "usage.clan_join": "Usage: /clan join ", @@ -46,7 +45,6 @@ "usage.clan_promote": "Usage: /clan promote ", "usage.clan_demote": "Usage: /clan demote ", "usage.clan_modify": "Usage: /clan modify ", - "success.clan_created": "Clan created successfully!", "success.join_request_sent": "Join request sent to clan %s!", "success.invite_sent": "Invite sent to %s.", @@ -63,20 +61,14 @@ "success.clan_disbanded_leave": "You have disbanded your clan (no other members) and left.", "success.left_clan": "You have left the clan %s.", "success.chunk_claimed": "Successfully claimed the chunk!", - "notification.invite": "Invite from clan %s.", - - "button.accept": "[Accept]", "button.deny": "[Deny]", - "help.leader": "=== Clan Commands ===\n- /clan info\n- /clan invite\n- /clan kick\n- /clan transfer\n- /clan promote\n- /clan demote\n- /clan disband\n- /clan leave\n- /clan accept\n- /clan deny\n- /clan modify\n- /clan list\n=====================", "help.vice": "=== Clan Commands ===\n- /clan info\n- /clan invite\n- /clan kick\n- /clan demote\n- /clan leave\n- /clan accept\n- /clan deny\n- /clan list\n=====================", "help.member": "=== Clan Commands ===\n- /clan info\n- /clan leave\n- /clan list\n=====================", "help.none": "=== Clan Commands ===\n- /clan create\n- /clan join\n- /clan accept\n- /clan deny\n- /clan list\n=====================", - "chat.format": "[Clan] %s: %s", - "info.header": "=== Clan info ===\n", "info.uuid": " - ID: %s\n", "info.name": " - Name: %s\n", @@ -91,7 +83,6 @@ "home.sethome.success": "Home set!", "home.delhome.success": "Home removed!", "home.teleport.start": "Teleporting to home!", - "report.error.not_a_player": "Du darfst das nicht", "report.usage": "Benutze bitte: /report ", "report.error.invalid_player": "Der Spieler existiert nicht oder war noch nie online!", @@ -102,28 +93,21 @@ "report.discord.field.reporter": "Reporter", "report.discord.field.reported": "Gemeldeter Spieler", "report.discord.field.reason": "Grund", - "chunk.error.no_clan": "You are not in a clan!", "chunk.title": "Clan Chunks", "chunk.navigation.previous": "Previous Page", "chunk.navigation.next": "Next Page", "chunk.clicked": "You clicked on Chunk item: %s.", "chunk.unclaim_lore": "Click to unclaim!", - "claim.entered": "You entered the claim of %s!", "claim.territory": "Territory of %s - %s!", - "command.blocked": "Unknown or incomplete command, see below for error\n%s <--[HERE]", - "player.join": "[+] ", "player.left": "[-] ", - "pressureplate.teleport": "You need to wait 5 seconds to be teleported.", - "teleport.cancelled": "Teleporting cancelled, you moved!", "teleport.success": "Teleported!", "teleport.countdown": "Teleporting to home in %s seconds!", - "tablist.header": [ "BlazeSMP" ], @@ -134,7 +118,6 @@ "made by BlazeGHC Team", "made by BlazeGHC Team" ], - "storage.locked": "This storage is locked! You need a %s to open it.", "storage.lock_gui_title": "Lock & Link Storage - %s", "storage.lock_gui_title_prefix": "Lock & Link Storage", @@ -149,11 +132,10 @@ "storage.removed_lock": "You removed the lock from this storage.", "storage.break_denied": "You cannot break this locked storage!", "storage.trial_key": "Linked Trial Key", - "config.reloaded": "Config reloaded!", "error.clan_full": "The clan is full.", "join.notify": "WICHTIG!!! Die Clans wurden aufgelöst, das aktuelle Clanlimit liegt bei 10 Membern. Jeder hat damit die Chance einen neuen Clan selbst zu gründen, da die großen Clans keine unendliche Kapazität mehr haben.", "success.chunk_unclaimed": "Chunk successfully unclaimed!", - "error.chunk_not_owned": "You do not own this chunk!" - + "error.chunk_not_owned": "You do not own this chunk!", + "error.bed_place_in_end": "You cannot place beds in the end!" }