From ec2ec3447cfa1ccc0428e2a6737a3e8cff3e8ada Mon Sep 17 00:00:00 2001 From: Cytosine <72668717+Cytoplasm09@users.noreply.github.com> Date: Fri, 25 Nov 2022 12:51:12 +0100 Subject: [PATCH 1/4] fly on join --- .../deluxehub/module/modules/player/PlayerListener.java | 7 +++++++ src/main/resources/config.yml | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java index fe5c766c..b17c1865 100644 --- a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java +++ b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java @@ -1,6 +1,7 @@ package fun.lewisdev.deluxehub.module.modules.player; import fun.lewisdev.deluxehub.DeluxeHubPlugin; +import fun.lewisdev.deluxehub.command.commands.FlyCommand; import fun.lewisdev.deluxehub.config.ConfigType; import fun.lewisdev.deluxehub.module.Module; import fun.lewisdev.deluxehub.module.ModuleType; @@ -33,6 +34,7 @@ public class PlayerListener extends Module { private boolean spawnHeal; private boolean extinguish; private boolean clearInventory; + private boolean flyOnJoin; private boolean fireworkEnabled; private boolean fireworkFirstJoin; @@ -60,6 +62,7 @@ public void onEnable() { spawnHeal = config.getBoolean("join_settings.heal", false); extinguish = config.getBoolean("join_settings.extinguish", false); clearInventory = config.getBoolean("join_settings.clear_inventory", false); + flyOnJoin = config.getBoolean("join_settings.fly_on_join", false); fireworkEnabled = config.getBoolean("join_settings.firework.enabled", true); if (fireworkEnabled) { @@ -108,6 +111,10 @@ public void onPlayerJoin(PlayerJoinEvent event) { // Clear the player inventory if (clearInventory) player.getInventory().clear(); + // Enable flight + if (flyOnJoin) player.setAllowFlight(true); + + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), () -> { // Join events executeActions(player, joinActions); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index dd62e720..40de9eac 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -305,6 +305,8 @@ join_settings: extinguish: true # Should we clear their inventory? clear_inventory: false + # Should we enable flight (only if the player has the permission deluxehub.commands.fly)? + fly_on_join: true # Spawn a firework on join firework: # Should we send a firework on join? From 0b8c7674a745c6d7ac0fac10062dca4022886386 Mon Sep 17 00:00:00 2001 From: Cytosine <72668717+Cytoplasm09@users.noreply.github.com> Date: Fri, 25 Nov 2022 12:56:24 +0100 Subject: [PATCH 2/4] fix fly on join --- .../lewisdev/deluxehub/module/modules/player/PlayerListener.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java index b17c1865..ec493aae 100644 --- a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java +++ b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java @@ -1,7 +1,6 @@ package fun.lewisdev.deluxehub.module.modules.player; import fun.lewisdev.deluxehub.DeluxeHubPlugin; -import fun.lewisdev.deluxehub.command.commands.FlyCommand; import fun.lewisdev.deluxehub.config.ConfigType; import fun.lewisdev.deluxehub.module.Module; import fun.lewisdev.deluxehub.module.ModuleType; From 478ef7ae94be6706fbdd9a449e0c4ea00ce909bf Mon Sep 17 00:00:00 2001 From: Cytosine <72668717+Cytoplasm09@users.noreply.github.com> Date: Tue, 3 Jan 2023 16:56:33 +0100 Subject: [PATCH 3/4] fix permission requirement for fly_on_join forgor to add required permission check for fly_on_join feature --- .../deluxehub/module/modules/player/PlayerListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java index ec493aae..e5d0eaed 100644 --- a/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java +++ b/src/main/java/fun/lewisdev/deluxehub/module/modules/player/PlayerListener.java @@ -1,6 +1,7 @@ package fun.lewisdev.deluxehub.module.modules.player; import fun.lewisdev.deluxehub.DeluxeHubPlugin; +import fun.lewisdev.deluxehub.Permissions; import fun.lewisdev.deluxehub.config.ConfigType; import fun.lewisdev.deluxehub.module.Module; import fun.lewisdev.deluxehub.module.ModuleType; @@ -111,7 +112,7 @@ public void onPlayerJoin(PlayerJoinEvent event) { if (clearInventory) player.getInventory().clear(); // Enable flight - if (flyOnJoin) player.setAllowFlight(true); + if (flyOnJoin && player.hasPermission(Permissions.COMMAND_FLIGHT.getPermission())) player.setAllowFlight(true); Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), () -> { From ea281caf92b5632868d5e6030fdba119500c8051 Mon Sep 17 00:00:00 2001 From: Cytosine <72668717+Cytoplasm09@users.noreply.github.com> Date: Tue, 3 Jan 2023 16:57:40 +0100 Subject: [PATCH 4/4] core --- .../lewisdev/deluxehub/action/actions/BungeeAction.java | 9 +++++++-- src/main/resources/config.yml | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/fun/lewisdev/deluxehub/action/actions/BungeeAction.java b/src/main/java/fun/lewisdev/deluxehub/action/actions/BungeeAction.java index d14b161d..4895a976 100644 --- a/src/main/java/fun/lewisdev/deluxehub/action/actions/BungeeAction.java +++ b/src/main/java/fun/lewisdev/deluxehub/action/actions/BungeeAction.java @@ -3,7 +3,9 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import fun.lewisdev.deluxehub.DeluxeHubPlugin; +import fun.lewisdev.deluxehub.Permissions; import fun.lewisdev.deluxehub.action.Action; +import fun.lewisdev.deluxehub.config.Messages; import org.bukkit.entity.Player; public class BungeeAction implements Action { @@ -16,9 +18,12 @@ public String getIdentifier() { @Override public void execute(DeluxeHubPlugin plugin, Player player, String data) { ByteArrayDataOutput out = ByteStreams.newDataOutput(); + String[] args = data.split(";"); out.writeUTF("ConnectOther"); out.writeUTF(player.getName()); - out.writeUTF(data); - player.sendPluginMessage(plugin, "BungeeCord", out.toByteArray()); + out.writeUTF(args[0]); + if (player.hasPermission(args[1])) + player.sendPluginMessage(plugin, "BungeeCord", out.toByteArray()); + else Messages.NO_PERMISSION.send(player); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index dd62e720..121415a7 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -33,7 +33,7 @@ # [COMMAND] - Execute a command as the player # [CONSOLE] - Execute a command as console # [GAMEMODE] - Change a players' gamemode -# [BUNGEE] - Send a player to a server +# [BUNGEE] - e.g. SERVER;PERMISSION Send a player to a server # [EFFECT] e.g. EFFECT;LEVEL - Give a potion effect # [MENU] - Open a menu from (plugins/DeluxeHub/menus) # [CLOSE] - Close an open inventory gui