Compare commits

..

8 Commits

Author SHA1 Message Date
Dark98 f98de298c8 Properly Update Client Title Logo
If The Cache Has Already Been Downloaded You Will Need To Delete It & Let The Client ReDownload It
2021-11-01 01:17:52 +00:00
Dark98 2629186cc0 Only Print Loaded Plugins When Debug Enabled 2021-10-31 02:48:29 +00:00
Dark98 156d864bfd Update NPC Plugins Layout To Put Click Actions Per NPC Plugin 2021-10-31 02:42:38 +00:00
Dark98 7a2a6d362b Revert "Update Client Title Logo"
woops this broke the cache
This reverts commit 97f1eb72e4.
2021-10-31 02:18:19 +00:00
Dark98 546669ead0 Add Plugins/Kotlin Support To Maven 2021-10-31 02:03:21 +00:00
Danial 669573c660 Make file server optional if cache already downloaded (#514) 2021-10-31 01:53:47 +00:00
Danial 1fe76d739e Couple of fixups (#513)
* Show preference state

* Fixup multiple of the same item on the ground.

* Fixup combat

* Fixup yell, decrease delay

* Tidy up yell

* use jdk8
2021-10-31 01:53:31 +00:00
Qweqker 6deaa4162a Astraeus Dialogue System Port (#512)
* - Marked As Deprecated
- Reorganized DialogueOptions.java so that option buttons are grouped with each interface
- Added temporary Dialogue Executor to make new Dialogue System function
- Remove Man, Woman, and Banker Dialogue and Dialogue Options

* - Refactored Dialogue.java into DialoguePacket.java
- Moved DialoguePacket.java into impl packets package
- Added Astraeus dialogue executor

* - Removed useless file
- Reorganized the Misc.java file

* - Ported Astraeus Dialogue System
- Rewrote Man, Woman, and Banker Dialogues
- Added line splitter in AstraeusDialogueFactory.java

* - Renamed Astraeus* classes to *Plugin
- Fixed an issue where the Dialogue Option buttons were not executed through the Kotlin file
2021-10-31 01:53:15 +00:00
105 changed files with 1714 additions and 2129 deletions
+3 -15
View File
@@ -11,7 +11,9 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up JDK 1.8 - name: Set up JDK 1.8
@@ -19,18 +21,4 @@ jobs:
with: with:
java-version: 1.8 java-version: 1.8
- name: Build with Maven - name: Build with Maven
id: build run: mvn -B clean install
run: |
mvn -B clean package
mkdir -p ~/artifacts
cp "2006Scape Client/target/client-1.0-jar-with-dependencies.jar" ~/artifacts/Client.jar
cp "2006Scape Server/target/server-1.0-jar-with-dependencies.jar" ~/artifacts/Server.jar
cp "2006Scape Server/ServerConfig.Sample.json" ~/artifacts/ServerConfig.json
cp SinglePlayer.bat ~/artifacts/
cp -r "2006Scape Server/plugins" ~/artifacts/
cp -r "2006Scape Server/data" ~/artifacts/
- name: Publish build to GH Actions
uses: actions/upload-artifact@v2
with:
path: ~/artifacts/*
name: 2006Scape-Build
-3
View File
@@ -12,6 +12,3 @@
2006Scape Client/bin/ 2006Scape Client/bin/
*.prefs *.prefs
*.classpath *.classpath
# Ignore any json files in the server root (should only be config files, the sample file should still be updated)
2006Scape Server/*.json
@@ -18,24 +18,12 @@ 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 = "server.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
*/ */
+15 -26
View File
@@ -25,7 +25,6 @@ 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
@@ -3430,12 +3429,11 @@ public class Game extends RSApplet {
} }
} catch (Exception _ex) { } catch (Exception _ex) {
} }
if(abyte0 != null && ClientSettings.CHECK_CRC) { if (abyte0 != null) {
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);
@@ -3482,20 +3480,12 @@ public class Game extends RSApplet {
} catch (Exception _ex) { } catch (Exception _ex) {
decompressors[0] = null; decompressors[0] = null;
} }
/*
if(abyte0 != null && ClientSettings.CHECK_CRC) * if(abyte0 != null) { aCRC32_930.reset();
{ * aCRC32_930.update(abyte0); int i3 =
aCRC32_930.reset(); * (int)aCRC32_930.getValue(); if(i3 != j) { abyte0 = null;
aCRC32_930.update(abyte0); * j1++; s2 = "Checksum error: " + i3; } }
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";
@@ -5031,7 +5021,7 @@ 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 >= 2) { if (myPrivilege >= 0) {
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++)
@@ -5070,7 +5060,6 @@ 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;
@@ -5089,6 +5078,7 @@ 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);
@@ -5937,7 +5927,7 @@ public class Game extends RSApplet {
loginMessage2 = "Connecting to server..."; loginMessage2 = "Connecting to server...";
drawLoginScreen(true); drawLoginScreen(true);
} }
socketStream = new RSSocket(this, openSocket((ClientSettings.SERVER_WORLD == 1) ? 43594 : 43596 + ClientSettings.SERVER_WORLD + portOff)); socketStream = new RSSocket(this, openSocket(43594 + 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;
@@ -12056,9 +12046,8 @@ 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;
+3 -16
View File
@@ -8,25 +8,16 @@ 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) {
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":
@@ -54,10 +45,6 @@ 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;
} }
} }
} }
+2 -1
View File
@@ -4,11 +4,12 @@
import java.awt.*; import java.awt.*;
@SuppressWarnings("serial")
final class RSFrame extends Frame { final class RSFrame extends Frame {
public RSFrame(RSApplet RSApplet_, int i, int j) { public RSFrame(RSApplet RSApplet_, int i, int j) {
rsApplet = RSApplet_; rsApplet = RSApplet_;
setTitle(ClientSettings.SERVER_NAME + " World: " + ClientSettings.SERVER_WORLD); setTitle(ClientSettings.SERVER_NAME);
setResizable(false); setResizable(false);
setMinimumSize(new Dimension(i + 8, j + 28)); setMinimumSize(new Dimension(i + 8, j + 28));
setVisible(true); setVisible(true);
-23
View File
@@ -1,23 +0,0 @@
{
"server_name": "2006Scape",
"website_link": "https://2006Scape.org",
"server_debug": false,
"file_server": true,
"world_id": 1,
"xp_rate": 1.0,
"variable_xp_rate": false,
"variable_xp_rates": [1, 2, 5, 10],
"members_only": false,
"tutorial_island_enabled": false,
"party_room_enabled": true,
"clues_enabled": true,
"admin_can_trade": false,
"admin_can_sell": false,
"respawn_x": 3222,
"respawn_y": 3218,
"save_timer": 120,
"timeout": 60,
"item_requirements": true,
"max_players": 200,
"website_integration": false
}
+9 -9
View File
@@ -10970,7 +10970,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3425, "x": 3425,
@@ -10980,7 +10980,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3428, "x": 3428,
@@ -10990,7 +10990,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3425, "x": 3425,
@@ -11000,7 +11000,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3423, "x": 3423,
@@ -11010,7 +11010,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3427, "x": 3427,
@@ -11020,7 +11020,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3416, "x": 3416,
@@ -11030,7 +11030,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3413, "x": 3413,
@@ -11040,7 +11040,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3410, "x": 3410,
@@ -11050,7 +11050,7 @@
"height": 2 "height": 2
}, },
{ {
"maxHit": 8, "maxHit": 16,
"strength": 150, "strength": 150,
"attack": 250, "attack": 250,
"x": 3413, "x": 3413,
+1
View File
@@ -0,0 +1 @@
{"token":""}
@@ -1,17 +0,0 @@
package plugin.npc.fadli
import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo
import com.rs2.event.impl.NpcSecondClickEvent
import com.rs2.game.players.Player
@SubscribesTo(NpcSecondClickEvent::class)
class SecondClick : EventSubscriber<NpcSecondClickEvent> {
override fun subscribe(context: EventContext, player: Player, event: NpcSecondClickEvent) {
if (event.npc == 958) {
player.packetSender.openUpBank()
}
}
}
@@ -1,26 +0,0 @@
package plugin.quests.cooksassistant
import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo
import com.rs2.event.impl.NpcFirstClickEvent
import com.rs2.game.players.Player
import plugin.quests.cooksassistant.dialogue.LumbridgeCookDialogue
@SubscribesTo(NpcFirstClickEvent::class)
class FirstClick : EventSubscriber<NpcFirstClickEvent> {
override fun subscribe(context: EventContext, player: Player, event: NpcFirstClickEvent) {
when(event.npc) {
//Lumbridge Cook (278)
278 -> {
if (player.playerRights >= 3) {
player.packetSender.sendMessage("[click= npc], [type = first/quest], [id= ${event.npc}], [Type= ${event.npc}]")
}
player.dialogueFactory.sendDialogue(LumbridgeCookDialogue())
}
}
}
}
@@ -1,151 +0,0 @@
package plugin.quests.cooksassistant.dialogue
import com.rs2.game.content.quests.QuestAssistant
import com.rs2.game.content.quests.QuestRewards
import com.rs2.game.dialogues.DialogueFactoryPlugin
import com.rs2.game.dialogues.DialoguePlugin
import com.rs2.game.dialogues.ExpressionPlugin
/**
* The Dialogue For The Lumbridge Castle Cook/Cooks Assistant Quest
*/
class LumbridgeCookDialogue : DialoguePlugin() {
override fun sendDialogues(factory: DialogueFactoryPlugin) {
if (factory.player.cookAss == 0) {
factory
.sendNPCChat(ExpressionPlugin.ANXIOUS, "What am I to do?")
.sendOption("What's wrong?", {
factory
.onAction {
factory
.sendPlayerChat("What's wrong?")
.sendNPCChat(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!"
)
.sendNPCChat(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?"
)
.sendOption("I'm always happy to help a cook in distress", {
factory.onAction {
factory
.sendPlayerChat("Yes, I'll help you.")
.sendNPCChat(
"Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me."
)
.sendPlayerChat("So where do I find these ingredients then?")
.sendNPCChat(
"You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow"
)
.execute()
.player.cookAss = 1
QuestAssistant.sendStages(factory.player)
}
},
"I can't right now, Maybe later.", {
factory.onAction {
factory
.sendPlayerChat("I can't right now, Maybe later.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
})
}
}, "Can you cook me a cake?", {
factory
.onAction {
factory
.sendNPCChat("Does it look like I have the time?")
.execute()
}
}, "You don't look very happy.", {
factory
.sendPlayerChat(ExpressionPlugin.ANXIOUS, "You don't look so happy.")
.sendNPCChat(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!"
)
.sendNPCChat(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?"
)
.sendOption("I'm always happy to help a cook in distress", {
factory.onAction {
factory
.sendPlayerChat("Yes, I'll help you.")
.sendNPCChat(
"Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me."
)
.sendPlayerChat("So where do I find these ingredients then?")
.sendNPCChat(
"You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow"
)
.execute()
.player.cookAss = 1
QuestAssistant.sendStages(factory.player)
}
},
"I can't right now, Maybe later.", {
factory.onAction {
factory
.sendPlayerChat("I can't right now, Maybe later.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
})
}, "Nice hat.") {
factory
.sendNPCChat("I don't have time for your jibber-jabber!")
}
.execute()
} else if(factory.player.cookAss == 1) {
factory
.sendNPCChat("How are you getting on with finding the ingredients?")
if (factory.player.itemAssistant.playerHasItem(1944, 1)
&& factory.player.itemAssistant.playerHasItem(1927, 1)
&& factory.player.itemAssistant.playerHasItem(1933, 1)
) {
factory.sendPlayerChat("Here's all the items!")
factory.player.itemAssistant.deleteItem(1944, 1)
factory.player.itemAssistant.deleteItem(1927, 1)
factory.player.itemAssistant.deleteItem(1933, 1)
factory.player.cookAss = 2
factory.sendNPCChat("You brought me everything I need! I'm saved!", "Thank you!")
.sendPlayerChat("So do I get to go to the Duke's Party?")
.sendNPCChat("I'm afraid not, only the big cheeses get to dine with the", "Duke.")
.sendPlayerChat("Well, maybe one day I'll be important enough to sit on", "the Duke's table")
.sendNPCChat("Maybe, but I won't be holding my breath.")
QuestRewards.cookReward(factory.player)
} else {
factory.sendPlayerChat("I don't have all the items yet.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
} else if(factory.player.cookAss == 2) {
factory
.sendPlayerChat("So do I get to go to the Duke's Party?")
.sendNPCChat("I'm afraid not, only the big cheeses get to dine with the", "Duke.")
.sendPlayerChat("Well, maybe one day I'll be important enough to sit on", "the Duke's table")
.sendNPCChat("Maybe, but I won't be holding my breath.")
QuestRewards.cookReward(factory.player)
} else if(factory.player.cookAss == 3) {
factory.sendNPCChat("Thanks for helping me out friend!")
}
}
}
+5 -11
View File
@@ -10,7 +10,7 @@
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
<kotlin.version>1.6.10</kotlin.version> <kotlin.version>1.5.31</kotlin.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental> <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties> </properties>
@@ -50,7 +50,7 @@
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
<version>2.13.4.1</version> <version>2.10.5.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.json/json --> <!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency> <dependency>
@@ -134,19 +134,19 @@
<dependency> <dependency>
<groupId>org.javacord</groupId> <groupId>org.javacord</groupId>
<artifactId>javacord-api</artifactId> <artifactId>javacord-api</artifactId>
<version>3.3.2</version> <version>3.1.1</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.3.2</version> <version>3.1.1</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.9</version> <version>2.8.6</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.everythingrs</groupId> <groupId>com.everythingrs</groupId>
@@ -160,12 +160,6 @@
<artifactId>google-collections</artifactId> <artifactId>google-collections</artifactId>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.6.6.Final</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
@@ -1,110 +0,0 @@
package com.rs2;
import com.rs2.integrations.PlayersOnlineWebsite;
import com.rs2.integrations.RegisteredAccsWebsite;
import com.rs2.integrations.discord.JavaCord;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.*;
import java.util.stream.Collectors;
public class ConfigLoader {
public static void loadSettings(String config) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(config));
String out = br.lines().collect(Collectors.joining("\n"));
JSONObject obj = new JSONObject(out);
if(obj.has("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"))
GameConstants.WEBSITE_LINK = obj.getString("website_link");
if(obj.has("debug"))
GameConstants.SERVER_DEBUG = obj.getBoolean("debug");
if(obj.has("file_server"))
GameConstants.FILE_SERVER = obj.getBoolean("file_server");
if(obj.has("world_id"))
GameConstants.WORLD = obj.getInt("world_id");
if(obj.has("members_only"))
GameConstants.MEMBERS_ONLY = obj.getBoolean("members_only");
if(obj.has("tutorial_island_enabled"))
GameConstants.TUTORIAL_ISLAND = obj.getBoolean("tutorial_island_enabled");
if(obj.has("party_room_enabled"))
GameConstants.PARTY_ROOM_DISABLED = !obj.getBoolean("party_room_enabled");
if(obj.has("clues_enabled"))
GameConstants.CLUES_ENABLED = obj.getBoolean("clues_enabled");
if(obj.has("admin_can_trade"))
GameConstants.ADMIN_CAN_TRADE = obj.getBoolean("admin_can_trade");
if(obj.has("admin_can_drop_items"))
GameConstants.ADMIN_DROP_ITEMS = obj.getBoolean("admin_can_drop_items");
if(obj.has("admin_can_sell"))
GameConstants.ADMIN_CAN_SELL_ITEMS = obj.getBoolean("admin_can_sell");
if(obj.has("respawn_x"))
GameConstants.RESPAWN_X = obj.getInt("respawn_x");
if(obj.has("respawn_y"))
GameConstants.RESPAWN_Y = obj.getInt("respawn_y");
if(obj.has("save_timer"))
GameConstants.SAVE_TIMER = obj.getInt("save_timer");
if(obj.has("timeout"))
GameConstants.TIMEOUT = obj.getInt("timeout");
if(obj.has("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"))
GameConstants.XP_RATE = obj.getDouble("xp_rate");
if(obj.has("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_integration"))
GameConstants.WEBSITE_INTEGRATION = obj.getBoolean("website_integration");
}
private static void initialize() {
JSONObject main = new JSONObject();
main
.put("bot-token", "")
.put("websitepass", "")
.put("erssecret", "");
try {
BufferedWriter br = new BufferedWriter(new FileWriter("data/secrets.json"));
br.write(main.toString());
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void loadSecrets() throws IOException {
if (!new File("data/secrets.json").exists()) {
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 Website Password there!");
} else {
BufferedReader br = new BufferedReader(new FileReader("data/secrets.json"));
String out = br.lines().collect(Collectors.joining("\n"));
JSONObject obj = new JSONObject(out);
/*
* Sets External Services Vars
*/
if(obj.has("bot-token"))
JavaCord.token = obj.getString("bot-token");
if(obj.has("websitepass"))
PlayersOnlineWebsite.password = obj.getString("websitepass");
RegisteredAccsWebsite.password = obj.getString("websitepass");
if(obj.has("erssecret"))
GameEngine.ersSecret = obj.getString("erssecret");
}
}
}
@@ -2,58 +2,43 @@ package com.rs2;
public class GameConstants { public class GameConstants {
/** public final static boolean SERVER_DEBUG = false;
* The Variables Below Can Be Also Changed On Server Startup By Using The ConfigLoader
*
* SERVER_NAME Sets The Name The Server Will Use
* WEBSITE_LINK Defines The Server Website Links
* WORLD Sets The Servers World ID
* MAX_PLAYERS Sets The Maximum Amount Of Players Allow To Be Logged In At Once
* TIMEOUT Sets The Amount Of Time Before A Player Timeouts From A Bad Connection
* SAVE_TIMER Sets In Seconds How Often The Server Shouls Auto-Save All Characters
* RESPAWN_X Sets The X Coordinate That You Will Respawn At After Death
* RESPAWN_Y Sets The Y Coordinate That You Will Respawn At After Death
* FILE_SERVER Sets Whether The FileServer Should Run With The Server
* SERVER_DEBUG Sets Whether The Server Should Start In Debug Mode
* MEMBERS_ONLY Sets Whether The World Is Members Only
* TUTORIAL_ISLAND Enables/Disables Tutorial Island For Players On First Login
* PARTY_ROOM_DISABLED Enables/Disables The Party Room Should Be Disabled
* CLUES_ENABLED Enables/Disables Clue Scrolls
* ITEM_REQUIREMENTS Enables/Disables Item Requirements for All Players
* ADMIN_CAN_TRADE Defines Whether Admins Can Trade
* ADMIN_DROP_ITEMS Defines Whether Admins Can Drop Items
* ADMIN_CAN_SELL_ITEMS Defines Whether Admins Can Sell Items
* 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
* WEBSITE_INTEGRATION Enables/Disables Website Features(Total Accounts Registered & Players Online)
*/
public static String SERVER_NAME = "2006Scape", WEBSITE_LINK = "https://2006Scape.org";
public static int WORLD = 1, MAX_PLAYERS = 200, TIMEOUT = 60, SAVE_TIMER = 120,
RESPAWN_X = 3222, RESPAWN_Y = 3218;
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,
ADMIN_CAN_TRADE = false, ADMIN_DROP_ITEMS = false, ADMIN_CAN_SELL_ITEMS = false, VARIABLE_XP_RATE = false,
WEBSITE_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;
public final static String SERVER_NAME = "2006Scape", SERVER_VERSION = "Server Stage v " + GameConstants.TEST_VERSION + ".";
/** public final static String WEBSITE_LINK = "https://2006Scape.org";
* The Variables Below Should Only Be Changed If You Understand What You Are Doing 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,
IPS_ALLOWED = 250, CONNECTION_DELAY = 100;
public final static boolean sendServerPackets = false, SOUND = true, GUILDS = true; public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE, CLIENT_VERSION = 999999,
WORLD = 1, IPS_ALLOWED = 250, CONNECTION_DELAY = 100,
MESSAGE_DELAY = 6000, MAX_PLAYERS = 200, REQ_AMOUNT = 150;
public final static boolean SOUND = true,
GUILDS = true,
PARTY_ROOM_DISABLED = false,
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 };
public static boolean TUTORIAL_ISLAND = false,
MEMBERS_ONLY = false, sendServerPackets = false,
CLUES_ENABLED = true;
public final static int[] FUN_WEAPONS = { 2460, 2461, 2462, 2463, 2464, public final static int[] FUN_WEAPONS = { 2460, 2461, 2462, 2463, 2464,
2465, 2466, 2467, 2468, 2469, 2470, 2471, 2471, 2473, 2474, 2475, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2471, 2473, 2474, 2475,
2476, 2477 }; // fun weapons for dueling 2476, 2477 }; // fun weapons for dueling
public static boolean ADMIN_CAN_TRADE = false; // can admins trade?
public final static boolean ADMIN_DROP_ITEMS = false;
public final static boolean ADMIN_CAN_SELL_ITEMS = false;
public final static int RESPAWN_X = 3222; // when dead respawn here
public final static int RESPAWN_Y = 3218;
public final static int DUELING_RESPAWN_X = 3362; public final static int DUELING_RESPAWN_X = 3362;
@@ -61,6 +46,16 @@ public class GameConstants {
public final static int NO_TELEPORT_WILD_LEVEL = 20; public final static int NO_TELEPORT_WILD_LEVEL = 20;
public final static boolean ITEM_REQUIREMENTS = true;
public final static int CASTLE_WARS_X = 2439;
public final static int CASTLE_WARS_Y = 3087;
public static double XP_RATE = 1;
public final static int SAVE_TIMER = 120; // save every x seconds
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;
@@ -74,6 +69,8 @@ public class GameConstants {
"skorge", "tortured soul", "undead chicken", "undead cow", "undead one", "undead troll", "zombie", "zombie rat", "zogre" "skorge", "tortured soul", "undead chicken", "undead cow", "undead one", "undead troll", "zombie", "zombie rat", "zogre"
}; };
public final static int TIMEOUT = 60;
public final static int CYCLE_TIME = 600; public final static int CYCLE_TIME = 600;
public final static int BUFFER_SIZE = 10000; public final static int BUFFER_SIZE = 10000;
@@ -35,6 +35,7 @@ import com.rs2.game.players.PlayerSave;
import com.rs2.game.shops.ShopHandler; import com.rs2.game.shops.ShopHandler;
import com.rs2.integrations.PlayersOnlineWebsite; import com.rs2.integrations.PlayersOnlineWebsite;
import com.rs2.integrations.RegisteredAccsWebsite; import com.rs2.integrations.RegisteredAccsWebsite;
import com.rs2.integrations.SettingsLoader;
import com.rs2.integrations.discord.DiscordActivity; import com.rs2.integrations.discord.DiscordActivity;
import com.rs2.integrations.discord.JavaCord; import com.rs2.integrations.discord.JavaCord;
import com.rs2.net.ConnectionHandler; import com.rs2.net.ConnectionHandler;
@@ -48,7 +49,6 @@ import com.rs2.world.ObjectHandler;
import com.rs2.world.ObjectManager; import com.rs2.world.ObjectManager;
import com.rs2.world.clip.ObjectDefinition; import com.rs2.world.clip.ObjectDefinition;
import com.rs2.world.clip.RegionFactory; import com.rs2.world.clip.RegionFactory;
import org.apollo.jagcached.FileServer;
/** /**
* Server.java * Server.java
@@ -104,6 +104,7 @@ 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];
@@ -130,36 +131,23 @@ 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;
} }
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++) {
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch (args[i]) {
case "-c":
case "-config":
try {
System.out.println("Loading External Config..");
ConfigLoader.loadSettings(args[++i]);
System.out.println("Loaded Config File " + args[i]);
} catch (IOException e) {
System.out.println("Config File Not Found");
}
break;
}
}
}
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) {
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("************************************");
@@ -175,24 +163,12 @@ public class GameEngine {
/** /**
* Starting Up Server * Starting Up Server
*/ */
System.out.println("Launching " + GameConstants.SERVER_NAME + " World: " + GameConstants.WORLD + "..."); System.out.println("Launching " + GameConstants.SERVER_NAME + "...");
/**
* Starts The File Server If Enabled In GameConstants
*/
if (GameConstants.FILE_SERVER) {
FileServer fs = new FileServer();
try {
fs.start();
} catch (Exception e) {
e.printStackTrace();
}
}
/** /**
* Start Integration Services * Start Integration Services
**/ **/
ConfigLoader.loadSecrets(); SettingsLoader.loadSettings();
JavaCord.init(); JavaCord.init();
/** /**
@@ -264,8 +240,8 @@ public class GameEngine {
objectHandler.process(); objectHandler.process();
MageTrainingArena.process(); MageTrainingArena.process();
CycleEventHandler.getSingleton().process(); CycleEventHandler.getSingleton().process();
if (GameConstants.WEBSITE_INTEGRATION) {
PlayersOnlineWebsite.addUpdatePlayersOnlineTask(); PlayersOnlineWebsite.addUpdatePlayersOnlineTask();
if(GameConstants.WEBSITE_TOTAL_CHARACTERS_INTEGRATION) {
RegisteredAccsWebsite.addUpdateRegisteredUsersTask(); RegisteredAccsWebsite.addUpdateRegisteredUsersTask();
} }
if(DiscordActivity.playerCount) { if(DiscordActivity.playerCount) {
@@ -325,4 +301,6 @@ public class GameEngine {
public static boolean playerExecuted = false; public static boolean playerExecuted = false;
private static BufferedReader minuteFile; private static BufferedReader minuteFile;
} }
@@ -508,7 +508,8 @@ public class NpcCombat {
NpcHandler.npcs[i].projectileId = 448; NpcHandler.npcs[i].projectileId = 448;
} else if (r3 == 1) { } else if (r3 == 1) {
NpcHandler.npcs[i].attackType = 1; NpcHandler.npcs[i].attackType = 1;
NpcHandler.npcs[i].projectileId = 451; NpcHandler.npcs[i].endGfx = 451;
NpcHandler.npcs[i].projectileId = -1;
} else if (r3 == 2) { } else if (r3 == 2) {
NpcHandler.npcs[i].attackType = 0; NpcHandler.npcs[i].attackType = 0;
NpcHandler.npcs[i].projectileId = -1; NpcHandler.npcs[i].projectileId = -1;
@@ -11,9 +11,7 @@ import com.rs2.game.players.Player;
public enum NpcEmotes { public enum NpcEmotes {
MAN(new int[] {1, 2, 3, 4, 5, 6}, 422, 1834, 836), MAN(new int[] {1, 2, 3, 4, 5, 6}, 422, 1834, 836),
AL_KHARID_WARRIOR(new int[] {18}, 451, 1156, 836), GUARD(new int[] {9, 10}, 412, 404, 836),
GUARD(new int[] {9}, 412, 1156, 836),
GUARD_NO_SHIELD(new int[] {10}, 412, 404, 836),
GARGOYLE(new int[] {1610, 1611}, 1517, 1519, 1518), GARGOYLE(new int[] {1610, 1611}, 1517, 1519, 1518),
SKELETAL_WYVERN(new int[] {3068}, 2989, 2988, 2987), SKELETAL_WYVERN(new int[] {3068}, 2989, 2988, 2987),
BAT(new int[] {412, 78}, 30, 31, 36), BAT(new int[] {412, 78}, 30, 31, 36),
@@ -24,7 +24,7 @@ public class Food {
MANTA(391, 22, "Manta Ray", 0, "Food", false), MANTA(391, 22, "Manta Ray", 0, "Food", false),
SHARK(385, 20, "Shark", 0, "Food", false), SHARK(385, 20, "Shark", 0, "Food", false),
LOBSTER(379, 12, "Lobster", 0, "Food", false), LOBSTER(379, 12, "Lobster", 0, "Food", false),
KARAMBWAN(3144, 18, "Karambwan", 0, "Food", false), KARAMBWAN(3144, 2 + Misc.random(4), "Karambwan", 0, "Food", false),
TROUT(333, 7, "Trout", 0, "Food", false), TROUT(333, 7, "Trout", 0, "Food", false),
SALMON(329, 9, "Salmon", 0, "Food", false), SALMON(329, 9, "Salmon", 0, "Food", false),
SWORDFISH(373, 14, "Swordfish", 0, "Food", false), SWORDFISH(373, 14, "Swordfish", 0, "Food", false),
@@ -39,8 +39,7 @@ public class Cooking extends SkillHandler {
SWORDFISH(371, 373, 375, 50, 140, 86, 81, "swordfish"), SWORDFISH(371, 373, 375, 50, 140, 86, 81, "swordfish"),
MONKFISH(7944, 7946, 7948, 62, 150, 92, 90, "monkfish"), MONKFISH(7944, 7946, 7948, 62, 150, 92, 90, "monkfish"),
SHARK(383, 385, 387, 76, 210, 100, 94, "shark"), SHARK(383, 385, 387, 76, 210, 100, 94, "shark"),
SEA_TURTLE(395, 397, 399, 82, 211, 100, 100, "sea turtle"), MANTA_RAY(389, 391, 393, 91, 169, 100, 100, "manta ray"),
MANTA_RAY(389, 391, 393, 91, 216, 100, 100, "manta ray"),
SEAWEED(401, 1781, 1781, 1, 1, 1, 1, "sea weed"), SEAWEED(401, 1781, 1781, 1, 1, 1, 1, "sea weed"),
CURRY(2009, 2011, 2013, 60, 280, 74, 74, "curry"); CURRY(2009, 2011, 2013, 60, 280, 74, 74, "curry");
@@ -670,9 +670,7 @@ public final class DialogueFactoryPlugin {
private final String[] splitLines(String... text) { private final String[] splitLines(String... text) {
if(text.length > 1){ if(text.length > 1){
if(GameConstants.SERVER_DEBUG) {
logger.log(Level.INFO, "Detected more than 1 Dialogue line. Assuming Dialogues have been split already."); logger.log(Level.INFO, "Detected more than 1 Dialogue line. Assuming Dialogues have been split already.");
}
return text; return text;
} }
int characters = text[0].length(); int characters = text[0].length();
@@ -317,6 +317,140 @@ public class DialogueHandler {
player.nextChat = 0; player.nextChat = 0;
player.ptjob = 2; player.ptjob = 2;
break; break;
case 50:
sendNpcChat1("What am I to do?", player.talkingNpc, "Cook");
player.nextChat = 51;
break;
case 51:
sendOption("What's wrong?", "Can you cook me a cake?",
"You don't look very happy.", "Nice hat.");
player.dialogueAction = 52;
break;
case 52:
sendPlayerChat("What's wrong?");
player.nextChat = 54;
break;
case 54:
sendNpcChat3(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!",
player.talkingNpc, "Cook");
player.nextChat = 55;
break;
case 55:
sendNpcChat4(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?", player.talkingNpc, "Cook");
player.nextChat = 56;
break;
case 56:
sendOption("I'm always happy to help a cook in distress.",
"I can't right now, Maybe later.");
player.dialogueAction = 57;
break;
case 57:
sendPlayerChat("Yes, I'll help you.");// 9157
player.nextChat = 60;
break;
case 58:
sendPlayerChat("I can't right now, Maybe later.");// 9158
player.nextChat = 59;
break;
case 59:
sendNpcChat1("Oh please! Hurry then!", player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 60:
sendNpcChat2("Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me.",
player.talkingNpc, "Cook");
player.cookAss = 1;
QuestAssistant.sendStages(player);
player.nextChat = 61;
break;
case 61:
sendPlayerChat("So where do I find these ingredients then?");
player.nextChat = 62;
break;
case 62:
sendNpcChat3("You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 63:
sendNpcChat1("I don't have time for your jibber-jabber!",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 64:
sendNpcChat1("Does it look like I have the time?",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 65:
sendPlayerChat("You don't look so happy.");
player.nextChat = 54;
break;
case 66:
sendNpcChat1(
"How are you getting on with finding the ingredients?",
player.talkingNpc, "Cook");
player.nextChat = 67;
break;
case 67:
if (player.getItemAssistant().playerHasItem(1944, 1)
&& player.getItemAssistant().playerHasItem(1927, 1)
&& player.getItemAssistant().playerHasItem(1933, 1)) {
sendPlayerChat("Here's all the items!");
player.nextChat = 68;
} else {
sendPlayerChat("I don't have all the items yet.");
player.nextChat = 59;
}
break;
case 68:
player.getItemAssistant().deleteItem(1944, 1);
player.getItemAssistant().deleteItem(1927, 1);
player.getItemAssistant().deleteItem(1933, 1);
player.cookAss = 2;
sendNpcChat2("You brought me everything I need! I'm saved!",
"Thank you!", player.talkingNpc, "Cook");
player.nextChat = 69;
break;
case 69:
sendPlayerChat("So do I get to go to the Duke's Party?");
player.nextChat = 70;
break;
case 70:
sendNpcChat2(
"I'm afraid not, only the big cheeses get to dine with the",
"Duke.", player.talkingNpc, "Cook");
player.nextChat = 72;
break;
case 72:
sendPlayerChat(
"Well, maybe one day I'll be important enough to sit on",
"the Duke's table");
player.nextChat = 74;
break;
case 74:
sendNpcChat1("Maybe, but I won't be holding my breath.",
player.talkingNpc, "Cook");
player.nextChat = 75;
break;
case 75:
QuestRewards.cookReward(player);
break;
case 76:
sendNpcChat1("Thanks for helping me out friend!",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 84: case 84:
sendNpcChat1("How are you getting on finding all my supplies", sendNpcChat1("How are you getting on finding all my supplies",
player.talkingNpc, "Doric"); player.talkingNpc, "Doric");
@@ -5985,14 +6119,10 @@ public class DialogueHandler {
break; break;
case 3116: case 3116:
if(GameConstants.VARIABLE_XP_RATE) {
player.getDialogueHandler().sendDialogues(10001, -1);
} else {
player.getPacketSender().showInterface(3559); player.getPacketSender().showInterface(3559);
player.canChangeAppearance = true; player.canChangeAppearance = true;
player.closeTutorialInterface = true; player.closeTutorialInterface = true;
player.nextChat = 0; player.nextChat = 0;
}
break; break;
case 3117: case 3117:
@@ -7426,34 +7556,6 @@ 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,
@@ -12,333 +12,22 @@ import com.rs2.game.players.Player;
* Dialogue Options * Dialogue Options
* @author Andrew (Mr Extremez) * @author Andrew (Mr Extremez)
*/ */
/**
* Handles Dialogue Options between NPCs and Players
* @Deprecated Consider using {@link DialogueFactoryPlugin} instead to implement dialogues.
*
*/
@Deprecated
public class DialogueOptions { public class DialogueOptions {
public static void handleDialogueOptions(Player player, int buttonId) { public static void handleDialogueOptions(Player player, int buttonId) {
switch (buttonId) { switch (buttonId) {
case 9167:
switch (player.dialogueAction) {
case 63:
player.getDialogueHandler().sendDialogues(166, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(173, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(277, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(295, player.npcType);
return;
case 129:
player.getDialogueHandler().sendDialogues(231, player.npcType);
return;
case 58:
player.getDialogueHandler().sendDialogues(540, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(39, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(194, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1053, player.npcType);
return;
case 251:
player.getPacketSender().openUpBank();
player.nextChat = 0;
return;
case 144:
player.getDialogueHandler().sendDialogues(1314, player.npcType);
return;
case 502:
player.getDialogueHandler().sendDialogues(1026, player.npcType);
return;
case 1301: // first option haircut.
player.getDialogueHandler().sendDialogues(1302, 598);
return;
case 53:
if (player.objectId == 1293 || player.objectId == 1317) {
player.getPlayerAssistant().startTeleport(2542, 3169, 0, "modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 159:
player.getDialogueHandler().sendDialogues(3161, player.npcType);
return;
case 167:
player.getDialogueHandler().sendDialogues(1343, player.npcType);
return;
case 222:
player.getDialogueHandler().sendDialogues(911, player.npcType);
player.dialogueAction = -1;
return;
case 182:
player.getDialogueHandler().sendNpcChat1("No, I was hoping someone could help me find it though.", player.talkingNpc, "Squire");
player.nextChat = 0;
return;
case 188:
player.getDialogueHandler().sendDialogues(3129, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(629, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(629, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3567, player.npcType);
return;
case 7555: //lostCity 1
player.getDialogueHandler().sendDialogues(3701, player.npcType);
return;
case 10000: // Shop
if (!player.inPlayerShopArea()) {
player.getDialogueHandler().sendStatement("You need to be in a bank zone or trade area for this.");
return;
}
player.getDialogueHandler().sendStatement("You summoned your shop!");
BotHandler.playerShop(player);
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.getPacketSender().closeAllWindows();
break;
case 9168: /*
switch (player.dialogueAction) { * TWO OPTIONS
case 63: */
player.getDialogueHandler().sendDialogues(167, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(174, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(279, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(297, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(192, player.npcType);
return;
case 126:
player.getDialogueHandler().sendDialogues(203, player.npcType);
return;
case 58:
player.getDialogueHandler().sendDialogues(538, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(40, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1049, player.npcType);
break;
case 251:
player.getBankPin().bankPinSettings();
player.nextChat = 0;
return;
case 502:
player.getDialogueHandler().sendDialogues(1022, player.npcType);
return;
case 1301:
player.getDialogueHandler().sendDialogues(1308, 598);
return;
case 144:
player.getDialogueHandler().sendDialogues(1315, player.npcType);
return;
case 53:
if (player.objectId == 1294 || player.objectId == 1317) {
player.getPlayerAssistant().startTeleport(2461, 3444, 0,
"modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 159:
player.getDialogueHandler().sendDialogues(3195, player.npcType);
return;
case 167:
player.getDialogueHandler().sendDialogues(1344, player.npcType);
return;
case 222:
player.getDialogueHandler().sendDialogues(912, player.npcType);
player.dialogueAction = -1;
return;
case 182:
player.getDialogueHandler().sendDialogues(615, player.npcType);
return;
case 188:
player.getDialogueHandler().sendDialogues(3130, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(628, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(628, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3568, player.npcType);
return;
case 7555:
player.getDialogueHandler().sendDialogues(3597, player.npcType);
return;
case 10000:
player.getDialogueHandler().sendStatement("You close your shop!");
BotHandler.closeShop(player);
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.getPacketSender().closeAllWindows();
break;
case 9169: // First
switch (player.dialogueAction) {
case 63:
player.getDialogueHandler().sendDialogues(168, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(175, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(278, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(296, player.npcType);
return;
case 53:
if (player.objectId == 1294 || player.objectId == 1293) {
player.getPlayerAssistant().startTeleport(3179, 3507, 0,
"modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 129:
player.getDialogueHandler().sendDialogues(232, player.npcType);
return;
case 126:
player.getDialogueHandler().sendDialogues(204, player.npcType);
return;
case 144:
player.getDialogueHandler().sendDialogues(1316, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(3193, 741);
return;
case 58:
player.getDialogueHandler().sendDialogues(539, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(41, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1050, player.npcType);
break;
case 251:
player.getDialogueHandler().sendDialogues(1015, 494);
return;
case 502:
player.getDialogueHandler().sendDialogues(1025, player.npcType);
return;
case 1301:
player.getDialogueHandler().sendDialogues(1306, 598);
return;
case 222:
player.getDialogueHandler().sendDialogues(913, player.npcType);
player.dialogueAction = -1;
return;
case 167:
player.getDialogueHandler().sendDialogues(1342, player.npcType);
return;
case 159:
player.getDialogueHandler().sendDialogues(3160, player.npcType);
return;
case 182:
player.getDialogueHandler().sendNpcChat1("Of course he is angry...", player.talkingNpc, "Squire");
player.nextChat = 0;
return;
case 188:
player.getDialogueHandler().sendDialogues(3131, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(630, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(691, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3569, player.npcType);
return;
case 7555:
player.getDialogueHandler().sendDialogues(3599, player.npcType);
return;
case 10000:
player.getDialogueHandler().sendStatement("You withdraw " + Bot.formatSellPrice(BotHandler.checkCoins(player)) + " from your shop!");
BotHandler.takeCoins(player);
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.getPacketSender().closeAllWindows();
break;
case 9190:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3533, player.npcType);//4
break;
}
break;
case 9191:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3540, player.npcType);
break;
}
break;
case 9192:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3548, player.npcType);
break;
}
break;
case 9193:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3550, player.npcType);
break;
}
break;
case 9194:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3553, player.npcType);
break;
}
break;
case 9157:// barrows tele to tunnels case 9157:// barrows tele to tunnels
if (player.dialogueAction == 1) { if (player.dialogueAction == 1) {
int r = 4; int r = 4;
@@ -393,6 +82,9 @@ public class DialogueOptions {
} else if (player.dialogueAction == 56) { } else if (player.dialogueAction == 56) {
player.getDialogueHandler().sendDialogues(96, player.npcType); player.getDialogueHandler().sendDialogues(96, player.npcType);
return; return;
} else if (player.dialogueAction == 57) {
player.getDialogueHandler().sendDialogues(57, player.npcType);
return;
} else if (player.dialogueAction == 3222) { } else if (player.dialogueAction == 3222) {
player.getBarrows().checkCoffins(); player.getBarrows().checkCoffins();
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
@@ -616,57 +308,25 @@ public class DialogueOptions {
} else if (player.dialogueAction == 3575) { } else if (player.dialogueAction == 3575) {
player.getDialogueHandler().sendDialogues(3577, player.npcType); player.getDialogueHandler().sendDialogues(3577, player.npcType);
return; return;
} } else if (player.dialogueAction == 7556) {
else if (player.dialogueAction == 7556)
{
player.getDialogueHandler().sendDialogues(3710, player.npcType); player.getDialogueHandler().sendDialogues(3710, player.npcType);
return; return;
} } else if (player.dialogueAction == 7557) {
else if (player.dialogueAction == 7557)
{
player.getDialogueHandler().sendDialogues(3586, player.npcType); player.getDialogueHandler().sendDialogues(3586, player.npcType);
return; return;
} } else if (player.dialogueAction == 7558) {
else if (player.dialogueAction == 7558)
{
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;
// Second
case 9158: case 9158:
if (player.dialogueAction == 8) { if (player.dialogueAction == 8) {
player.getPlayerAssistant().fixAllBarrows(); player.getPlayerAssistant().fixAllBarrows();
@@ -689,6 +349,9 @@ public class DialogueOptions {
} else if (player.dialogueAction == 74) { } else if (player.dialogueAction == 74) {
player.getDialogueHandler().sendDialogues(535, player.npcType); player.getDialogueHandler().sendDialogues(535, player.npcType);
return; return;
} else if (player.dialogueAction == 57) {
player.getDialogueHandler().sendDialogues(58, player.npcType);
return;
} else if (player.dialogueAction == 62) { } else if (player.dialogueAction == 62) {
player.getDialogueHandler().sendDialogues(309, player.npcType); player.getDialogueHandler().sendDialogues(309, player.npcType);
return; return;
@@ -872,33 +535,294 @@ public class DialogueOptions {
} else if (player.dialogueAction == 3575) { } else if (player.dialogueAction == 3575) {
player.getDialogueHandler().sendDialogues(3576, player.npcType); player.getDialogueHandler().sendDialogues(3576, player.npcType);
return; return;
} else if (player.dialogueAction == 7556) } else if (player.dialogueAction == 7556) {
{
player.getDialogueHandler().sendDialogues(3702, player.npcType); player.getDialogueHandler().sendDialogues(3702, player.npcType);
return; return;
} else if (player.dialogueAction == 7557) } else if (player.dialogueAction == 7557) {
{
player.getDialogueHandler().sendDialogues(3704, player.npcType); player.getDialogueHandler().sendDialogues(3704, player.npcType);
return; return;
} } else if (player.dialogueAction == 7559) {
else if (player.dialogueAction == 7559)
{
player.getDialogueHandler().sendDialogues(3865, player.npcType); player.getDialogueHandler().sendDialogues(3865, player.npcType);
return; return;
} else if (player.dialogueAction == 10004) { }
player.getDialogueHandler().sendDialogues(10002, 2244); player.dialogueAction = 0;
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(); player.getPacketSender().closeAllWindows();
break;
/*
* THREE OPTIONS
*/
// First
case 9167:
switch (player.dialogueAction) {
case 63:
player.getDialogueHandler().sendDialogues(166, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(173, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(277, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(295, player.npcType);
return;
case 129:
player.getDialogueHandler().sendDialogues(231, player.npcType);
return;
case 58:
player.getDialogueHandler().sendDialogues(540, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(39, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(194, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1053, player.npcType);
return;
case 144:
player.getDialogueHandler().sendDialogues(1314, player.npcType);
return;
case 502:
player.getDialogueHandler().sendDialogues(1026, player.npcType);
return;
case 1301: // first option haircut.
player.getDialogueHandler().sendDialogues(1302, 598);
return;
case 53:
if (player.objectId == 1293 || player.objectId == 1317) {
player.getPlayerAssistant().startTeleport(2542, 3169, 0, "modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 159:
player.getDialogueHandler().sendDialogues(3161, player.npcType);
return;
case 167:
player.getDialogueHandler().sendDialogues(1343, player.npcType);
return;
case 222:
player.getDialogueHandler().sendDialogues(911, player.npcType);
player.dialogueAction = -1;
return;
case 182:
player.getDialogueHandler().sendNpcChat1("No, I was hoping someone could help me find it though.", player.talkingNpc, "Squire");
player.nextChat = 0;
return;
case 188:
player.getDialogueHandler().sendDialogues(3129, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(629, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(629, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3567, player.npcType);
return;
case 7555: //lostCity 1
player.getDialogueHandler().sendDialogues(3701, player.npcType);
return;
case 10000: // Shop
if (!player.inPlayerShopArea()) {
player.getDialogueHandler().sendStatement("You need to be in a bank zone or trade area for this.");
return;
}
player.getDialogueHandler().sendStatement("You summoned your shop!");
BotHandler.playerShop(player);
return;
}
player.dialogueAction = 0;
player.getPacketSender().closeAllWindows();
break;
// Second
case 9168:
switch (player.dialogueAction) {
case 63:
player.getDialogueHandler().sendDialogues(167, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(174, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(279, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(297, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(192, player.npcType);
return;
case 126:
player.getDialogueHandler().sendDialogues(203, player.npcType);
return;
case 58:
player.getDialogueHandler().sendDialogues(538, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(40, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1049, player.npcType);
break;
case 502:
player.getDialogueHandler().sendDialogues(1022, player.npcType);
return;
case 1301:
player.getDialogueHandler().sendDialogues(1308, 598);
return;
case 144:
player.getDialogueHandler().sendDialogues(1315, player.npcType);
return;
case 53:
if (player.objectId == 1294 || player.objectId == 1317) {
player.getPlayerAssistant().startTeleport(2461, 3444, 0,
"modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 159:
player.getDialogueHandler().sendDialogues(3195, player.npcType);
return;
case 167:
player.getDialogueHandler().sendDialogues(1344, player.npcType);
return;
case 222:
player.getDialogueHandler().sendDialogues(912, player.npcType);
player.dialogueAction = -1;
return;
case 182:
player.getDialogueHandler().sendDialogues(615, player.npcType);
return;
case 188:
player.getDialogueHandler().sendDialogues(3130, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(628, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(628, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3568, player.npcType);
return;
case 7555:
player.getDialogueHandler().sendDialogues(3597, player.npcType);
return;
case 10000:
player.getDialogueHandler().sendStatement("You close your shop!");
BotHandler.closeShop(player);
return; return;
} }
player.dialogueAction = 0; player.dialogueAction = 0;
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
break; break;
// Third
case 9169:
switch (player.dialogueAction) {
case 63:
player.getDialogueHandler().sendDialogues(168, player.npcType);
return;
case 64:
player.getDialogueHandler().sendDialogues(175, player.npcType);
return;
case 60:
player.getDialogueHandler().sendDialogues(278, player.npcType);
return;
case 61:
player.getDialogueHandler().sendDialogues(296, player.npcType);
return;
case 53:
if (player.objectId == 1294 || player.objectId == 1293) {
player.getPlayerAssistant().startTeleport(3179, 3507, 0,
"modern");
} else {
player.getPacketSender().sendMessage("You can't teleport there, because you are already there!");
player.getPacketSender().closeAllWindows();
}
return;
case 129:
player.getDialogueHandler().sendDialogues(232, player.npcType);
return;
case 126:
player.getDialogueHandler().sendDialogues(204, player.npcType);
return;
case 144:
player.getDialogueHandler().sendDialogues(1316, player.npcType);
return;
case 124:
player.getDialogueHandler().sendDialogues(3193, 741);
return;
case 58:
player.getDialogueHandler().sendDialogues(539, player.npcType);
return;
case 68:
player.getDialogueHandler().sendDialogues(41, player.npcType);
return;
case 230:
player.getDialogueHandler().sendDialogues(1050, player.npcType);
break;
case 502:
player.getDialogueHandler().sendDialogues(1025, player.npcType);
return;
case 1301:
player.getDialogueHandler().sendDialogues(1306, 598);
return;
case 222:
player.getDialogueHandler().sendDialogues(913, player.npcType);
player.dialogueAction = -1;
return;
case 167:
player.getDialogueHandler().sendDialogues(1342, player.npcType);
return;
case 159:
player.getDialogueHandler().sendDialogues(3160, player.npcType);
return;
case 182:
player.getDialogueHandler().sendNpcChat1("Of course he is angry...", player.talkingNpc, "Squire");
player.nextChat = 0;
return;
case 188:
player.getDialogueHandler().sendDialogues(3131, 945);
return;
case 185:
player.getDialogueHandler().sendDialogues(630, player.npcType);
return;
case 186: // Shield of Arrav
player.getDialogueHandler().sendDialogues(691, player.npcType);
return;
case 702:
player.getDialogueHandler().sendDialogues(3569, player.npcType);
return;
case 7555:
player.getDialogueHandler().sendDialogues(3599, player.npcType);
return;
case 10000:
player.getDialogueHandler().sendStatement("You withdraw " + Bot.formatSellPrice(BotHandler.checkCoins(player)) + " from your shop!");
BotHandler.takeCoins(player);
return;
}
player.dialogueAction = 0;
player.getPacketSender().closeAllWindows();
break;
/*
* FOUR OPTIONS
*/
// First
case 9178: case 9178:
if (player.dialogueAction == 2) { if (player.dialogueAction == 2) {
player.getPlayerAssistant().startTeleport(3428, 3538, 0, "modern"); player.getPlayerAssistant().startTeleport(3428, 3538, 0, "modern");
@@ -938,6 +862,9 @@ public class DialogueOptions {
if (player.dialogueAction == 113) { if (player.dialogueAction == 113) {
player.getDialogueHandler().sendDialogues(3540, player.npcType); player.getDialogueHandler().sendDialogues(3540, player.npcType);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(52, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3524, player.npcType); player.getDialogueHandler().sendDialogues(3524, player.npcType);
} }
@@ -965,12 +892,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;
// Second
case 9179: case 9179:
if (player.dialogueAction == 2) { if (player.dialogueAction == 2) {
player.getPlayerAssistant().startTeleport(2884, 3395, 0, "modern"); player.getPlayerAssistant().startTeleport(2884, 3395, 0, "modern");
@@ -1008,6 +933,9 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(3293, 3174, 0, "modern"); player.getPlayerAssistant().gloryTeleport(3293, 3174, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(64, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523, player.npcType); player.getDialogueHandler().sendDialogues(3523, player.npcType);
} }
@@ -1035,12 +963,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;
// Third
case 9180: case 9180:
if (player.dialogueAction == 2) { if (player.dialogueAction == 2) {
player.getPlayerAssistant().startTeleport(2471, 10137, 0, "modern"); player.getPlayerAssistant().startTeleport(2471, 10137, 0, "modern");
@@ -1081,6 +1007,9 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(2911, 3152, 0, "modern"); player.getPlayerAssistant().gloryTeleport(2911, 3152, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(65, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523, player.npcType); player.getDialogueHandler().sendDialogues(3523, player.npcType);
} }
@@ -1108,12 +1037,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;
// Fourth
case 9181: case 9181:
if (player.dialogueAction == 2) { if (player.dialogueAction == 2) {
player.getPlayerAssistant().startTeleport(2669, 3714, 0, "modern"); player.getPlayerAssistant().startTeleport(2669, 3714, 0, "modern");
@@ -1139,6 +1066,9 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(3103, 3249, 0, "modern"); player.getPlayerAssistant().gloryTeleport(3103, 3249, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(63, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523, player.npcType); player.getDialogueHandler().sendDialogues(3523, player.npcType);
} }
@@ -1166,12 +1096,63 @@ 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]); break;
player.getDialogueHandler().sendDialogues(10003, player.npcType);
/*
* FIVE OPTIONS
*/
// First
case 9190:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3533, player.npcType);//4
break;
} }
break;
// Second
case 9191:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3540, player.npcType);
break;
}
break;
// Third
case 9192:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3548, player.npcType);
break;
}
break;
// Fourth
case 9193:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3550, player.npcType);
break;
}
break;
// Fifth
case 9194:
switch (player.dialogueAction) {
case 112:
player.getDialogueHandler().sendDialogues(3553, player.npcType);
break;
}
break; break;
} }
} }
} }
@@ -724,6 +724,18 @@ public class NpcActions {
} }
break; break;
case 278:
if (player.cookAss == 0) {
player.getDialogueHandler().sendDialogues(50, npcType);
} else if (player.cookAss == 1) {
player.getDialogueHandler().sendDialogues(67, npcType);
} else if (player.cookAss == 2) {
player.getDialogueHandler().sendDialogues(69, npcType);
} else if (player.cookAss == 3) {
player.getDialogueHandler().sendDialogues(76, npcType);
}
break;
case 608: case 608:
if (player.blackKnight == 0 && player.questPoints >= 12) { if (player.blackKnight == 0 && player.questPoints >= 12) {
player.getDialogueHandler().sendDialogues(3902, npcType); player.getDialogueHandler().sendDialogues(3902, npcType);
@@ -1049,14 +1049,10 @@ public class NpcHandler {
// These npcs shouldn't have drops // These npcs shouldn't have drops
return; return;
} }
boolean isDropped = false;
for (ItemDrop possible_drop : NPCDropsHandler.getNpcDrops(getNpcListName(npcs[i].npcType).toLowerCase().replace(" ", "_"), npcs[i].npcType)) { for (ItemDrop possible_drop : NPCDropsHandler.getNpcDrops(getNpcListName(npcs[i].npcType).toLowerCase().replace(" ", "_"), npcs[i].npcType)) {
if (Misc.random(possible_drop.getChance()) == 0 && !isDropped) { if (Misc.random(possible_drop.getChance()) == 0) {
int amt = possible_drop.getAmount(); int amt = possible_drop.getAmount();
GameEngine.itemHandler.createGroundItem(c, possible_drop.getItemID(), npcs[i].absX, npcs[i].absY, amt, c.playerId); GameEngine.itemHandler.createGroundItem(c, possible_drop.getItemID(), npcs[i].absX, npcs[i].absY, amt, c.playerId);
//Making sure items that always drop don't cost us our drop table roll
if (possible_drop.getChance() > 1)
isDropped = true;
} }
} }
switch (npcs[i].npcType) { switch (npcs[i].npcType) {
@@ -229,8 +229,6 @@ public class Climbing {
} else if (client.objectX == 2603 && client.objectY == 3078) { } else if (client.objectX == 2603 && client.objectY == 3078) {
client.getPlayerAssistant().feature("using this staircase"); client.getPlayerAssistant().feature("using this staircase");
client.resetWalkingQueue(); client.resetWalkingQueue();
} else if (client.objectX == 3058 && client.objectY == 3376) {
client.resetWalkingQueue();
} else if (client.absX != 3186) { } else if (client.absX != 3186) {
client.getPlayerAssistant().movePlayer(client.absX, client.getPlayerAssistant().movePlayer(client.absX,
client.absY + 6393, 0); client.absY + 6393, 0);
@@ -74,8 +74,6 @@ public abstract class Player {
public byte buffer[] = null; public byte buffer[] = null;
public String lastConnectedFrom; public String lastConnectedFrom;
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);
@@ -152,14 +150,6 @@ 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 String getDiscordCode() { return discordCode; }
public void setDiscordCode(String code) { this.discordCode = code; }
public boolean isPreaching() { public boolean isPreaching() {
return preaching; return preaching;
} }
@@ -17,6 +17,7 @@ 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;
@@ -94,7 +95,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 + " World: " + GameConstants.WORLD + "\\n", 15257); player.getPacketSender().sendString("Welcome to " + GameConstants.SERVER_NAME + "\\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) {
@@ -1832,7 +1833,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 + " World: " + GameConstants.WORLD + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@."); 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("@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");
@@ -2032,11 +2033,7 @@ 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;
} }
if (GameConstants.VARIABLE_XP_RATE){
amount *= player.getXPRate();
} else {
amount *= GameConstants.XP_RATE; 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,8 +92,6 @@ 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;
@@ -433,9 +431,6 @@ 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:
@@ -598,8 +593,6 @@ 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);
@@ -826,8 +819,6 @@ 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 */
@@ -8,12 +8,12 @@ import com.rs2.game.players.PlayerHandler;
public class PlayersOnlineWebsite { public class PlayersOnlineWebsite {
public static String password; static String password;
private static boolean hasntwared = true; private static boolean hasntwared = true;
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 + "&world=" + GameConstants.WORLD); url = new URL(GameConstants.WEBSITE_LINK + "/playersonline.php?pass=" + password + "&amount=" + amount);
url.openStream().close(); url.openStream().close();
} }
@@ -7,12 +7,12 @@ import java.net.URL;
import com.rs2.GameConstants; import com.rs2.GameConstants;
public class RegisteredAccsWebsite { public class RegisteredAccsWebsite {
public static String password; static String password;
private static boolean hasntwarned = true; private static boolean hasntwarned = true;
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 + "&world=" + GameConstants.WORLD); url = new URL(GameConstants.WEBSITE_LINK + "/accountsregistered.php?pass=" + password + "&amount=" + amount);
url.openStream().close(); url.openStream().close();
} }
@@ -0,0 +1,45 @@
package com.rs2.integrations;
import org.json.JSONObject;
import com.rs2.GameEngine;
import com.rs2.integrations.discord.JavaCord;
import java.io.*;
import java.util.stream.Collectors;
public class SettingsLoader {
private static void initialize() {
JSONObject main = new JSONObject();
main
.put("bot-token", "")
.put("websitepass", "")
.put("erssecret", "");
try {
BufferedWriter br = new BufferedWriter(new FileWriter("data/secrets.json"));
br.write(main.toString());
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void loadSettings() throws IOException {
if (!new File("data/secrets.json").exists()) {
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 Website Password there!");
} else {
BufferedReader br = new BufferedReader(new FileReader("data/secrets.json"));
String out = br.lines().collect(Collectors.joining("\n"));
JSONObject obj = new JSONObject(out);
JavaCord.token = obj.getString("bot-token");
PlayersOnlineWebsite.password = obj.getString("websitepass");
RegisteredAccsWebsite.password = obj.getString("websitepass");
GameEngine.ersSecret = obj.getString("erssecret");
}
}
}
@@ -1,13 +1,12 @@
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.*;
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;
@@ -18,7 +17,6 @@ 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;
@@ -32,24 +30,23 @@ public class JavaCord {
api.addListener(new Forum()); api.addListener(new Forum());
api.addListener(new Hiscores()); api.addListener(new Hiscores());
api.addListener(new Issues()); api.addListener(new Issues());
api.addListener(new Link());
api.addListener(new Online()); api.addListener(new Online());
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 AdminCommands());
api.addListener(new GameKick());
api.addListener(new MoveHome());
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);
} }
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,16 +0,0 @@
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 + ".");
}
}
}
@@ -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;
@@ -9,20 +8,18 @@ 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(JavaCord.commandPrefix + " commands")) { if (message.getContent().equalsIgnoreCase("::commands")) {
event.getChannel().sendMessage("```fix" event.getChannel().sendMessage("```fix"
+ System.lineSeparator() +
"::link"
+ System.lineSeparator() + + System.lineSeparator() +
"::forum/::forums" "::forum/::forums"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " gamekick(if account id linked)" "::hiscores/::highscores"
+ System.lineSeparator() +
JavaCord.commandPrefix + " hiscores/" + JavaCord.commandPrefix + " highscores"
+ System.lineSeparator() + + System.lineSeparator() +
"::issues/::bugs" "::issues/::bugs"
+ System.lineSeparator() + + System.lineSeparator() +
JavaCord.commandPrefix + " online" "::online"
+ System.lineSeparator() +
"::players"
+ System.lineSeparator() + + System.lineSeparator() +
"::vote" "::vote"
+ System.lineSeparator() + + System.lineSeparator() +
@@ -11,9 +11,7 @@ public class Forum implements MessageCreateListener {
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("::forum") || message.getContent().equalsIgnoreCase("::forums")) {
if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php"); event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/forums/index.php");
} }
} }
} }
}
@@ -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,7 +10,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(JavaCord.commandPrefix + " hiscores") || message.getContent().equalsIgnoreCase(JavaCord.commandPrefix + " highscores")) { if (message.getContent().equalsIgnoreCase("::hiscores") || message.getContent().equalsIgnoreCase("::highscores")) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/hiscores.html"); event.getChannel().sendMessage(GameConstants.WEBSITE_LINK + "/hiscores.html");
} }
} }
@@ -1,6 +1,5 @@
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,9 +9,7 @@ public class Issues implements MessageCreateListener {
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("::issues") || message.getContent().equalsIgnoreCase("::bugs")) {
if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues"); event.getChannel().sendMessage("https://github.com/2006-Scape/2006Scape/issues");
} }
} }
} }
}
@@ -1,18 +0,0 @@
package com.rs2.integrations.discord.commands;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.user.User;
import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener;
public class Link implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
Message message = event.getMessage();
User user = message.getAuthor().asUser().get();
if (message.getContent().equalsIgnoreCase("::link")) {
event.getChannel().sendMessage(user.getMentionTag() + ", Please check your DM's to continue.");
user.sendMessage("Please copy/paste the following in-game to link your Discord account: \n ```::link " + user.getIdAsString() + "```");
}
}
}
@@ -1,6 +1,5 @@
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;
@@ -11,8 +10,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(JavaCord.commandPrefix + " online")) { if (message.getContent().equalsIgnoreCase("::online")) {
event.getChannel().sendMessage(":tada: " + JavaCord.serverName + " World:" + GameConstants.WORLD + " is Online! :tada:"); event.getChannel().sendMessage(":tada: " + JavaCord.serverName + " 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(JavaCord.commandPrefix + " players")) { if (message.getContent().equalsIgnoreCase("::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 {
@@ -11,10 +11,8 @@ public class Vote implements MessageCreateListener {
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("::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!");
} }
} }
} }
}
@@ -11,9 +11,7 @@ public class Website implements MessageCreateListener {
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("::website") || message.getContent().equalsIgnoreCase("::site")) {
if (GameConstants.WORLD == 1) {
event.getChannel().sendMessage(GameConstants.WEBSITE_LINK); event.getChannel().sendMessage(GameConstants.WEBSITE_LINK);
} }
} }
} }
}
@@ -1,31 +0,0 @@
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");
}
}
}
}
@@ -1,34 +0,0 @@
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;
import java.util.Objects;
public class GameKick implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent event) {
if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " gamekick")) {
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;
if (event.getMessageAuthor().isServerAdmin() || Objects.equals(event.getMessageAuthor().getIdAsString(), c2.discordCode)) {
event.getChannel().sendMessage(playerToKick + " was kicked by " + event.getMessageAuthor().getDisplayName() + ".");
c2.disconnected = true;
c2.logout(true);
} else {
event.getChannel().sendMessage("You do not have permission to perform this command");
}
break;
}
}
}
}
}
}
@@ -1,31 +0,0 @@
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");
}
}
}
}
@@ -1,39 +0,0 @@
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");
}
}
}
}
@@ -1,40 +0,0 @@
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");
}
}
}
}
@@ -1,24 +0,0 @@
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) {
String seconds = event.getMessageContent().replace(JavaCord.commandPrefix + " update ", "");
if (event.getMessageContent().startsWith(JavaCord.commandPrefix + " update")) {
if (event.getMessageAuthor().isServerAdmin()) {
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 + " World: " + GameConstants.WORLD + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@."); 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("@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");
@@ -154,7 +154,7 @@ public class ClickObject implements PacketType {
if (player.spiritTree == false && player.clickedTree == false) { if (player.spiritTree == false && player.clickedTree == false) {
player.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears !"); player.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears !");
player.getPacketSender().sendSound(300, 100, 1); player.getPacketSender().sendSound(300, 100, 1);
NpcHandler.spawnNpc(player, 655, player.getX(), player.getY(), 0, 0, 85, 10, 80, 80, true, true); NpcHandler.spawnNpc(player, 655, player.getX(), player.getY(), 0, 0, 225, 20, 80, 80, true, true);
player.clickedTree = true; player.clickedTree = true;
} else if (player.spiritTree && player.lostCity >= 2) { } else if (player.spiritTree && player.lostCity >= 2) {
Woodcutting.startWoodcutting(player, player.objectId, player.objectX, player.objectY, player.clickObjectType); Woodcutting.startWoodcutting(player, player.objectId, player.objectX, player.objectY, player.clickObjectType);
@@ -59,7 +59,7 @@ public class ClickingButtons implements PacketType {
SilverCrafting.makeSilver(player, actionButtonId, 0); SilverCrafting.makeSilver(player, actionButtonId, 0);
Climbing.handleLadderButtons(player, actionButtonId); Climbing.handleLadderButtons(player, actionButtonId);
Specials.specialClicking(player, actionButtonId); Specials.specialClicking(player, actionButtonId);
//DialogueOptions.handleDialogueOptions(player, actionButtonId); DialogueOptions.handleDialogueOptions(player, actionButtonId);
DairyChurn.churnItem(player, actionButtonId); DairyChurn.churnItem(player, actionButtonId);
if (EnchantStaff.staffButtons(player, actionButtonId)) { if (EnchantStaff.staffButtons(player, actionButtonId)) {
return; return;
@@ -8,6 +8,7 @@ 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;
@@ -44,39 +45,6 @@ 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 "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":
@@ -289,6 +257,9 @@ 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",
"", "",
@@ -309,8 +280,6 @@ 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
@@ -325,6 +294,17 @@ 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":
@@ -16,11 +16,11 @@ public class DialoguePacket implements PacketType {
to the new system. Expect to see flickering in some Astraeus Dialogues as the old to the new system. Expect to see flickering in some Astraeus Dialogues as the old
dialogue handler activates before it. dialogue handler activates before it.
*/ */
/*if (player.nextChat > 0) { if (player.nextChat > 0) {
player.getDialogueHandler().sendDialogues(player.nextChat, player.talkingNpc); player.getDialogueHandler().sendDialogues(player.nextChat, player.talkingNpc);
} else { } else {
player.getDialogueHandler().sendDialogues(0, -1); player.getDialogueHandler().sendDialogues(0, -1);
}*/ }
// New Dialogue System // New Dialogue System
player.getDialogueFactory().execute(); player.getDialogueFactory().execute();
+4
View File
@@ -0,0 +1,4 @@
/bin/
*.iml
/target/
file_server-1.0-jar-with-dependencies.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
+118
View File
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>2006Scape</artifactId>
<groupId>com.rs2</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>file_server</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<repositories>
<repository>
<id>libs-local</id>
<name>libs</name>
<url>file://${project.basedir}/libs</url>
</repository>
</repositories>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.mina/mina-core -->
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
<version>1.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.netty/netty -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.6.6.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.5.8</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.17</version>
</dependency>
<dependency>
<groupId>javac</groupId>
<artifactId>javac</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/javac++.jar</systemPath>
</dependency>
<dependency>
<groupId>org.xmlpull.v1</groupId>
<artifactId>xpp3</artifactId>
<version>1.1.4c</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/xpp3-1.1.4c.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.apollo.jagcached.FileServer</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
+6
View File
@@ -0,0 +1,6 @@
echo This is meant to be run by the live server admin! You probably don\'t want to do this!
for i in {0..50}
do
cp target/file_server-1.0-jar-with-dependencies.jar ./fserver.jar
java -jar fserver.jar
done
@@ -14,7 +14,7 @@ public final class Constants {
/** /**
* The directory of the file system. * The directory of the file system.
*/ */
public static final String FILE_SYSTEM_DIR = "./data/cache/"; public static final String FILE_SYSTEM_DIR = "./cache/";
/** /**
* Default private constructor to prevent instantiation. * Default private constructor to prevent instantiation.
@@ -69,15 +69,14 @@ public final class FileServer {
* @throws Exception if an error occurs. * @throws Exception if an error occurs.
*/ */
public void start() throws Exception { public void start() throws Exception {
if (!new File(Constants.FILE_SYSTEM_DIR).exists()) if (!new File("cache").exists())
{ {
System.out.println("Working Directory = " + System.getProperty("user.dir"));
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/cache folder. You are LIKELY running this in the wrong directory!"); System.out.println("WARNING: I could not find the /cache folder. You are LIKELY running this in the wrong directory!");
System.out.println("In IntelliJ, fix it by clicking \"GameEngine\" > Edit Configurations at the top of your screen"); System.out.println("In IntelliJ, fix it by clicking \"FileServer\" > Edit Configurations at the top of your screen");
System.out.println("Then changing the \"Working Directory\" to be in \"2006Scape/2006Scape Server\", instead of just \"2006Scape\""); System.out.println("Then changing the \"Working Directory\" to be in \"2006Scape/2006Scape file_server\", instead of just \"2006Scape\"");
System.out.println("************************************"); System.out.println("************************************");
System.out.println("************************************"); System.out.println("************************************");
System.out.println("************************************"); System.out.println("************************************");

Some files were not shown because too many files have changed in this diff Show More