diff --git a/ansible/files/paper-config/plugins/SimpleAdminHacks/config.yml b/ansible/files/paper-config/plugins/SimpleAdminHacks/config.yml index 6b921f785..15f5b80eb 100644 --- a/ansible/files/paper-config/plugins/SimpleAdminHacks/config.yml +++ b/ansible/files/paper-config/plugins/SimpleAdminHacks/config.yml @@ -608,3 +608,5 @@ hacks: world: world TooHappyGhasts: enabled: true + PlayerCap: + enabled: true diff --git a/ansible/files/proxy-config/velocity-528.jar b/ansible/files/proxy-config/velocity-528.jar new file mode 100644 index 000000000..0b77b40cd Binary files /dev/null and b/ansible/files/proxy-config/velocity-528.jar differ diff --git a/ansible/files/pvp-config/plugins/SimpleAdminHacks/config.yml b/ansible/files/pvp-config/plugins/SimpleAdminHacks/config.yml index 5609bd759..bfde3eb7d 100644 --- a/ansible/files/pvp-config/plugins/SimpleAdminHacks/config.yml +++ b/ansible/files/pvp-config/plugins/SimpleAdminHacks/config.yml @@ -598,3 +598,5 @@ hacks: world: world TooHappyGhasts: enabled: true + PlayerCap: + enabled: true diff --git a/ansible/src/paper-plugins/JoinBypass-1.0.jar b/ansible/src/paper-plugins/JoinBypass-1.0.jar deleted file mode 100644 index 89a2da17f..000000000 Binary files a/ansible/src/paper-plugins/JoinBypass-1.0.jar and /dev/null differ diff --git a/ansible/templates/stacks/minecraft.yml.j2 b/ansible/templates/stacks/minecraft.yml.j2 index 75c11bd3d..1b0123f33 100644 --- a/ansible/templates/stacks/minecraft.yml.j2 +++ b/ansible/templates/stacks/minecraft.yml.j2 @@ -21,7 +21,7 @@ services: mode: host environment: TYPE: 'CUSTOM' - BUNGEE_JAR_URL: 'https://api.papermc.io/v2/projects/velocity/versions/3.4.0-SNAPSHOT/builds/525/downloads/velocity-3.4.0-SNAPSHOT-525.jar' + BUNGEE_JAR_FILE: 'velocity-528.jar' REPLACE_ENV_VARIABLES: 'true' REPLACE_ENV_VARIABLE_PREFIX: 'CIV' diff --git a/docker-compose.yml b/docker-compose.yml index e5299544c..e834e7885 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,7 @@ services: condition: service_healthy environment: TYPE: 'CUSTOM' - BUNGEE_JAR_URL: 'https://api.papermc.io/v2/projects/velocity/versions/3.4.0-SNAPSHOT/builds/523/downloads/velocity-3.4.0-SNAPSHOT-523.jar' + BUNGEE_JAR_FILE: 'velocity-528.jar' REPLACE_ENV_VARIABLES: 'true' REPLACE_ENV_VARIABLE_PREFIX: 'CIV' diff --git a/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerCap.java b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerCap.java new file mode 100644 index 000000000..e6eb10854 --- /dev/null +++ b/plugins/simpleadminhacks-paper/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerCap.java @@ -0,0 +1,55 @@ +package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; + +import com.programmerdan.minecraft.simpleadminhacks.SimpleAdminHacks; +import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHack; +import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHackConfig; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerLoginEvent; +import org.jetbrains.annotations.NotNull; + +public class PlayerCap extends BasicHack implements CommandExecutor { + + public PlayerCap(SimpleAdminHacks plugin, BasicHackConfig config) { + super(plugin, config); + } + + @Override + public void onEnable() { + super.onEnable(); + plugin().registerCommand("setplayercap", this); + } + + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent e) { + if (e.getResult() != PlayerLoginEvent.Result.KICK_FULL) return; + if (!e.getPlayer().hasPermission("joinbypass.use")) return; + + e.allow(); + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String @NotNull [] args) { + if (!(sender.hasPermission("simpleadmin.setplayercap"))) { + return false; + } + + int cap; + try { + cap = Integer.parseInt(args[0]); + } catch (NumberFormatException ex) { + return false; + } + if (cap < 0) { + return false; + } + + ((CraftServer) Bukkit.getServer()).getHandle().maxPlayers = cap; + sender.sendMessage("Changed player cap to " + cap); + return true; + } +} diff --git a/plugins/simpleadminhacks-paper/src/main/resources/config.yml b/plugins/simpleadminhacks-paper/src/main/resources/config.yml index faf59f37d..4ce6417c9 100644 --- a/plugins/simpleadminhacks-paper/src/main/resources/config.yml +++ b/plugins/simpleadminhacks-paper/src/main/resources/config.yml @@ -549,3 +549,5 @@ hacks: world: world TooHappyGhasts: enabled: true + PlayerCap: + enabled: true diff --git a/plugins/simpleadminhacks-paper/src/main/resources/plugin.yml b/plugins/simpleadminhacks-paper/src/main/resources/plugin.yml index 363b3ab39..2e08f223d 100644 --- a/plugins/simpleadminhacks-paper/src/main/resources/plugin.yml +++ b/plugins/simpleadminhacks-paper/src/main/resources/plugin.yml @@ -96,6 +96,10 @@ commands: description: Allows debugging of an event and its handlers usage: / full.path.to.event permission: simpleadmin.eventdebug + setplayercap: + description: Set player cap + usage: / + permission: simpleadmin.setplayercap stats: { } # Defined in (basic) PlayerStats permissions: simpleadmin.*: @@ -119,6 +123,7 @@ permissions: simpleadmin.bedlocator: true simpleadmin.elytrabypass: true simpleadmin.grantott: true + simpleadmin.setplayercap: true simpleadmin.hacks: description: Allows control of the hacks and settings which simpleadminhacks supports default: op @@ -170,3 +175,6 @@ permissions: simpleadmin.grantott: description: Gives the ability to grant players OTT usages default: op + simpleadmin.setplayercap: + description: Gives the ability to set the player cap + default: op