From 375cc1ac6f3772b16fa5247e2a160b2ab78b1c10 Mon Sep 17 00:00:00 2001 From: Dark98 Date: Fri, 10 Dec 2021 01:44:08 +0000 Subject: [PATCH] More Discord Commands(GameKick, MoveHome & Update) *GameKick kicks A player if their client froze but acc stayed logged in *MoveHome removes the need for ::stuck which removes potential for abuse *Update schedules A server update --- .../rs2/integrations/discord/JavaCord.java | 31 +++++------------- .../discord/commands/Commands.java | 3 -- .../integrations/discord/commands/Issues.java | 1 - .../discord/commands/Players.java | 4 +-- .../discord/commands/admin/GameKick.java | 32 +++++++++++++++++++ .../discord/commands/admin/MoveHome.java | 31 ++++++++++++++++++ .../discord/commands/admin/Update.java | 24 ++++++++++++++ .../com/rs2/net/packets/impl/Commands.java | 14 -------- 8 files changed, 96 insertions(+), 44 deletions(-) create mode 100644 2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/GameKick.java create mode 100644 2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/MoveHome.java create mode 100644 2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/Update.java diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/JavaCord.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/JavaCord.java index ede8f260..1b5c8ec1 100644 --- a/2006Scape Server/src/main/java/com/rs2/integrations/discord/JavaCord.java +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/JavaCord.java @@ -1,15 +1,15 @@ package com.rs2.integrations.discord; import com.rs2.GameConstants; -import com.rs2.game.players.Client; -import com.rs2.game.players.Player; -import com.rs2.game.players.PlayerHandler; +import com.rs2.integrations.discord.commands.*; +import com.rs2.integrations.discord.commands.admin.GameKick; +import com.rs2.integrations.discord.commands.admin.MoveHome; +import com.rs2.integrations.discord.commands.admin.Update; import org.javacord.api.DiscordApi; import org.javacord.api.DiscordApiBuilder; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.MessageBuilder; import org.javacord.api.util.logging.ExceptionLogger; -import com.rs2.integrations.discord.commands.*; import java.io.IOException; @@ -38,29 +38,14 @@ public class JavaCord { api.addListener(new Players()); api.addListener(new Vote()); api.addListener(new Website()); + //Admin Commands + api.addListener(new GameKick()); + api.addListener(new MoveHome()); + api.addListener(new Update()); if(!DiscordActivity.playerCount) { api.updateActivity(GameConstants.WEBSITE_LINK); } api.addMessageCreateListener(event -> { - - if (event.getMessageContent().startsWith(commandPrefix + " kick")) { - if (event.getMessageAuthor().isServerAdmin()) { - String playerToKick = event.getMessageContent().replace( commandPrefix + " kick ", ""); - for (Player player2 : PlayerHandler.players) { - if (player2 != null) { - if (player2.playerName.equalsIgnoreCase(playerToKick)) { - Client c2 = (Client) player2; - event.getChannel().sendMessage("You have kicked " + playerToKick + "."); - c2.disconnected = true; - c2.logout(true); - break; - } - } - } - } else { - event.getChannel().sendMessage("You do not have permission to perform this command"); - } - } }); } catch (Exception e) { diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Commands.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Commands.java index 17b6faaa..7ad8a966 100644 --- a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Commands.java +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Commands.java @@ -1,6 +1,5 @@ package com.rs2.integrations.discord.commands; -import com.rs2.GameConstants; import com.rs2.integrations.discord.JavaCord; import org.javacord.api.entity.message.Message; import org.javacord.api.event.message.MessageCreateEvent; @@ -21,8 +20,6 @@ public class Commands implements MessageCreateListener { + System.lineSeparator() + JavaCord.commandPrefix + " online" + System.lineSeparator() + - JavaCord.commandPrefix + " players" - + System.lineSeparator() + JavaCord.commandPrefix + " vote" + System.lineSeparator() + JavaCord.commandPrefix + " website/" + JavaCord.commandPrefix + " site" diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Issues.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Issues.java index c5c5726b..43e2668d 100644 --- a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Issues.java +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Issues.java @@ -1,6 +1,5 @@ package com.rs2.integrations.discord.commands; -import com.rs2.GameConstants; import com.rs2.integrations.discord.JavaCord; import org.javacord.api.entity.message.Message; import org.javacord.api.event.message.MessageCreateEvent; diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Players.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Players.java index 5da35770..83d95c7e 100644 --- a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Players.java +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/Players.java @@ -1,13 +1,11 @@ package com.rs2.integrations.discord.commands; -import com.rs2.GameConstants; +import com.rs2.game.players.PlayerHandler; import com.rs2.integrations.discord.JavaCord; import org.javacord.api.entity.message.Message; import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.listener.message.MessageCreateListener; -import com.rs2.game.players.PlayerHandler; - public class Players implements MessageCreateListener { @Override public void onMessageCreate(MessageCreateEvent event) { diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/GameKick.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/GameKick.java new file mode 100644 index 00000000..42b45fe3 --- /dev/null +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/GameKick.java @@ -0,0 +1,32 @@ +package com.rs2.integrations.discord.commands.admin; + +import com.rs2.game.players.Client; +import com.rs2.game.players.Player; +import com.rs2.game.players.PlayerHandler; +import com.rs2.integrations.discord.JavaCord; +import org.javacord.api.event.message.MessageCreateEvent; +import org.javacord.api.listener.message.MessageCreateListener; + +public class GameKick implements MessageCreateListener { + @Override + public void onMessageCreate(MessageCreateEvent event) { + if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " gamekick")) { + if (event.getMessageAuthor().isServerAdmin()) { + String playerToKick = event.getMessageContent().replace( JavaCord.commandPrefix + " gamekick ", ""); + for (Player player2 : PlayerHandler.players) { + if (player2 != null) { + if (player2.playerName.equalsIgnoreCase(playerToKick)) { + Client c2 = (Client) player2; + event.getChannel().sendMessage( playerToKick+ " was kicked by " + event.getMessageAuthor().getDisplayName() + "."); + c2.disconnected = true; + c2.logout(true); + break; + } + } + } + } else { + event.getChannel().sendMessage("You do not have permission to perform this command"); + } + } + } +} \ No newline at end of file diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/MoveHome.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/MoveHome.java new file mode 100644 index 00000000..1dfba022 --- /dev/null +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/MoveHome.java @@ -0,0 +1,31 @@ +package com.rs2.integrations.discord.commands.admin; + +import com.rs2.GameConstants; +import com.rs2.game.players.Client; +import com.rs2.game.players.PlayerHandler; +import com.rs2.integrations.discord.JavaCord; +import org.javacord.api.event.message.MessageCreateEvent; +import org.javacord.api.listener.message.MessageCreateListener; + +public class MoveHome implements MessageCreateListener { + + @Override + public void onMessageCreate(MessageCreateEvent event) { + if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " movehome")) { + if (event.getMessageAuthor().isServerAdmin()) { + String teleToMe = event.getMessageContent().replace( JavaCord.commandPrefix + " movehome ", ""); + for (int i = 0; i < PlayerHandler.players.length; i++) { + if (PlayerHandler.players[i] != null) { + if (PlayerHandler.players[i].playerName.equalsIgnoreCase(teleToMe)) { + Client p = (Client) PlayerHandler.players[i]; + event.getChannel().sendMessage(p.playerName + " has been moved to Lumbridge."); + p.getPlayerAssistant().movePlayer(GameConstants.RESPAWN_X, GameConstants.RESPAWN_Y, 0); + } + } + } + } else { + event.getChannel().sendMessage("You do not have permission to perform this command"); + } + } + } +} \ No newline at end of file diff --git a/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/Update.java b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/Update.java new file mode 100644 index 00000000..f60bfd11 --- /dev/null +++ b/2006Scape Server/src/main/java/com/rs2/integrations/discord/commands/admin/Update.java @@ -0,0 +1,24 @@ +package com.rs2.integrations.discord.commands.admin; + +import com.rs2.game.players.PlayerHandler; +import com.rs2.integrations.discord.JavaCord; +import org.javacord.api.event.message.MessageCreateEvent; +import org.javacord.api.listener.message.MessageCreateListener; + +public class Update implements MessageCreateListener { + @Override + public void onMessageCreate(MessageCreateEvent event) { + if(event.getMessageAuthor().isServerAdmin()) { + String seconds = event.getMessageContent().replace(JavaCord.commandPrefix + " update ", ""); + if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " update")) { + PlayerHandler.updateSeconds = Integer.parseInt(seconds); + PlayerHandler.updateAnnounced = false; + PlayerHandler.updateRunning = true; + PlayerHandler.updateStartTime = System.currentTimeMillis(); + event.getChannel().sendMessage("Server update will begin in " + seconds + " seconds."); + } + } else { + event.getChannel().sendMessage("You do not have permission to perform this command"); + } + } +} \ No newline at end of file diff --git a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Commands.java b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Commands.java index ed441143..5297c45a 100644 --- a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Commands.java +++ b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Commands.java @@ -279,9 +279,6 @@ public class Commands implements PacketType { "::loc, ::pos, ::coord", "Get your current world position", "", - "::stuck", - "Return to Lumbridge when stuck", - "", "::randomtoggle", "Enable/Disable random events", "", @@ -316,17 +313,6 @@ public class Commands implements PacketType { } player.getPacketSender().showInterface(8134); break; - case "stuck": - if (player.getCombatAssistant().inCombat()) { - player.getPacketSender().sendMessage("You cannot do that while in combat."); - return; - } - player.getPlayerAssistant().movePlayer(SpellTeleport.LUMBRIDGE.getDestX(), SpellTeleport.LUMBRIDGE.getDestY(), 0); - player.getPacketSender().sendMessage("How did you manage that one..."); - player.getPacketSender().sendMessage("If it's bug related, please report on Github/Discord!"); - player.gfx100(80); - player.startAnimation(404); - break; case "randomtoggle": case "togglerandom": case "random":