mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-02 16:49:03 +00:00
Second World Setup (#518)
* Start Setting Up Second World Added World Number To Login Message Added World Number To Login Interface Made World 2 Listen On Different Port Made Client Connect To 43597 For World 2 * Small Cleanup For World 2 Support Calculate Port For World Based On World Number Use Existing World int For World In Server * Woops Wrong Ports * Set Server Port After Loading Config * Add xpRate Var & Include With XPRate Calculations * Add -w/-world arg to client * Add XP Rate Multiplier For Non-Bot Worlds * More Multi World Stuff Update Integrations(Discord Bot/Website Stuff) For Multiple Worlds Added More XP Rate Dialogue Stuff * Add Kick Command To Discord Bot & Fix Type In ConfigLoader * Create/Use commandPrefix Var For Discord Bot * Small Fixup For World 2 Renamed BOT_WORLD to VARIABLE_XP_RATE Fixed Dialogue/Message grammar Added a check for VARIABLE_XP_RATES to ::xprate command * 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 * Minor fixup * 43597 → 43598 * Fix XP Rate Multiplier & add ::xprate to cooamnds list if enabled * Use Either VARIABLE_SKILL_RATE OR XP_RATE Not Both TODO(Convert Player.xpRate Into An Array For Easier Rate Changes) * Create/Use PLAYER_XP_RATES For Easier Rate Changes * Fixed Abusive Client Command Privileges & Added myxprate/checkxprate * Allow Loading VARIABLE_XP_RATES & PLAYER_XP_RATES From Config * Properly Update Client Title Logo If The Cache Has Already Been Downloaded You Will Need To Delete It & Let The Client ReDownload It * Fix Cache CRC Checks For The Client(Allows Cache To Actually Check For Updates) * Add -no-crc & -dev Arguments To Client * Fix Naming For Some Vars * Make CHECK_CRC Description More Descriptive * Fix More Var Descriptions * Cleanup Unused GameConstants Vars & Add More Vars To ConfigLoader Co-authored-by: Danial <admin@redsparr0w.com>
This commit is contained in:
@@ -6,8 +6,8 @@ import java.math.BigInteger;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class ClientSettings {
|
public class ClientSettings {
|
||||||
|
|
||||||
public static String SNOW_MONTH = ".12";
|
public static String SNOW_MONTH = ".12";
|
||||||
/**
|
/**
|
||||||
* The Servers Name
|
* The Servers Name
|
||||||
*/
|
*/
|
||||||
@@ -18,12 +18,24 @@ public class ClientSettings {
|
|||||||
public final static String SERVER_WEBSITE = "www.2006Scape.org";
|
public final static String SERVER_WEBSITE = "www.2006Scape.org";
|
||||||
/**
|
/**
|
||||||
* The Servers Ip
|
* The Servers Ip
|
||||||
*
|
|
||||||
* You don't have to change this, the client will automatically connect to the server
|
* You don't have to change this, the client will automatically connect to the server
|
||||||
* on localhost (Assuming you're running Client and LocalGame respectively)
|
* on localhost (Assuming you're running Client and LocalGame respectively)
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public static String SERVER_IP = "www.2006Scape.org";
|
public static String SERVER_IP = "www.2006Scape.org";
|
||||||
|
/**
|
||||||
|
* The Servers World
|
||||||
|
* This Determines The Port The Server Will Connect On
|
||||||
|
* World 1 Will Connect On Port 43594
|
||||||
|
* World 2 Will Connect On Port 43598
|
||||||
|
*/
|
||||||
|
public static int SERVER_WORLD = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables/Disables FileServer CRC Checking For Cache Updates
|
||||||
|
* FileServer Must Be Running Before Starting The Client If This Is True
|
||||||
|
*/
|
||||||
|
public static boolean CHECK_CRC = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Npc Bits for the Server
|
* The Npc Bits for the Server
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import java.text.DecimalFormat;
|
|||||||
import java.text.DecimalFormatSymbols;
|
import java.text.DecimalFormatSymbols;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.zip.CRC32;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
|
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
|
||||||
@@ -3429,11 +3430,12 @@ public class Game extends RSApplet {
|
|||||||
}
|
}
|
||||||
} catch (Exception _ex) {
|
} catch (Exception _ex) {
|
||||||
}
|
}
|
||||||
if (abyte0 != null) {
|
if(abyte0 != null && ClientSettings.CHECK_CRC) {
|
||||||
// aCRC32_930.reset();
|
aCRC32_930.reset();
|
||||||
// aCRC32_930.update(abyte0);
|
aCRC32_930.update(abyte0);
|
||||||
// int i1 = (int)aCRC32_930.getValue();
|
int i1 = (int)aCRC32_930.getValue();
|
||||||
// if(i1 != j)
|
if(i1 != j)
|
||||||
|
abyte0 = null;
|
||||||
}
|
}
|
||||||
if (abyte0 != null) {
|
if (abyte0 != null) {
|
||||||
StreamLoader streamLoader = new StreamLoader(abyte0);
|
StreamLoader streamLoader = new StreamLoader(abyte0);
|
||||||
@@ -3480,12 +3482,20 @@ public class Game extends RSApplet {
|
|||||||
} catch (Exception _ex) {
|
} catch (Exception _ex) {
|
||||||
decompressors[0] = null;
|
decompressors[0] = null;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* if(abyte0 != null) { aCRC32_930.reset();
|
if(abyte0 != null && ClientSettings.CHECK_CRC)
|
||||||
* aCRC32_930.update(abyte0); int i3 =
|
{
|
||||||
* (int)aCRC32_930.getValue(); if(i3 != j) { abyte0 = null;
|
aCRC32_930.reset();
|
||||||
* j1++; s2 = "Checksum error: " + i3; } }
|
aCRC32_930.update(abyte0);
|
||||||
*/
|
int i3 = (int)aCRC32_930.getValue();
|
||||||
|
if(i3 != j)
|
||||||
|
{
|
||||||
|
abyte0 = null;
|
||||||
|
j1++;
|
||||||
|
s2 = "Checksum error: " + i3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} catch (IOException ioexception) {
|
} catch (IOException ioexception) {
|
||||||
if (s2.equals("Unknown error")) {
|
if (s2.equals("Unknown error")) {
|
||||||
s2 = "Connection error";
|
s2 = "Connection error";
|
||||||
@@ -5021,12 +5031,12 @@ public class Game extends RSApplet {
|
|||||||
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
|
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
|
||||||
graphicsEnabled = !graphicsEnabled;
|
graphicsEnabled = !graphicsEnabled;
|
||||||
}
|
}
|
||||||
if (myPrivilege >= 0) {
|
if (myPrivilege >= 2) {
|
||||||
if(inputString.equals("::noclip"))
|
if (inputString.equals("::noclip"))
|
||||||
for(int k1 = 0; k1 < 4; k1++)
|
for (int k1 = 0; k1 < 4; k1++)
|
||||||
for(int i2 = 1; i2 < 103; i2++)
|
for (int i2 = 1; i2 < 103; i2++)
|
||||||
for(int k2 = 1; k2 < 103; k2++)
|
for (int k2 = 1; k2 < 103; k2++)
|
||||||
aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0;
|
aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0;
|
||||||
if (inputString.equals("::clientdrop")) {
|
if (inputString.equals("::clientdrop")) {
|
||||||
dropClient();
|
dropClient();
|
||||||
}
|
}
|
||||||
@@ -5060,6 +5070,7 @@ public class Game extends RSApplet {
|
|||||||
onDemandFetcher.method563((byte) 1, 2, j1);
|
onDemandFetcher.method563((byte) 1, 2, j1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (inputString.startsWith("::dd")) {
|
if (inputString.startsWith("::dd")) {
|
||||||
String[] args = inputString.split(" ");
|
String[] args = inputString.split(" ");
|
||||||
int distance = 25;
|
int distance = 25;
|
||||||
@@ -5078,7 +5089,6 @@ public class Game extends RSApplet {
|
|||||||
if (inputString.equals("::dataon")) {
|
if (inputString.equals("::dataon")) {
|
||||||
showInfo = !showInfo;
|
showInfo = !showInfo;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (inputString.startsWith("::")) {
|
if (inputString.startsWith("::")) {
|
||||||
stream.createFrame(103);
|
stream.createFrame(103);
|
||||||
stream.writeWordBigEndian(inputString.length() - 1);
|
stream.writeWordBigEndian(inputString.length() - 1);
|
||||||
@@ -5927,7 +5937,7 @@ public class Game extends RSApplet {
|
|||||||
loginMessage2 = "Connecting to server...";
|
loginMessage2 = "Connecting to server...";
|
||||||
drawLoginScreen(true);
|
drawLoginScreen(true);
|
||||||
}
|
}
|
||||||
socketStream = new RSSocket(this, openSocket(43594 + portOff));
|
socketStream = new RSSocket(this, openSocket((ClientSettings.SERVER_WORLD == 1) ? 43594 : 43596 + ClientSettings.SERVER_WORLD + portOff));
|
||||||
long l = TextClass.longForName(s);
|
long l = TextClass.longForName(s);
|
||||||
int i = (int) (l >> 16 & 31L);
|
int i = (int) (l >> 16 & 31L);
|
||||||
stream.currentOffset = 0;
|
stream.currentOffset = 0;
|
||||||
@@ -12046,8 +12056,9 @@ public class Game extends RSApplet {
|
|||||||
bigX = new int[4000];
|
bigX = new int[4000];
|
||||||
bigY = new int[4000];
|
bigY = new int[4000];
|
||||||
anInt1289 = -1;
|
anInt1289 = -1;
|
||||||
|
aCRC32_930 = new CRC32();
|
||||||
}
|
}
|
||||||
|
public CRC32 aCRC32_930;
|
||||||
public static String server;
|
public static String server;
|
||||||
public int ignoreCount;
|
public int ignoreCount;
|
||||||
public long aLong824;
|
public long aLong824;
|
||||||
|
|||||||
@@ -8,10 +8,7 @@ public final class Main {
|
|||||||
DEAR DEVELOPER!
|
DEAR DEVELOPER!
|
||||||
|
|
||||||
If you want to run the client locally, the easiest way to do that is run the class "Client.java" instead!
|
If you want to run the client locally, the easiest way to do that is run the class "Client.java" instead!
|
||||||
|
|
||||||
If you REALLY want to use this class, add program arguments "-s localhost".
|
If you REALLY want to use this class, add program arguments "-s localhost".
|
||||||
But seriously, Client.java is just a copy-paste of this class and does it locally. Use that instead!
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@@ -25,6 +22,16 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,6 +52,10 @@ public final class Main {
|
|||||||
case "-password":
|
case "-password":
|
||||||
game.myPassword = args[++i];
|
game.myPassword = args[++i];
|
||||||
break;
|
break;
|
||||||
|
case "-w":
|
||||||
|
case "-world":
|
||||||
|
ClientSettings.SERVER_WORLD = Integer.parseInt(args[++i]);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
"server_debug": false,
|
"server_debug": false,
|
||||||
"file_server": true,
|
"file_server": true,
|
||||||
"world_id": 1,
|
"world_id": 1,
|
||||||
|
"xp_rate": 1.0,
|
||||||
|
"variable_xp_rate": false,
|
||||||
|
"variable_xp_rates": [1, 2, 5, 10],
|
||||||
"members_only": false,
|
"members_only": false,
|
||||||
"tutorial_island_enabled": false,
|
"tutorial_island_enabled": false,
|
||||||
"party_room_enabled": true,
|
"party_room_enabled": true,
|
||||||
@@ -15,6 +18,6 @@
|
|||||||
"save_timer": 120,
|
"save_timer": 120,
|
||||||
"timeout": 60,
|
"timeout": 60,
|
||||||
"item_requirements": true,
|
"item_requirements": true,
|
||||||
"xp_rate": 1.0,
|
"max_players": 200,
|
||||||
"max_players": 200
|
"website_total_characters_integration": false
|
||||||
}
|
}
|
||||||
BIN
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
{"token":""}
|
|
||||||
@@ -3,6 +3,7 @@ package com.rs2;
|
|||||||
import com.rs2.integrations.PlayersOnlineWebsite;
|
import com.rs2.integrations.PlayersOnlineWebsite;
|
||||||
import com.rs2.integrations.RegisteredAccsWebsite;
|
import com.rs2.integrations.RegisteredAccsWebsite;
|
||||||
import com.rs2.integrations.discord.JavaCord;
|
import com.rs2.integrations.discord.JavaCord;
|
||||||
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@@ -17,6 +18,8 @@ public class ConfigLoader {
|
|||||||
|
|
||||||
if(obj.has("server_name"))
|
if(obj.has("server_name"))
|
||||||
GameConstants.SERVER_NAME = obj.getString("server_name");
|
GameConstants.SERVER_NAME = obj.getString("server_name");
|
||||||
|
if(obj.has("server_test_version"))
|
||||||
|
GameConstants.TEST_VERSION = obj.getDouble("server_test_version");
|
||||||
if(obj.has("website_link"))
|
if(obj.has("website_link"))
|
||||||
GameConstants.WEBSITE_LINK = obj.getString("website_link");
|
GameConstants.WEBSITE_LINK = obj.getString("website_link");
|
||||||
if(obj.has("debug"))
|
if(obj.has("debug"))
|
||||||
@@ -49,10 +52,20 @@ public class ConfigLoader {
|
|||||||
GameConstants.TIMEOUT = obj.getInt("timeout");
|
GameConstants.TIMEOUT = obj.getInt("timeout");
|
||||||
if(obj.has("item_requirements"))
|
if(obj.has("item_requirements"))
|
||||||
GameConstants.ITEM_REQUIREMENTS = obj.getBoolean("item_requirements");
|
GameConstants.ITEM_REQUIREMENTS = obj.getBoolean("item_requirements");
|
||||||
|
if(obj.has("variable_xp_rate"))
|
||||||
|
GameConstants.VARIABLE_XP_RATE = obj.getBoolean("variable_xp_rate");
|
||||||
if(obj.has("xp_rate"))
|
if(obj.has("xp_rate"))
|
||||||
GameConstants.XP_RATE = obj.getDouble("xp_rate");
|
GameConstants.XP_RATE = obj.getDouble("xp_rate");
|
||||||
if(obj.has("max_players"))
|
if(obj.has("max_players"))
|
||||||
GameConstants.MAX_PLAYERS = obj.getInt("max_players");
|
GameConstants.MAX_PLAYERS = obj.getInt("max_players");
|
||||||
|
if (obj.has("variable_xp_rates")) {
|
||||||
|
JSONArray rates = obj.optJSONArray("variable_xp_rates");
|
||||||
|
for (int i = 0; i < rates.length(); ++i) {
|
||||||
|
GameConstants.VARIABLE_XP_RATES[i] = rates.optInt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(obj.has("website_total_characters_integration"))
|
||||||
|
GameConstants.WEBSITE_TOTAL_CHARACTERS_INTEGRATION = obj.getBoolean("website_total_characters_integration");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void initialize() {
|
private static void initialize() {
|
||||||
@@ -71,7 +84,7 @@ public class ConfigLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void loadSecrets() throws IOException {
|
public static void loadSecrets() throws IOException {
|
||||||
if (!new File("data/Secrets.json").exists()) {
|
if (!new File("data/secrets.json").exists()) {
|
||||||
initialize();
|
initialize();
|
||||||
System.out.println("Please open \"data/secrets.json\" file and enter your discord token bot there!");
|
System.out.println("Please open \"data/secrets.json\" file and enter your discord token bot there!");
|
||||||
System.out.println("Please open \"data/secrets.json\" file and enter your Website Password there!");
|
System.out.println("Please open \"data/secrets.json\" file and enter your Website Password there!");
|
||||||
@@ -88,7 +101,7 @@ public class ConfigLoader {
|
|||||||
JavaCord.token = obj.getString("bot-token");
|
JavaCord.token = obj.getString("bot-token");
|
||||||
if(obj.has("websitepass"))
|
if(obj.has("websitepass"))
|
||||||
PlayersOnlineWebsite.password = obj.getString("websitepass");
|
PlayersOnlineWebsite.password = obj.getString("websitepass");
|
||||||
RegisteredAccsWebsite.password = obj.getString("websitepass");
|
RegisteredAccsWebsite.password = obj.getString("websitepass");
|
||||||
if(obj.has("erssecret"))
|
if(obj.has("erssecret"))
|
||||||
GameEngine.ersSecret = obj.getString("erssecret");
|
GameEngine.ersSecret = obj.getString("erssecret");
|
||||||
|
|
||||||
|
|||||||
@@ -16,38 +16,35 @@ public class GameConstants {
|
|||||||
* FILE_SERVER Sets Whether The FileServer Should Run With The Server
|
* FILE_SERVER Sets Whether The FileServer Should Run With The Server
|
||||||
* SERVER_DEBUG Sets Whether The Server Should Start In Debug Mode
|
* SERVER_DEBUG Sets Whether The Server Should Start In Debug Mode
|
||||||
* MEMBERS_ONLY Sets Whether The World Is Members Only
|
* MEMBERS_ONLY Sets Whether The World Is Members Only
|
||||||
* TUTORIAL_ISLAND Sets Enables/Disables Tutorial Island For Players On First Login
|
* TUTORIAL_ISLAND Enables/Disables Tutorial Island For Players On First Login
|
||||||
* PARTY_ROOM_DISABLED Enables/Disables The Party Room Should Be Disabled
|
* PARTY_ROOM_DISABLED Enables/Disables The Party Room Should Be Disabled
|
||||||
* CLUES_ENABLED Enables/Disables Clue Scrolls
|
* CLUES_ENABLED Enables/Disables Clue Scrolls
|
||||||
* ITEM_REQUIREMENTS Enables/Disables Item Requirements for All Players
|
* ITEM_REQUIREMENTS Enables/Disables Item Requirements for All Players
|
||||||
* ADMIN_CAN_TRADE Defines Whether Admins Can Trade
|
* ADMIN_CAN_TRADE Defines Whether Admins Can Trade
|
||||||
* ADMIN_DROP_ITEMS Defines Whether Admins Can Drop Items
|
* ADMIN_DROP_ITEMS Defines Whether Admins Can Drop Items
|
||||||
* ADMIN_CAN_SELL_ITEMS Defines Whether Admins Can Sell Items
|
* ADMIN_CAN_SELL_ITEMS Defines Whether Admins Can Sell Items
|
||||||
* XP_RATE Sets The XP Rate Multiplier For All Players/Skills
|
* 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)
|
||||||
|
* XP_RATE Sets The XP Rate Multiplier For All Players/Skills If VARIABLE_XP_RATES is false
|
||||||
*/
|
*/
|
||||||
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,
|
||||||
RESPAWN_X = 3222, RESPAWN_Y = 3218;
|
RESPAWN_X = 3222, RESPAWN_Y = 3218;
|
||||||
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;
|
ADMIN_CAN_TRADE = false, ADMIN_DROP_ITEMS = false, ADMIN_CAN_SELL_ITEMS = false, VARIABLE_XP_RATE = false,
|
||||||
public static double XP_RATE = 1;
|
WEBSITE_TOTAL_CHARACTERS_INTEGRATION = false;
|
||||||
|
public static int[] VARIABLE_XP_RATES = new int[] {1, 2, 5, 10};
|
||||||
|
public static double TEST_VERSION = 2.3, XP_RATE = 1.0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Variables Below Should Only Be Changed If You Understand What You Are Doing
|
* The Variables Below Should Only Be Changed If You Understand What You Are Doing
|
||||||
*/
|
*/
|
||||||
|
public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE,
|
||||||
public final static String SERVER_VERSION = "Server Stage v " + GameConstants.TEST_VERSION + ".";
|
IPS_ALLOWED = 250, CONNECTION_DELAY = 100;
|
||||||
public final static boolean WEBSITE_TOTAL_CHARACTERS_INTEGRATION = false;
|
|
||||||
public final static double TEST_VERSION = 2.3;
|
|
||||||
|
|
||||||
public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE, CLIENT_VERSION = 999999,
|
public final static boolean sendServerPackets = false, SOUND = true, GUILDS = true;
|
||||||
IPS_ALLOWED = 250, CONNECTION_DELAY = 100,
|
|
||||||
MESSAGE_DELAY = 6000, REQ_AMOUNT = 150;
|
|
||||||
|
|
||||||
public final static boolean sendServerPackets = false, SOUND = true, GUILDS = true,
|
|
||||||
PRINT_OBJECT_ID = false, EXPERIMENTS = false;
|
|
||||||
|
|
||||||
public static int[] SIDEBARS = { 2423, 3917, 638, 3213, 1644, 5608, 1151,
|
public static int[] SIDEBARS = { 2423, 3917, 638, 3213, 1644, 5608, 1151,
|
||||||
18128, 5065, 5715, 2449, 904, 147, 962 };
|
18128, 5065, 5715, 2449, 904, 147, 962 };
|
||||||
@@ -63,10 +60,6 @@ public class GameConstants {
|
|||||||
|
|
||||||
public final static int NO_TELEPORT_WILD_LEVEL = 20;
|
public final static int NO_TELEPORT_WILD_LEVEL = 20;
|
||||||
|
|
||||||
public final static int CASTLE_WARS_X = 2439;
|
|
||||||
|
|
||||||
public final static int CASTLE_WARS_Y = 3087;
|
|
||||||
|
|
||||||
public final static int NPC_RANDOM_WALK_DISTANCE = 5;
|
public final static int NPC_RANDOM_WALK_DISTANCE = 5;
|
||||||
|
|
||||||
public final static int NPC_FOLLOW_DISTANCE = 10;
|
public final static int NPC_FOLLOW_DISTANCE = 10;
|
||||||
|
|||||||
@@ -131,11 +131,7 @@ public class GameEngine {
|
|||||||
private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||||
private final static Lock lock = new ReentrantLock();
|
private final static Lock lock = new ReentrantLock();
|
||||||
|
|
||||||
/**
|
|
||||||
* Port and Cycle rate.
|
|
||||||
*/
|
|
||||||
static {
|
static {
|
||||||
serverlistenerPort = 43594;
|
|
||||||
shutdownServer = false;
|
shutdownServer = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,6 +154,7 @@ public class GameEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
serverlistenerPort = (GameConstants.WORLD == 1) ? 43594 : 43596 + GameConstants.WORLD;
|
||||||
|
|
||||||
System.out.println("Starting game engine..");
|
System.out.println("Starting game engine..");
|
||||||
if (GameConstants.SERVER_DEBUG) {
|
if (GameConstants.SERVER_DEBUG) {
|
||||||
|
|||||||
@@ -6137,10 +6137,14 @@ public class DialogueHandler {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 3116:
|
case 3116:
|
||||||
player.getPacketSender().showInterface(3559);
|
if(GameConstants.VARIABLE_XP_RATE) {
|
||||||
player.canChangeAppearance = true;
|
player.getDialogueHandler().sendDialogues(10001, -1);
|
||||||
player.closeTutorialInterface = true;
|
} else {
|
||||||
player.nextChat = 0;
|
player.getPacketSender().showInterface(3559);
|
||||||
|
player.canChangeAppearance = true;
|
||||||
|
player.closeTutorialInterface = true;
|
||||||
|
player.nextChat = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3117:
|
case 3117:
|
||||||
@@ -7594,6 +7598,34 @@ public class DialogueHandler {
|
|||||||
);
|
);
|
||||||
player.dialogueAction = 10000;
|
player.dialogueAction = 10000;
|
||||||
break;
|
break;
|
||||||
|
case 10001:
|
||||||
|
sendNpcChat(2244, ChatEmotes.HAPPY_JOYFUL, "Please select the XP rate you'd like.", "this can be increased, but not decreased later on.");
|
||||||
|
player.nextChat = 10002;
|
||||||
|
break;
|
||||||
|
case 10002:
|
||||||
|
sendOption("x" + GameConstants.VARIABLE_XP_RATES[0], "x" + GameConstants.VARIABLE_XP_RATES[1], "x" + GameConstants.VARIABLE_XP_RATES[2], "x" + GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.dialogueAction = 10002;
|
||||||
|
break;
|
||||||
|
case 10003:
|
||||||
|
sendNpcChat(2244, ChatEmotes.HAPPY_JOYFUL, "Are you sure x" + player.getXPRate() + " is the XP rate you'd like?");
|
||||||
|
player.nextChat = 10004;
|
||||||
|
break;
|
||||||
|
case 10004:
|
||||||
|
sendOption("Yes", "No");
|
||||||
|
player.dialogueAction = 10004;
|
||||||
|
break;
|
||||||
|
case 10005:
|
||||||
|
sendOption("x" + GameConstants.VARIABLE_XP_RATES[1], "x" + GameConstants.VARIABLE_XP_RATES[2], "x" + GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.dialogueAction = 10005;
|
||||||
|
break;
|
||||||
|
case 10006:
|
||||||
|
sendOption("x" + GameConstants.VARIABLE_XP_RATES[2], "x" + GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.dialogueAction = 10006;
|
||||||
|
break;
|
||||||
|
case 10007:
|
||||||
|
sendOption("x" + GameConstants.VARIABLE_XP_RATES[3], "Don't Change");
|
||||||
|
player.dialogueAction = 10007;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void chatboxText(String text, String text1, String text2,
|
public void chatboxText(String text, String text1, String text2,
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ public class DialogueOptions {
|
|||||||
player.getDialogueHandler().sendStatement("You summoned your shop!");
|
player.getDialogueHandler().sendStatement("You summoned your shop!");
|
||||||
BotHandler.playerShop(player);
|
BotHandler.playerShop(player);
|
||||||
return;
|
return;
|
||||||
|
case 10005:
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[1]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you can increase your rate in the future by using");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
player.dialogueAction = 0;
|
player.dialogueAction = 0;
|
||||||
player.getPacketSender().closeAllWindows();
|
player.getPacketSender().closeAllWindows();
|
||||||
@@ -192,6 +198,12 @@ public class DialogueOptions {
|
|||||||
player.getDialogueHandler().sendStatement("You close your shop!");
|
player.getDialogueHandler().sendStatement("You close your shop!");
|
||||||
BotHandler.closeShop(player);
|
BotHandler.closeShop(player);
|
||||||
return;
|
return;
|
||||||
|
case 10005:
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[2]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you can increase your rate in the future by using");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
player.dialogueAction = 0;
|
player.dialogueAction = 0;
|
||||||
player.getPacketSender().closeAllWindows();
|
player.getPacketSender().closeAllWindows();
|
||||||
@@ -283,6 +295,11 @@ public class DialogueOptions {
|
|||||||
player.getDialogueHandler().sendStatement("You withdraw " + Bot.formatSellPrice(BotHandler.checkCoins(player)) + " from your shop!");
|
player.getDialogueHandler().sendStatement("You withdraw " + Bot.formatSellPrice(BotHandler.checkCoins(player)) + " from your shop!");
|
||||||
BotHandler.takeCoins(player);
|
BotHandler.takeCoins(player);
|
||||||
return;
|
return;
|
||||||
|
case 10005:
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you now have the highest XP rate.");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
player.dialogueAction = 0;
|
player.dialogueAction = 0;
|
||||||
player.getPacketSender().closeAllWindows();
|
player.getPacketSender().closeAllWindows();
|
||||||
@@ -618,11 +635,37 @@ public class DialogueOptions {
|
|||||||
player.getDialogueHandler().sendDialogues(3586, player.npcType);
|
player.getDialogueHandler().sendDialogues(3586, player.npcType);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (player.dialogueAction == 7559)
|
else if (player.dialogueAction == 7559) {
|
||||||
{
|
|
||||||
player.getDialogueHandler().sendDialogues(3864, player.npcType);
|
player.getDialogueHandler().sendDialogues(3864, player.npcType);
|
||||||
return;
|
return;
|
||||||
}
|
} else if (player.dialogueAction == 10004) {
|
||||||
|
if(!player.closeTutorialInterface) {
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you can increase your rate in the future by using");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
player.getPacketSender().showInterface(3559);
|
||||||
|
player.canChangeAppearance = true;
|
||||||
|
player.closeTutorialInterface = true;
|
||||||
|
return;
|
||||||
|
} else if (player.getXPRate() != + GameConstants.VARIABLE_XP_RATES[3]) {
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you can increase your rate in the future by using");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you now have the highest XP rate.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if(player.dialogueAction == 10006) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[2]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you can increase your rate in the future by using");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
|
} else if(player.dialogueAction == 10007) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you now have the highest XP rate.");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
|
}
|
||||||
player.dialogueAction = 0;
|
player.dialogueAction = 0;
|
||||||
player.getPacketSender().closeAllWindows();
|
player.getPacketSender().closeAllWindows();
|
||||||
break;
|
break;
|
||||||
@@ -848,6 +891,15 @@ public class DialogueOptions {
|
|||||||
{
|
{
|
||||||
player.getDialogueHandler().sendDialogues(3865, player.npcType);
|
player.getDialogueHandler().sendDialogues(3865, player.npcType);
|
||||||
return;
|
return;
|
||||||
|
} else if (player.dialogueAction == 10004) {
|
||||||
|
player.getDialogueHandler().sendDialogues(10002, 2244);
|
||||||
|
return;
|
||||||
|
} else if(player.dialogueAction == 10006) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.getPacketSender().sendMessage("Your XP rate is now set to x" + player.getXPRate() + " you now have the highest XP rate.");
|
||||||
|
player.getPacketSender().sendMessage("::xprate");
|
||||||
|
player.getPacketSender().closeAllWindows();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
player.dialogueAction = 0;
|
player.dialogueAction = 0;
|
||||||
player.getPacketSender().closeAllWindows();
|
player.getPacketSender().closeAllWindows();
|
||||||
@@ -922,6 +974,10 @@ public class DialogueOptions {
|
|||||||
if (player.dialogueAction == 701) {
|
if (player.dialogueAction == 701) {
|
||||||
player.getDialogueHandler().sendDialogues(3561, player.npcType);
|
player.getDialogueHandler().sendDialogues(3561, player.npcType);
|
||||||
}
|
}
|
||||||
|
if (player.dialogueAction == 10002) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[0]);
|
||||||
|
player.getDialogueHandler().sendDialogues(10003, player.npcType);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9179:
|
case 9179:
|
||||||
@@ -991,6 +1047,10 @@ public class DialogueOptions {
|
|||||||
if (player.dialogueAction == 701) {
|
if (player.dialogueAction == 701) {
|
||||||
player.getDialogueHandler().sendDialogues(3562, player.npcType);
|
player.getDialogueHandler().sendDialogues(3562, player.npcType);
|
||||||
}
|
}
|
||||||
|
if (player.dialogueAction == 10002) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[1]);
|
||||||
|
player.getDialogueHandler().sendDialogues(10003, player.npcType);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9180:
|
case 9180:
|
||||||
@@ -1063,6 +1123,10 @@ public class DialogueOptions {
|
|||||||
if (player.dialogueAction == 701) {
|
if (player.dialogueAction == 701) {
|
||||||
player.getDialogueHandler().sendDialogues(3563, player.npcType);
|
player.getDialogueHandler().sendDialogues(3563, player.npcType);
|
||||||
}
|
}
|
||||||
|
if (player.dialogueAction == 10002) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[2]);
|
||||||
|
player.getDialogueHandler().sendDialogues(10003, player.npcType);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9181:
|
case 9181:
|
||||||
@@ -1120,6 +1184,10 @@ public class DialogueOptions {
|
|||||||
if (player.dialogueAction == 701) {
|
if (player.dialogueAction == 701) {
|
||||||
player.getDialogueHandler().sendDialogues(3564, player.npcType);
|
player.getDialogueHandler().sendDialogues(3564, player.npcType);
|
||||||
}
|
}
|
||||||
|
if (player.dialogueAction == 10002) {
|
||||||
|
player.setXPRate(GameConstants.VARIABLE_XP_RATES[3]);
|
||||||
|
player.getDialogueHandler().sendDialogues(10003, player.npcType);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,8 @@ public abstract class Player {
|
|||||||
|
|
||||||
public byte buffer[] = null;
|
public byte buffer[] = null;
|
||||||
public String lastConnectedFrom;
|
public String lastConnectedFrom;
|
||||||
private Compost compost = new Compost(this);
|
public static int xpRate = 1;
|
||||||
|
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);
|
||||||
private Herbs herb = new Herbs(this);
|
private Herbs herb = new Herbs(this);
|
||||||
@@ -166,6 +167,10 @@ public abstract class Player {
|
|||||||
private DoubleGates doubleGates = new DoubleGates();
|
private DoubleGates doubleGates = new DoubleGates();
|
||||||
public int lastMainFrameInterface = -1; //Possibly used in future to prevent packet exploits
|
public int lastMainFrameInterface = -1; //Possibly used in future to prevent packet exploits
|
||||||
|
|
||||||
|
public int getXPRate() { return xpRate; }
|
||||||
|
|
||||||
|
public void setXPRate(int xpRate) { this.xpRate = xpRate; }
|
||||||
|
|
||||||
public boolean isPreaching() {
|
public boolean isPreaching() {
|
||||||
return preaching;
|
return preaching;
|
||||||
}
|
}
|
||||||
@@ -173,9 +178,9 @@ public abstract class Player {
|
|||||||
public void setPreaching(boolean preaching) {
|
public void setPreaching(boolean preaching) {
|
||||||
this.preaching = preaching;
|
this.preaching = preaching;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean preaching;
|
public boolean preaching;
|
||||||
|
|
||||||
public Compost getCompost() {
|
public Compost getCompost() {
|
||||||
return compost;
|
return compost;
|
||||||
}
|
}
|
||||||
@@ -223,12 +228,12 @@ public abstract class Player {
|
|||||||
public ToolLeprechaun getFarmingTools() {
|
public ToolLeprechaun getFarmingTools() {
|
||||||
return toolLeprechaun;
|
return toolLeprechaun;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public LogCuttingInterface getFletching() {
|
public LogCuttingInterface getFletching() {
|
||||||
return fletching;
|
return fletching;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleGates getSingleGates() {
|
public SingleGates getSingleGates() {
|
||||||
return singleGates;
|
return singleGates;
|
||||||
}
|
}
|
||||||
@@ -404,7 +409,7 @@ public abstract class Player {
|
|||||||
public MageTrainingArena getMageTrainingArena() {
|
public MageTrainingArena getMageTrainingArena() {
|
||||||
return mageArena;
|
return mageArena;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Trading getTrading() {
|
public Trading getTrading() {
|
||||||
return trading;
|
return trading;
|
||||||
}
|
}
|
||||||
@@ -444,13 +449,13 @@ public abstract class Player {
|
|||||||
public Inventory getInventory() {
|
public Inventory getInventory() {
|
||||||
return inventory;
|
return inventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Inventory inventory = new Inventory(this);
|
private Inventory inventory = new Inventory(this);
|
||||||
|
|
||||||
|
|
||||||
private int tempInteger;
|
private int tempInteger;
|
||||||
public boolean tempBoolean;
|
public boolean tempBoolean;
|
||||||
|
|
||||||
public void setTempInteger(int tempInteger) {
|
public void setTempInteger(int tempInteger) {
|
||||||
this.tempInteger = tempInteger;
|
this.tempInteger = tempInteger;
|
||||||
}
|
}
|
||||||
@@ -460,17 +465,17 @@ public abstract class Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int totalShopItems;
|
public int totalShopItems;
|
||||||
|
|
||||||
public boolean stopPlayer(boolean stop) {
|
public boolean stopPlayer(boolean stop) {
|
||||||
return (stop ? stopPlayerPacket == true : stopPlayerPacket == false);
|
return (stop ? stopPlayerPacket == true : stopPlayerPacket == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long objectDelay;
|
public long objectDelay;
|
||||||
|
|
||||||
public long getObjectDelay() {
|
public long getObjectDelay() {
|
||||||
return (objectDelay);
|
return (objectDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long setObjectDelay(long delay) {
|
public long setObjectDelay(long delay) {
|
||||||
return (objectDelay = delay);
|
return (objectDelay = delay);
|
||||||
}
|
}
|
||||||
@@ -981,7 +986,7 @@ public abstract class Player {
|
|||||||
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
|
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
|
||||||
underAttackBy2 = 0;
|
underAttackBy2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (System.currentTimeMillis() - restoreStatsDelay > 60000) {
|
if (System.currentTimeMillis() - restoreStatsDelay > 60000) {
|
||||||
restoreStatsDelay = System.currentTimeMillis();
|
restoreStatsDelay = System.currentTimeMillis();
|
||||||
for (int skill = 0; skill < playerLevel.length; skill++) {
|
for (int skill = 0; skill < playerLevel.length; skill++) {
|
||||||
@@ -1398,20 +1403,20 @@ public abstract class Player {
|
|||||||
restoreStatsDelay, logoutDelay, buryDelay, foodDelay, potDelay,
|
restoreStatsDelay, logoutDelay, buryDelay, foodDelay, potDelay,
|
||||||
doorDelay, doubleDoorDelay, buySlayerTimer, lastIncrease,
|
doorDelay, doubleDoorDelay, buySlayerTimer, lastIncrease,
|
||||||
boneDelay, leverDelay = 0, searchObjectDelay = 0, clickDelay = 0;
|
boneDelay, leverDelay = 0, searchObjectDelay = 0, clickDelay = 0;
|
||||||
|
|
||||||
public boolean hideYell;
|
public boolean hideYell;
|
||||||
|
|
||||||
|
|
||||||
private Npc specialTarget = null;
|
private Npc specialTarget = null;
|
||||||
|
|
||||||
public void setSpecialTarget(Npc target) {
|
public void setSpecialTarget(Npc target) {
|
||||||
this.specialTarget = target;
|
this.specialTarget = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Npc getSpecialTarget() {
|
public Npc getSpecialTarget() {
|
||||||
return specialTarget;
|
return specialTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int miningAxe = -1, woodcuttingAxe = -1;
|
public int miningAxe = -1, woodcuttingAxe = -1;
|
||||||
|
|
||||||
public boolean initialized, musicOn = true, luthas,
|
public boolean initialized, musicOn = true, luthas,
|
||||||
@@ -1695,7 +1700,7 @@ public abstract class Player {
|
|||||||
4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 2097152,
|
4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 2097152,
|
||||||
8388608, 16777216, 67108864, 134217728 };
|
8388608, 16777216, 67108864, 134217728 };
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Combat variables
|
* Combat variables
|
||||||
*/
|
*/
|
||||||
@@ -1713,7 +1718,7 @@ public abstract class Player {
|
|||||||
/**
|
/**
|
||||||
* End
|
* End
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public int clickNpcType, clickObjectType, objectId, objectX,
|
public int clickNpcType, clickObjectType, objectId, objectX,
|
||||||
objectY, npcIndex, npcClickIndex, npcType;
|
objectY, npcIndex, npcClickIndex, npcType;
|
||||||
public int pItemX, pItemY, pItemId;
|
public int pItemX, pItemY, pItemId;
|
||||||
@@ -2130,11 +2135,11 @@ public abstract class Player {
|
|||||||
walkingQueueY[wQueueWritePtr] = y;
|
walkingQueueY[wQueueWritePtr] = y;
|
||||||
wQueueWritePtr = next;
|
wQueueWritePtr = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkRangeDistance() {
|
public boolean checkRangeDistance() {
|
||||||
return (usingRangeWeapon || usingBow);
|
return (usingRangeWeapon || usingBow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int gatherRangeDistance(int distance) {
|
public int gatherRangeDistance(int distance) {
|
||||||
//dart (non long range)
|
//dart (non long range)
|
||||||
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
|
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
|
||||||
@@ -2148,7 +2153,7 @@ public abstract class Player {
|
|||||||
//dart, knife, throwing axe (long range)
|
//dart, knife, throwing axe (long range)
|
||||||
} else if (usingRangeWeapon && fightMode == 3) {
|
} else if (usingRangeWeapon && fightMode == 3) {
|
||||||
distance = RangeData.usingDart(this) ? 5 : 6;
|
distance = RangeData.usingDart(this) ? 5 : 6;
|
||||||
//short bow
|
//short bow
|
||||||
} else if (usingBow && !RangeData.usingLongbow(this)) {
|
} else if (usingBow && !RangeData.usingLongbow(this)) {
|
||||||
distance = fightMode == 3 ? 7 : 9;
|
distance = fightMode == 3 ? 7 : 9;
|
||||||
}
|
}
|
||||||
@@ -2507,74 +2512,74 @@ public abstract class Player {
|
|||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.CAPE] > 1) {
|
if (playerEquipment[ItemConstants.CAPE] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CAPE]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CAPE]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.AMULET] > 1) {
|
if (playerEquipment[ItemConstants.AMULET] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.AMULET]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.AMULET]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.WEAPON] > 1) {
|
if (playerEquipment[ItemConstants.WEAPON] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.WEAPON]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.WEAPON]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.CHEST] > 1) {
|
if (playerEquipment[ItemConstants.CHEST] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CHEST]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CHEST]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[2]);
|
playerProps.writeWord(0x100 + playerAppearance[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.SHIELD] > 1) {
|
if (playerEquipment[ItemConstants.SHIELD] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.SHIELD]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.SHIELD]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ItemData.isFullBody(playerEquipment[ItemConstants.CHEST])) {
|
if (!ItemData.isFullBody(playerEquipment[ItemConstants.CHEST])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[3]);
|
playerProps.writeWord(0x100 + playerAppearance[3]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.LEGS] > 1) {
|
if (playerEquipment[ItemConstants.LEGS] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.LEGS]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.LEGS]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[5]);
|
playerProps.writeWord(0x100 + playerAppearance[5]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ItemData.isFullHelm(playerEquipment[ItemConstants.HAT])
|
if (!ItemData.isFullHelm(playerEquipment[ItemConstants.HAT])
|
||||||
&& !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
&& !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[1]);
|
playerProps.writeWord(0x100 + playerAppearance[1]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.HANDS] > 1) {
|
if (playerEquipment[ItemConstants.HANDS] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.HANDS]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.HANDS]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[4]);
|
playerProps.writeWord(0x100 + playerAppearance[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.FEET] > 1) {
|
if (playerEquipment[ItemConstants.FEET] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.FEET]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.FEET]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[6]);
|
playerProps.writeWord(0x100 + playerAppearance[6]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerAppearance[0] != 1 && !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
if (playerAppearance[0] != 1 && !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[7]);
|
playerProps.writeWord(0x100 + playerAppearance[7]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {//send npc data
|
} else {//send npc data
|
||||||
playerProps.writeWord(-1);//Tells client that were being a npc
|
playerProps.writeWord(-1);//Tells client that were being a npc
|
||||||
playerProps.writeWord(npcId2);//send NpcID
|
playerProps.writeWord(npcId2);//send NpcID
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import com.rs2.game.content.music.sound.SoundList;
|
|||||||
import com.rs2.game.content.randomevents.RandomEventHandler;
|
import com.rs2.game.content.randomevents.RandomEventHandler;
|
||||||
import com.rs2.game.content.skills.SkillData;
|
import com.rs2.game.content.skills.SkillData;
|
||||||
import com.rs2.game.content.skills.SkillHandler;
|
import com.rs2.game.content.skills.SkillHandler;
|
||||||
import com.rs2.game.content.skills.smithing.Superheat;
|
|
||||||
import com.rs2.game.items.GameItem;
|
import com.rs2.game.items.GameItem;
|
||||||
import com.rs2.game.items.ItemAssistant;
|
import com.rs2.game.items.ItemAssistant;
|
||||||
import com.rs2.game.items.ItemConstants;
|
import com.rs2.game.items.ItemConstants;
|
||||||
@@ -95,7 +94,7 @@ public class PlayerAssistant {
|
|||||||
|
|
||||||
public void loginScreen() {
|
public void loginScreen() {
|
||||||
player.getPacketSender().showInterface(15244);
|
player.getPacketSender().showInterface(15244);
|
||||||
player.getPacketSender().sendString("Welcome to " + GameConstants.SERVER_NAME + "\\n", 15257);
|
player.getPacketSender().sendString("Welcome to " + GameConstants.SERVER_NAME + " World: " + GameConstants.WORLD + "\\n", 15257);
|
||||||
int currentDay = player.getLastLogin() - player.lastLoginDate;
|
int currentDay = player.getLastLogin() - player.lastLoginDate;
|
||||||
|
|
||||||
if (player.playerLevel[GameConstants.HERBLORE] < 3) {
|
if (player.playerLevel[GameConstants.HERBLORE] < 3) {
|
||||||
@@ -1833,7 +1832,7 @@ public class PlayerAssistant {
|
|||||||
player.getItemAssistant().clearBank();
|
player.getItemAssistant().clearBank();
|
||||||
player.getPlayerAssistant().addStarter();
|
player.getPlayerAssistant().addStarter();
|
||||||
player.getPlayerAssistant().movePlayer(3233, 3229, 0);
|
player.getPlayerAssistant().movePlayer(3233, 3229, 0);
|
||||||
player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@.");
|
player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + " World: " + GameConstants.WORLD + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@.");
|
||||||
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source and pull requests are welcome!");
|
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source and pull requests are welcome!");
|
||||||
player.getPacketSender().sendMessage("Source code: github.com/2006-Scape/2006Scape");
|
player.getPacketSender().sendMessage("Source code: github.com/2006-Scape/2006Scape");
|
||||||
player.getPacketSender().sendMessage("Discord: https://discord.gg/hZ6VfWG");
|
player.getPacketSender().sendMessage("Discord: https://discord.gg/hZ6VfWG");
|
||||||
@@ -2033,7 +2032,11 @@ public class PlayerAssistant {
|
|||||||
if (player.tutorialProgress < 36 && player.playerLevel[skill] == 3 && GameConstants.TUTORIAL_ISLAND) {
|
if (player.tutorialProgress < 36 && player.playerLevel[skill] == 3 && GameConstants.TUTORIAL_ISLAND) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
amount *= GameConstants.XP_RATE;
|
if (GameConstants.VARIABLE_XP_RATE){
|
||||||
|
amount *= player.getXPRate();
|
||||||
|
} else {
|
||||||
|
amount *= GameConstants.XP_RATE;
|
||||||
|
}
|
||||||
int oldLevel = getLevelForXP(player.playerXP[skill]);
|
int oldLevel = getLevelForXP(player.playerXP[skill]);
|
||||||
player.playerXP[skill] += amount;
|
player.playerXP[skill] += amount;
|
||||||
if (oldLevel < getLevelForXP(player.playerXP[skill])) {
|
if (oldLevel < getLevelForXP(player.playerXP[skill])) {
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ public class PlayerSave {
|
|||||||
case "character-rights":
|
case "character-rights":
|
||||||
player.playerRights = Integer.parseInt(token2);
|
player.playerRights = Integer.parseInt(token2);
|
||||||
break;
|
break;
|
||||||
|
case "xp-rate":
|
||||||
|
player.xpRate = Integer.parseInt(token2);
|
||||||
case "last-ip":
|
case "last-ip":
|
||||||
player.lastConnectedFrom = token2;
|
player.lastConnectedFrom = token2;
|
||||||
break;
|
break;
|
||||||
@@ -593,6 +595,8 @@ public class PlayerSave {
|
|||||||
characterfile.newLine();
|
characterfile.newLine();
|
||||||
characterfile.write("character-rights = " + player.playerRights);
|
characterfile.write("character-rights = " + player.playerRights);
|
||||||
characterfile.newLine();
|
characterfile.newLine();
|
||||||
|
characterfile.write("xp-rate = " + player.xpRate);
|
||||||
|
characterfile.newLine();
|
||||||
characterfile.write("last-ip = " + player.connectedFrom);
|
characterfile.write("last-ip = " + player.connectedFrom);
|
||||||
characterfile.newLine();
|
characterfile.newLine();
|
||||||
characterfile.write("isBot = " + player.isBot);
|
characterfile.write("isBot = " + player.isBot);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class PlayersOnlineWebsite {
|
|||||||
|
|
||||||
private static void setWebsitePlayersOnline(int amount) throws IOException {
|
private static void setWebsitePlayersOnline(int amount) throws IOException {
|
||||||
URL url;
|
URL url;
|
||||||
url = new URL(GameConstants.WEBSITE_LINK + "/playersonline.php?pass=" + password + "&amount=" + amount);
|
url = new URL(GameConstants.WEBSITE_LINK + "/playersonline.php?pass=" + password + "&amount=" + amount + "&world=" + GameConstants.WORLD);
|
||||||
url.openStream().close();
|
url.openStream().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class RegisteredAccsWebsite {
|
|||||||
|
|
||||||
private static void setAccountsRegistered(int amount) throws IOException {
|
private static void setAccountsRegistered(int amount) throws IOException {
|
||||||
URL url;
|
URL url;
|
||||||
url = new URL(GameConstants.WEBSITE_LINK + "/accountsregistered.php?pass=" + password + "&amount=" + amount);
|
url = new URL(GameConstants.WEBSITE_LINK + "/accountsregistered.php?pass=" + password + "&amount=" + amount + "&world=" + GameConstants.WORLD);
|
||||||
url.openStream().close();
|
url.openStream().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
package com.rs2.integrations.discord;
|
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.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.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;
|
||||||
import org.javacord.api.entity.message.MessageBuilder;
|
import org.javacord.api.entity.message.MessageBuilder;
|
||||||
import org.javacord.api.util.logging.ExceptionLogger;
|
import org.javacord.api.util.logging.ExceptionLogger;
|
||||||
import com.rs2.integrations.discord.commands.*;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -17,6 +20,7 @@ import java.io.IOException;
|
|||||||
public class JavaCord {
|
public class JavaCord {
|
||||||
|
|
||||||
public static String serverName = GameConstants.SERVER_NAME;
|
public static String serverName = GameConstants.SERVER_NAME;
|
||||||
|
public static String commandPrefix = "::w" + GameConstants.WORLD;
|
||||||
public static String token;
|
public static String token;
|
||||||
public static DiscordApi api = null;
|
public static DiscordApi api = null;
|
||||||
|
|
||||||
@@ -34,19 +38,14 @@ public class JavaCord {
|
|||||||
api.addListener(new Players());
|
api.addListener(new Players());
|
||||||
api.addListener(new Vote());
|
api.addListener(new Vote());
|
||||||
api.addListener(new Website());
|
api.addListener(new Website());
|
||||||
|
//Admin Commands
|
||||||
|
api.addListener(new GameKick());
|
||||||
|
api.addListener(new MoveHome());
|
||||||
|
api.addListener(new Update());
|
||||||
if(!DiscordActivity.playerCount) {
|
if(!DiscordActivity.playerCount) {
|
||||||
api.updateActivity(GameConstants.WEBSITE_LINK);
|
api.updateActivity(GameConstants.WEBSITE_LINK);
|
||||||
}
|
}
|
||||||
api.addMessageCreateListener(event -> {
|
api.addMessageCreateListener(event -> {
|
||||||
|
|
||||||
if (event.getMessageContent().startsWith("::movehome")) {
|
|
||||||
if (event.getMessageAuthor().isServerAdmin()) {
|
|
||||||
System.out.println("perms");
|
|
||||||
event.getChannel().sendMessage("perms");
|
|
||||||
} else {
|
|
||||||
event.getChannel().sendMessage("You do not have permission to preform this command");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -8,22 +9,20 @@ public class Commands 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("::commands")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " commands")) {
|
||||||
event.getChannel().sendMessage("```fix"
|
event.getChannel().sendMessage("```fix"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::forum/::forums"
|
JavaCord.commandPrefix + " forum/" + JavaCord.commandPrefix + " forums"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::hiscores/::highscores"
|
JavaCord.commandPrefix + " hiscores/" + JavaCord.commandPrefix + " highscores"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::issues/::bugs"
|
JavaCord.commandPrefix + " issues/" + JavaCord.commandPrefix + " bugs"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::online"
|
JavaCord.commandPrefix + " online"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::players"
|
JavaCord.commandPrefix + " vote"
|
||||||
+ System.lineSeparator() +
|
+ System.lineSeparator() +
|
||||||
"::vote"
|
JavaCord.commandPrefix + " website/" + JavaCord.commandPrefix + " site"
|
||||||
+ System.lineSeparator() +
|
|
||||||
"::website/::site"
|
|
||||||
+ "```");
|
+ "```");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -10,7 +11,7 @@ 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("::forum") || message.getContent().equalsIgnoreCase("::forums")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " forum") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " forums")) {
|
||||||
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php");
|
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -10,7 +11,7 @@ public class Hiscores 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("::hiscores") || message.getContent().equalsIgnoreCase("::highscores")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " hiscores") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " highscores")) {
|
||||||
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/hiscores.html");
|
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/hiscores.html");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -8,7 +9,7 @@ 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("::issues") || message.getContent().equalsIgnoreCase("::bugs")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " issues") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix+ " bugs")) {
|
||||||
event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues");
|
event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.rs2.integrations.discord.commands;
|
package com.rs2.integrations.discord.commands;
|
||||||
|
|
||||||
|
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;
|
||||||
@@ -10,8 +11,8 @@ public class Online 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("::online")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " online")) {
|
||||||
event.getChannel().sendMessage(":tada: " + JavaCord.serverName + " is Online! :tada:");
|
event.getChannel().sendMessage(":tada: " + JavaCord.serverName + " World:" + GameConstants.WORLD + " is Online! :tada:");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
package com.rs2.integrations.discord.commands;
|
package com.rs2.integrations.discord.commands;
|
||||||
|
|
||||||
|
import com.rs2.game.players.PlayerHandler;
|
||||||
|
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;
|
||||||
|
|
||||||
import com.rs2.game.players.PlayerHandler;
|
|
||||||
|
|
||||||
public class Players implements MessageCreateListener {
|
public class Players 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("::players")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " players")) {
|
||||||
if (PlayerHandler.getPlayerCount() != 1) {
|
if (PlayerHandler.getPlayerCount() != 1) {
|
||||||
event.getChannel().sendMessage("There are currently " + PlayerHandler.getPlayerCount() + " players online (" + PlayerHandler.getNonPlayerCount() + " staff online).");
|
event.getChannel().sendMessage("There are currently " + PlayerHandler.getPlayerCount() + " players online (" + PlayerHandler.getNonPlayerCount() + " staff online).");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -10,7 +11,7 @@ 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("::vote")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " vote")) {
|
||||||
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,5 +1,6 @@
|
|||||||
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;
|
||||||
@@ -10,7 +11,7 @@ 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("::website") || message.getContent().equalsIgnoreCase("::site")) {
|
if (message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " website") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " site")) {
|
||||||
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK);
|
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+32
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+31
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+24
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -116,7 +116,7 @@ public class PacketSender {
|
|||||||
if (player.tutorialProgress > 35) {
|
if (player.tutorialProgress > 35) {
|
||||||
player.getPlayerAssistant().sendSidebars();
|
player.getPlayerAssistant().sendSidebars();
|
||||||
Weight.updateWeight(player);
|
Weight.updateWeight(player);
|
||||||
player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@.");
|
player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + " World: " + GameConstants.WORLD + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@.");
|
||||||
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source! Pull requests are welcome");
|
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source! Pull requests are welcome");
|
||||||
player.getPacketSender().sendMessage("Source code at github.com/2006-Scape/2006Scape");
|
player.getPacketSender().sendMessage("Source code at github.com/2006-Scape/2006Scape");
|
||||||
player.getPacketSender().sendMessage("Join our Discord: https://discord.gg/hZ6VfWG");
|
player.getPacketSender().sendMessage("Join our Discord: https://discord.gg/hZ6VfWG");
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.rs2.Connection;
|
|||||||
import com.rs2.GameConstants;
|
import com.rs2.GameConstants;
|
||||||
import com.rs2.GameEngine;
|
import com.rs2.GameEngine;
|
||||||
import com.rs2.game.bots.BotHandler;
|
import com.rs2.game.bots.BotHandler;
|
||||||
import com.rs2.game.content.combat.magic.SpellTeleport;
|
|
||||||
import com.rs2.game.npcs.NpcHandler;
|
import com.rs2.game.npcs.NpcHandler;
|
||||||
import com.rs2.game.players.*;
|
import com.rs2.game.players.*;
|
||||||
import com.rs2.game.players.antimacro.AntiSpam;
|
import com.rs2.game.players.antimacro.AntiSpam;
|
||||||
@@ -45,6 +44,34 @@ 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 "myxprate":
|
||||||
|
case "checkxprate":
|
||||||
|
if(GameConstants.VARIABLE_XP_RATE) {
|
||||||
|
player.getPacketSender().sendMessage("Your current XP rate is x" + player.getXPRate());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "xprate":
|
||||||
|
if(GameConstants.VARIABLE_XP_RATE) {
|
||||||
|
if (player.getXPRate() == GameConstants.VARIABLE_XP_RATES[0]) {
|
||||||
|
player.getDialogueHandler().sendDialogues(10005, 2244);
|
||||||
|
return;
|
||||||
|
} else if (player.getXPRate() == GameConstants.VARIABLE_XP_RATES[1]) {
|
||||||
|
player.getDialogueHandler().sendDialogues(10006, 2244);
|
||||||
|
return;
|
||||||
|
} else if (player.getXPRate() == GameConstants.VARIABLE_XP_RATES[2]) {
|
||||||
|
player.getDialogueHandler().sendDialogues(10007, 2244);
|
||||||
|
return;
|
||||||
|
} else if (player.getXPRate() == GameConstants.VARIABLE_XP_RATES[3]) {
|
||||||
|
player.getPacketSender().sendMessage("You already have the highest XP rate.");
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
player.getDialogueHandler().sendDialogues(10001, 2244);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
player.getPacketSender().sendMessage("You can't use this command in this world.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "toggleyell":
|
case "toggleyell":
|
||||||
case "tglyell":
|
case "tglyell":
|
||||||
case "hideyell":
|
case "hideyell":
|
||||||
@@ -257,9 +284,6 @@ public class Commands implements PacketType {
|
|||||||
"::loc, ::pos, ::coord",
|
"::loc, ::pos, ::coord",
|
||||||
"Get your current world position",
|
"Get your current world position",
|
||||||
"",
|
"",
|
||||||
"::stuck",
|
|
||||||
"Return to Lumbridge when stuck",
|
|
||||||
"",
|
|
||||||
"::randomtoggle",
|
"::randomtoggle",
|
||||||
"Enable/Disable random events",
|
"Enable/Disable random events",
|
||||||
"",
|
"",
|
||||||
@@ -280,6 +304,8 @@ public class Commands implements PacketType {
|
|||||||
"",
|
"",
|
||||||
"::snow",
|
"::snow",
|
||||||
"Add some snow in your mainscreen(works only in december)",
|
"Add some snow in your mainscreen(works only in december)",
|
||||||
|
(GameConstants.VARIABLE_XP_RATE ? "\\n" + "::xprate\\n" + "Opens dialogue for the player to set/increase their XP rate." : ""),
|
||||||
|
(GameConstants.VARIABLE_XP_RATE ? "\\n" + "::checkxprate(::myxprate)\\n" + "Displays the players currently set XP rate." : ""),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Clear all lines
|
// Clear all lines
|
||||||
@@ -294,17 +320,6 @@ public class Commands implements PacketType {
|
|||||||
}
|
}
|
||||||
player.getPacketSender().showInterface(8134);
|
player.getPacketSender().showInterface(8134);
|
||||||
break;
|
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 "randomtoggle":
|
||||||
case "togglerandom":
|
case "togglerandom":
|
||||||
case "random":
|
case "random":
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./2006Scape Server:/usr/src/server
|
- ./2006Scape Server:/usr/src/server
|
||||||
working_dir: /usr/src/server
|
working_dir: /usr/src/server
|
||||||
ports: # You will need to open other ports if your world ID is not 1 (43597 for world 2)
|
ports: # You will need to open other ports if your world ID is not 1 (43598 for world 2)
|
||||||
- 43594:43594 # Server
|
- 43594:43594 # Server
|
||||||
- 43595-43596:43595-43596 # File Server
|
- 43595-43596:43595-43596 # File Server
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
Reference in New Issue
Block a user