Various Changes (#523)

* Discord Bot Update

Updated JavaCord To Latest
Changed Some Commands To No Longer Be World Specific
Added An "AdminCommands" Command

* Update Some Server Libs

* Added Purge & Pin/Un-Pin To Commands Discord Bot

* Fixed -dev & -no-crc Client Args

* Add Discord User ID Linking Support(Useless For Now)

* Added Support For User's Kicking Own Accounts Through Discord Bot

* Merge Website Integration Stuff Into One Var
This commit is contained in:
Josh Shippam
2022-01-27 01:32:17 +00:00
committed by GitHub
parent 63055f9181
commit 54a3e5cdec
20 changed files with 237 additions and 86 deletions
+12 -10
View File
@@ -15,6 +15,18 @@ public final class Main {
try { try {
// Process server/ip address to connect to // Process server/ip address to connect to
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
switch(args[i]) {
case "-dev" :
case "-local":
case "-offline":
ClientSettings.SERVER_IP = "localhost";
ClientSettings.CHECK_CRC = false;
break;
case "-no-crc":
case "-no-cache-crc":
ClientSettings.CHECK_CRC = false;
break;
}
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) { if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch(args[i]) { switch(args[i]) {
case "-s": case "-s":
@@ -22,16 +34,6 @@ public final class Main {
case "-ip": case "-ip":
ClientSettings.SERVER_IP = args[++i]; ClientSettings.SERVER_IP = args[++i];
break; break;
case "-no-crc":
case "-no-cache-crc":
ClientSettings.CHECK_CRC = false;
break;
case "-dev" :
case "-local":
case "-offline":
ClientSettings.SERVER_IP = "localhost";
ClientSettings.CHECK_CRC = false;
break;
} }
} }
} }
+1 -1
View File
@@ -19,5 +19,5 @@
"timeout": 60, "timeout": 60,
"item_requirements": true, "item_requirements": true,
"max_players": 200, "max_players": 200,
"website_total_characters_integration": false "website_integration": false
} }
+16 -16
View File
@@ -10,7 +10,7 @@
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
<kotlin.version>1.5.31</kotlin.version> <kotlin.version>1.6.0</kotlin.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental> <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties> </properties>
@@ -38,19 +38,19 @@
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId> <artifactId>jackson-annotations</artifactId>
<version>2.10.1</version> <version>2.13.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId> <artifactId>jackson-core</artifactId>
<version>2.10.1</version> <version>2.13.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
<version>2.10.5.1</version> <version>2.13.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.json/json --> <!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency> <dependency>
@@ -62,7 +62,7 @@
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>logging-interceptor</artifactId> <artifactId>logging-interceptor</artifactId>
<version>4.3.1</version> <version>4.9.3</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.mina/mina-core --> <!-- https://mvnrepository.com/artifact/org.apache.mina/mina-core -->
<dependency> <dependency>
@@ -74,25 +74,25 @@
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version> <version>8.0.25</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
<dependency> <dependency>
<groupId>io.netty</groupId> <groupId>io.netty</groupId>
<artifactId>netty-all</artifactId> <artifactId>netty-all</artifactId>
<version>4.1.44.Final</version> <version>4.1.72.Final</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.neovisionaries/nv-websocket-client --> <!-- https://mvnrepository.com/artifact/com.neovisionaries/nv-websocket-client -->
<dependency> <dependency>
<groupId>com.neovisionaries</groupId> <groupId>com.neovisionaries</groupId>
<artifactId>nv-websocket-client</artifactId> <artifactId>nv-websocket-client</artifactId>
<version>2.9</version> <version>2.14</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --> <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>
<version>4.3.1</version> <version>4.9.3</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.okio/okio --> <!-- https://mvnrepository.com/artifact/com.squareup.okio/okio -->
<dependency> <dependency>
@@ -104,19 +104,19 @@
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId>
<version>1.7.25</version> <version>1.7.32</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId> <artifactId>slf4j-simple</artifactId>
<version>1.7.25</version> <version>1.7.32</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId> <artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version> <version>1.7.32</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.ogce/xpp3 --> <!-- https://mvnrepository.com/artifact/org.ogce/xpp3 -->
<dependency> <dependency>
@@ -128,25 +128,25 @@
<dependency> <dependency>
<groupId>com.thoughtworks.xstream</groupId> <groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId> <artifactId>xstream</artifactId>
<version>1.4.17</version> <version>1.4.18</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.javacord/javacord-api --> <!-- https://mvnrepository.com/artifact/org.javacord/javacord-api -->
<dependency> <dependency>
<groupId>org.javacord</groupId> <groupId>org.javacord</groupId>
<artifactId>javacord-api</artifactId> <artifactId>javacord-api</artifactId>
<version>3.1.1</version> <version>3.3.2</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.javacord/javacord-core --> <!-- https://mvnrepository.com/artifact/org.javacord/javacord-core -->
<dependency> <dependency>
<groupId>org.javacord</groupId> <groupId>org.javacord</groupId>
<artifactId>javacord-core</artifactId> <artifactId>javacord-core</artifactId>
<version>3.1.1</version> <version>3.3.2</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
<version>2.8.6</version> <version>2.8.9</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.everythingrs</groupId> <groupId>com.everythingrs</groupId>
@@ -64,8 +64,8 @@ public class ConfigLoader {
GameConstants.VARIABLE_XP_RATES[i] = rates.optInt(i); GameConstants.VARIABLE_XP_RATES[i] = rates.optInt(i);
} }
} }
if(obj.has("website_total_characters_integration")) if(obj.has("website_integration"))
GameConstants.WEBSITE_TOTAL_CHARACTERS_INTEGRATION = obj.getBoolean("website_total_characters_integration"); GameConstants.WEBSITE_INTEGRATION = obj.getBoolean("website_integration");
} }
private static void initialize() { private static void initialize() {
@@ -26,6 +26,7 @@ public class GameConstants {
* VARIABLE_XP_RATE Allows Players To Choose An XP Rate Set In VARIABLE_XP_RATES * VARIABLE_XP_RATE Allows Players To Choose An XP Rate Set In VARIABLE_XP_RATES
* VARIABLE_XP_RATES Defines The XP Rates That Should Be Available To Players When VARIABLE_XP_RATES is true(Array Must Contain Four Entries) * VARIABLE_XP_RATES Defines The XP Rates That Should Be Available To Players When VARIABLE_XP_RATES is true(Array Must Contain Four Entries)
* XP_RATE Sets The XP Rate Multiplier For All Players/Skills If VARIABLE_XP_RATES is false * XP_RATE Sets The XP Rate Multiplier For All Players/Skills If VARIABLE_XP_RATES is false
* WEBSITE_INTEGRATION Enables/Disables Website Features(Total Accounts Registered & Players Online)
*/ */
public static String SERVER_NAME = "2006Scape", WEBSITE_LINK = "https://2006Scape.org"; public static String SERVER_NAME = "2006Scape", WEBSITE_LINK = "https://2006Scape.org";
public static int WORLD = 1, MAX_PLAYERS = 200, TIMEOUT = 60, SAVE_TIMER = 120, public static int WORLD = 1, MAX_PLAYERS = 200, TIMEOUT = 60, SAVE_TIMER = 120,
@@ -33,7 +34,7 @@ public class GameConstants {
public static boolean FILE_SERVER = true, SERVER_DEBUG = false, MEMBERS_ONLY = false, TUTORIAL_ISLAND = false, public static boolean FILE_SERVER = true, SERVER_DEBUG = false, MEMBERS_ONLY = false, TUTORIAL_ISLAND = false,
PARTY_ROOM_DISABLED = false, CLUES_ENABLED = true, ITEM_REQUIREMENTS = true, PARTY_ROOM_DISABLED = false, CLUES_ENABLED = true, ITEM_REQUIREMENTS = true,
ADMIN_CAN_TRADE = false, ADMIN_DROP_ITEMS = false, ADMIN_CAN_SELL_ITEMS = false, VARIABLE_XP_RATE = false, ADMIN_CAN_TRADE = false, ADMIN_DROP_ITEMS = false, ADMIN_CAN_SELL_ITEMS = false, VARIABLE_XP_RATE = false,
WEBSITE_TOTAL_CHARACTERS_INTEGRATION = false; WEBSITE_INTEGRATION = false;
public static int[] VARIABLE_XP_RATES = new int[] {1, 2, 5, 10}; public static int[] VARIABLE_XP_RATES = new int[] {1, 2, 5, 10};
public static double TEST_VERSION = 2.3, XP_RATE = 1.0; public static double TEST_VERSION = 2.3, XP_RATE = 1.0;
@@ -104,11 +104,10 @@ public class GameEngine {
} }
public static String ersSecret; public static String ersSecret;
public static int[] cannonsX = new int [50]; public static int[] cannonsX = new int[50];
public static int[] cannonsY = new int [50]; public static int[] cannonsY = new int[50];
public static String[] cannonsO = new String [50]; public static String[] cannonsO = new String[50];
public static boolean sleeping; public static boolean sleeping;
public static boolean updateServer = false; public static boolean updateServer = false;
public static long lastMassSave = System.currentTimeMillis(); public static long lastMassSave = System.currentTimeMillis();
@@ -138,12 +137,11 @@ public class GameEngine {
public static void main(java.lang.String[] args) public static void main(java.lang.String[] args)
throws NullPointerException, IOException { throws NullPointerException, IOException {
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) { if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch(args[i]) { switch (args[i]) {
case "-c": case "-c":
case "-config": case "-config":
try { try {
//TODO Load A Default Config File When Arg Not Used
System.out.println("Loading External Config.."); System.out.println("Loading External Config..");
ConfigLoader.loadSettings(args[++i]); ConfigLoader.loadSettings(args[++i]);
System.out.println("Loaded Config File " + args[i]); System.out.println("Loaded Config File " + args[i]);
@@ -161,9 +159,8 @@ public class GameEngine {
System.out.println("@@@@ DEBUG MODE IS ENABLED @@@@"); System.out.println("@@@@ DEBUG MODE IS ENABLED @@@@");
} }
if (!new File("data").exists()) if (!new File("data").exists()) {
{ System.out.println("************************************");
System.out.println("************************************");
System.out.println("************************************"); System.out.println("************************************");
System.out.println("************************************"); System.out.println("************************************");
System.out.println("WARNING: I could not find the /data folder. You are LIKELY running this in the wrong directory!"); System.out.println("WARNING: I could not find the /data folder. You are LIKELY running this in the wrong directory!");
@@ -183,7 +180,7 @@ public class GameEngine {
/** /**
* Starts The File Server If Enabled In GameConstants * Starts The File Server If Enabled In GameConstants
*/ */
if(GameConstants.FILE_SERVER) { if (GameConstants.FILE_SERVER) {
FileServer fs = new FileServer(); FileServer fs = new FileServer();
try { try {
fs.start(); fs.start();
@@ -194,7 +191,7 @@ public class GameEngine {
/** /**
* Start Integration Services * Start Integration Services
**/ **/
ConfigLoader.loadSecrets(); ConfigLoader.loadSecrets();
JavaCord.init(); JavaCord.init();
@@ -267,11 +264,11 @@ public class GameEngine {
objectHandler.process(); objectHandler.process();
MageTrainingArena.process(); MageTrainingArena.process();
CycleEventHandler.getSingleton().process(); CycleEventHandler.getSingleton().process();
PlayersOnlineWebsite.addUpdatePlayersOnlineTask(); if (GameConstants.WEBSITE_INTEGRATION) {
if(GameConstants.WEBSITE_TOTAL_CHARACTERS_INTEGRATION) { PlayersOnlineWebsite.addUpdatePlayersOnlineTask();
RegisteredAccsWebsite.addUpdateRegisteredUsersTask(); RegisteredAccsWebsite.addUpdateRegisteredUsersTask();
} }
if(DiscordActivity.playerCount) { if (DiscordActivity.playerCount) {
DiscordActivity.updateActivity(); DiscordActivity.updateActivity();
} }
if (System.currentTimeMillis() - lastMassSave > 300000) { if (System.currentTimeMillis() - lastMassSave > 300000) {
@@ -328,6 +325,4 @@ public class GameEngine {
public static boolean playerExecuted = false; public static boolean playerExecuted = false;
private static BufferedReader minuteFile; private static BufferedReader minuteFile;
} }
@@ -99,6 +99,7 @@ public abstract class Player {
public byte buffer[] = null; public byte buffer[] = null;
public String lastConnectedFrom; public String lastConnectedFrom;
public static int xpRate = 1; public static int xpRate = 1;
public String discordCode;
private Compost compost = new Compost(this); private Compost compost = new Compost(this);
private Allotments allotment = new Allotments(this); private Allotments allotment = new Allotments(this);
private Flowers flower = new Flowers(this); private Flowers flower = new Flowers(this);
@@ -171,6 +172,10 @@ public abstract class Player {
public void setXPRate(int xpRate) { this.xpRate = xpRate; } public void setXPRate(int xpRate) { this.xpRate = xpRate; }
public String getDiscordCode() { return discordCode; }
public void setDiscordCode(String code) { this.discordCode = code; }
public boolean isPreaching() { public boolean isPreaching() {
return preaching; return preaching;
} }
@@ -433,6 +433,9 @@ public class PlayerSave {
case "unlocked-bones-to-peaches": case "unlocked-bones-to-peaches":
player.unlockedBonesToPeaches = Boolean.parseBoolean(token2); player.unlockedBonesToPeaches = Boolean.parseBoolean(token2);
break; break;
case "discord-user-id":
player.discordCode = token2;
break;
} }
break; break;
case 3: case 3:
@@ -823,6 +826,8 @@ public class PlayerSave {
} }
characterfile.write("void = " + voidStatus.trim()); characterfile.write("void = " + voidStatus.trim());
characterfile.newLine(); characterfile.newLine();
characterfile.write("discord-user-id = " + player.discordCode);
characterfile.newLine();
characterfile.newLine(); characterfile.newLine();
/* EQUIPMENT */ /* EQUIPMENT */
@@ -2,9 +2,7 @@ package com.rs2.integrations.discord;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.integrations.discord.commands.*; import com.rs2.integrations.discord.commands.*;
import com.rs2.integrations.discord.commands.admin.GameKick; import com.rs2.integrations.discord.commands.admin.*;
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.DiscordApi;
import org.javacord.api.DiscordApiBuilder; import org.javacord.api.DiscordApiBuilder;
import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.channel.TextChannel;
@@ -39,9 +37,14 @@ public class JavaCord {
api.addListener(new Vote()); api.addListener(new Vote());
api.addListener(new Website()); api.addListener(new Website());
//Admin Commands //Admin Commands
api.addListener(new AdminCommands());
api.addListener(new GameKick()); api.addListener(new GameKick());
api.addListener(new MoveHome()); api.addListener(new MoveHome());
api.addListener(new Update()); api.addListener(new Update());
api.addListener(new Pin());
api.addListener(new Purge());
//api.addListener(new Link());
//api.addListener(new WelcomeMessage());
if(!DiscordActivity.playerCount) { if(!DiscordActivity.playerCount) {
api.updateActivity(GameConstants.WEBSITE_LINK); api.updateActivity(GameConstants.WEBSITE_LINK);
} }
@@ -0,0 +1,16 @@
package com.rs2.integrations.discord;
import com.rs2.GameConstants;
import org.javacord.api.event.server.member.ServerMemberJoinEvent;
import org.javacord.api.listener.server.member.ServerMemberJoinListener;
public class WelcomeMessage implements ServerMemberJoinListener {
@Override
public void onServerMemberJoin(ServerMemberJoinEvent event) {
String welcomeMessageChannel = "655143683083206667";
if (GameConstants.WORLD == 1) {
event.getApi().getTextChannelById(welcomeMessageChannel).get().
sendMessage("Hello " + event.getUser().getMentionTag() + " And Welcome To " + JavaCord.serverName + ".");
}
}
}
@@ -12,17 +12,19 @@ public class Commands implements MessageCreateListener {
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " commands")) { if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " commands")) {
event.getChannel().sendMessage("```fix" event.getChannel().sendMessage("```fix"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " forum/" + JavaCord.commandPrefix + " forums" "::forum/::forums"
+ System.lineSeparator() +
JavaCord.commandPrefix + " gamekick(if account id linked)"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " hiscores/" + JavaCord.commandPrefix + " highscores" JavaCord.commandPrefix + " hiscores/" + JavaCord.commandPrefix + " highscores"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " issues/" + JavaCord.commandPrefix + " bugs" "::issues/::bugs"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " online" JavaCord.commandPrefix + " online"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " vote" "::vote"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " website/" + JavaCord.commandPrefix + " site" "::website/::site"
+ "```"); + "```");
} }
} }
@@ -1,6 +1,5 @@
package com.rs2.integrations.discord.commands; package com.rs2.integrations.discord.commands;
import com.rs2.integrations.discord.JavaCord;
import org.javacord.api.entity.message.Message; import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
@@ -11,8 +10,10 @@ public class Forum implements MessageCreateListener {
@Override @Override
public void onMessageCreate(MessageCreateEvent event) { public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage(); Message message = event.getMessage();
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " forum") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " forums")) { if (message.getContent().equalsIgnoreCase("::forum") || message.getContent().equalsIgnoreCase("::forums")) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php"); if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php");
}
} }
} }
} }
@@ -1,6 +1,6 @@
package com.rs2.integrations.discord.commands; package com.rs2.integrations.discord.commands;
import com.rs2.integrations.discord.JavaCord; import com.rs2.GameConstants;
import org.javacord.api.entity.message.Message; import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
@@ -9,8 +9,10 @@ public class Issues implements MessageCreateListener {
@Override @Override
public void onMessageCreate(MessageCreateEvent event) { public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage(); Message message = event.getMessage();
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " issues") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix+ " bugs")) { if (message.getContent().equalsIgnoreCase("::issues") || message.getContent().equalsIgnoreCase("::bugs")) {
event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues"); if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues");
}
} }
} }
} }
@@ -1,6 +1,5 @@
package com.rs2.integrations.discord.commands; package com.rs2.integrations.discord.commands;
import com.rs2.integrations.discord.JavaCord;
import org.javacord.api.entity.message.Message; import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
@@ -11,8 +10,10 @@ public class Vote implements MessageCreateListener {
@Override @Override
public void onMessageCreate(MessageCreateEvent event) { public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage(); Message message = event.getMessage();
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " vote")) { if (message.getContent().equalsIgnoreCase("::vote")) {
if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage("Visit " + GameConstants.WEBSITE_LINK + "/vote.html then type \"::claimvote\" in-game to receive your reward!"); event.getChannel().sendMessage("Visit " + GameConstants.WEBSITE_LINK + "/vote.html then type \"::claimvote\" in-game to receive your reward!");
}
} }
} }
} }
@@ -1,6 +1,5 @@
package com.rs2.integrations.discord.commands; package com.rs2.integrations.discord.commands;
import com.rs2.integrations.discord.JavaCord;
import org.javacord.api.entity.message.Message; import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
@@ -11,8 +10,10 @@ public class Website implements MessageCreateListener {
@Override @Override
public void onMessageCreate(MessageCreateEvent event) { public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage(); Message message = event.getMessage();
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " website") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " site")) { if (message.getContent().equalsIgnoreCase("::website") || message.getContent().equalsIgnoreCase("::site")) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK); if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK);
}
} }
} }
} }
@@ -0,0 +1,31 @@
package com.rs2.integrations.discord.commands.admin;
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;
public class AdminCommands implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " admincommands")) {
if (event.getMessageAuthor().isServerAdmin()) {
event.getChannel().sendMessage("```fix"
+ System.lineSeparator() +
"::pin/::unpin(Pins/Un-Pins The Replied Mesage)"
+ System.lineSeparator() +
"::purge(Purges The Specified Amount Of Messages From Discord Channel)"
+ System.lineSeparator() +
JavaCord.commandPrefix + " gamekick(Kicks The Specified Player From The GameServer)"
+ System.lineSeparator() +
JavaCord.commandPrefix + " movehome(Moves The Specified Player To Lumbridge)"
+ System.lineSeparator() +
JavaCord.commandPrefix + " update(Triggers A GameServer Update In The Specified Amount Of Seconds)"
+ "```");
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
}
}
}
}
@@ -7,25 +7,27 @@ import com.rs2.integrations.discord.JavaCord;
import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
import java.util.Objects;
public class GameKick implements MessageCreateListener { public class GameKick implements MessageCreateListener {
@Override @Override
public void onMessageCreate(MessageCreateEvent event) { public void onMessageCreate(MessageCreateEvent event) {
if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " gamekick")) { if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " gamekick")) {
if (event.getMessageAuthor().isServerAdmin()) { String playerToKick = event.getMessageContent().replace( JavaCord.commandPrefix + " gamekick ", "");
String playerToKick = event.getMessageContent().replace( JavaCord.commandPrefix + " gamekick ", ""); for (Player player2 : PlayerHandler.players) {
for (Player player2 : PlayerHandler.players) { if (player2 != null) {
if (player2 != null) { if (player2.playerName.equalsIgnoreCase(playerToKick)) {
if (player2.playerName.equalsIgnoreCase(playerToKick)) { Client c2 = (Client) player2;
Client c2 = (Client) player2; if (event.getMessageAuthor().isServerAdmin() || Objects.equals(event.getMessageAuthor().getIdAsString(), c2.discordCode)) {
event.getChannel().sendMessage( playerToKick+ " was kicked by " + event.getMessageAuthor().getDisplayName() + "."); event.getChannel().sendMessage(playerToKick + " was kicked by " + event.getMessageAuthor().getDisplayName() + ".");
c2.disconnected = true; c2.disconnected = true;
c2.logout(true); c2.logout(true);
break; } else {
event.getChannel().sendMessage("You do not have permission to perform this command");
} }
break;
} }
} }
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
} }
} }
} }
@@ -0,0 +1,39 @@
package com.rs2.integrations.discord.commands.admin;
import com.rs2.GameConstants;
import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;
public class Pin implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
if (message.getContent().startsWith("::pin")) {
if (event.getMessageAuthor().isServerAdmin()) {
if(GameConstants.WORLD == 1) {
if (message.getReferencedMessage().isPresent()) {
Message messageToPin = message.getReferencedMessage().get();
messageToPin.pin();
}
}
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
}
}
if (message.getContent().startsWith("::unpin")) {
if (event.getMessageAuthor().isServerAdmin()) {
if(GameConstants.WORLD == 1) {
if (message.getReferencedMessage().isPresent()) {
Message messageToUnpin = message.getReferencedMessage().get();
messageToUnpin.unpin();
event.getChannel().sendMessage("Un-Pinned Message: " + messageToUnpin.getLink());
}
}
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
}
}
}
}
@@ -0,0 +1,40 @@
package com.rs2.integrations.discord.commands.admin;
import com.rs2.GameConstants;
import org.javacord.api.entity.message.Message;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
public class Purge implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
if (message.getContent().startsWith("::purge")) {
if (event.getMessageAuthor().isServerAdmin()) {
if(GameConstants.WORLD == 1) {
int messagesToPurge = Integer.parseInt(event.getMessageContent().replace("::purge ", ""));
if (messagesToPurge > 50) {
event.getChannel().sendMessage("Can't purge more than 50 messages at once.");
return;
}
try {
event.getChannel().sendMessage("Purging " + messagesToPurge + " Messages.");
message.getMessagesBefore(messagesToPurge).get().deleteAll();
Message Purge = message.getMessagesAfter(1).get().getNewestMessage().get();
Purge.edit("Purged " + messagesToPurge + " Messages.");
TimeUnit.SECONDS.sleep(5);
message.delete();
Purge.delete();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
}
}
}
}
@@ -44,6 +44,11 @@ public class Commands implements PacketType {
public static void playerCommands(Player player, String playerCommand, String[] arguments) { public static void playerCommands(Player player, String playerCommand, String[] arguments) {
switch (playerCommand.toLowerCase()) { switch (playerCommand.toLowerCase()) {
case "link":
player.setDiscordCode(arguments[0]);
player.getPacketSender().sendMessage("Your Account has now been linked with Discord User ID:");
player.getPacketSender().sendMessage(player.getDiscordCode());
break;
case "myxprate": case "myxprate":
case "checkxprate": case "checkxprate":
if(GameConstants.VARIABLE_XP_RATE) { if(GameConstants.VARIABLE_XP_RATE) {