mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 00:31:51 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f98de298c8 | |||
| 2629186cc0 | |||
| 156d864bfd | |||
| 7a2a6d362b | |||
| 546669ead0 | |||
| 669573c660 | |||
| 1fe76d739e | |||
| 6deaa4162a |
@@ -1,4 +1,4 @@
|
|||||||
# This workflow will build a Java project with Maven
|
# This workflow will build a Java project with Maven
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||||
|
|
||||||
name: Java CI with Maven
|
name: Java CI with Maven
|
||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import java.math.BigInteger;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class ClientSettings {
|
public class ClientSettings {
|
||||||
|
|
||||||
public static String SNOW_MONTH = ".12";
|
public static String SNOW_MONTH = ".12";
|
||||||
/**
|
/**
|
||||||
* The Servers Name
|
* The Servers Name
|
||||||
*/
|
*/
|
||||||
@@ -18,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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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,12 +5021,12 @@ public class Game extends RSApplet {
|
|||||||
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
|
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
|
||||||
graphicsEnabled = !graphicsEnabled;
|
graphicsEnabled = !graphicsEnabled;
|
||||||
}
|
}
|
||||||
if (myPrivilege >= 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++)
|
||||||
for (int k2 = 1; k2 < 103; k2++)
|
for(int k2 = 1; k2 < 103; k2++)
|
||||||
aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0;
|
aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0;
|
||||||
if (inputString.equals("::clientdrop")) {
|
if (inputString.equals("::clientdrop")) {
|
||||||
dropClient();
|
dropClient();
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-151
@@ -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!")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -10,8 +10,8 @@
|
|||||||
<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>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
@@ -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 + ".";
|
||||||
/**
|
|
||||||
* The Variables Below Should Only Be Changed If You Understand What You Are Doing
|
|
||||||
*/
|
|
||||||
public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE,
|
|
||||||
IPS_ALLOWED = 250, CONNECTION_DELAY = 100;
|
|
||||||
|
|
||||||
public final static boolean sendServerPackets = false, SOUND = true, GUILDS = true;
|
public final static String WEBSITE_LINK = "https://2006Scape.org";
|
||||||
|
public final static boolean WEBSITE_TOTAL_CHARACTERS_INTEGRATION = false;
|
||||||
|
public final static double TEST_VERSION = 2.3;
|
||||||
|
|
||||||
|
public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE, CLIENT_VERSION = 999999,
|
||||||
|
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,11 +49,10 @@ 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
|
||||||
*
|
*
|
||||||
* @author Sanity
|
* @author Sanity
|
||||||
* @author Graham
|
* @author Graham
|
||||||
* @author Blake
|
* @author Blake
|
||||||
@@ -60,10 +60,10 @@ import org.apollo.jagcached.FileServer;
|
|||||||
* @author Integration Julian.
|
* @author Integration Julian.
|
||||||
*/
|
*/
|
||||||
public class GameEngine {
|
public class GameEngine {
|
||||||
|
|
||||||
|
|
||||||
private static long minutesCounter;
|
private static long minutesCounter;
|
||||||
|
|
||||||
private static void startMinutesCounter() {
|
private static void startMinutesCounter() {
|
||||||
try {
|
try {
|
||||||
minuteFile = new BufferedReader(new FileReader(
|
minuteFile = new BufferedReader(new FileReader(
|
||||||
@@ -102,12 +102,13 @@ public class GameEngine {
|
|||||||
public static void schedule(Tick tick) {
|
public static void schedule(Tick tick) {
|
||||||
getScheduler().schedule(tick);
|
getScheduler().schedule(tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static String ersSecret;
|
public static String ersSecret;
|
||||||
public static int[] cannonsX = new int[50];
|
public static int[] cannonsX = new int [50];
|
||||||
public static int[] cannonsY = new int[50];
|
public static int[] cannonsY = new int [50];
|
||||||
public static String[] cannonsO = new String[50];
|
public static String[] cannonsO = new String [50];
|
||||||
public static boolean sleeping;
|
public static boolean sleeping;
|
||||||
public static boolean updateServer = false;
|
public static boolean updateServer = false;
|
||||||
public static long lastMassSave = System.currentTimeMillis();
|
public static long lastMassSave = System.currentTimeMillis();
|
||||||
@@ -126,41 +127,28 @@ public class GameEngine {
|
|||||||
public static ObjectManager objectManager = new ObjectManager();
|
public static ObjectManager objectManager = new ObjectManager();
|
||||||
public static FightCaves fightCaves = new FightCaves();
|
public static FightCaves fightCaves = new FightCaves();
|
||||||
private static PestControl pestControl = new PestControl();
|
private static PestControl pestControl = new PestControl();
|
||||||
public static Trawler trawler = new Trawler();
|
public static Trawler trawler = new Trawler();
|
||||||
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("************************************");
|
||||||
System.out.println("WARNING: I could not find the /data folder. You are LIKELY running this in the wrong directory!");
|
System.out.println("WARNING: I could not find the /data folder. You are LIKELY running this in the wrong directory!");
|
||||||
@@ -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();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -237,11 +213,11 @@ public class GameEngine {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Main Server Tick
|
* Main Server Tick
|
||||||
*
|
*
|
||||||
* This scheduler will tick once every 600ms. If the previous tick takes
|
* This scheduler will tick once every 600ms. If the previous tick takes
|
||||||
* 300ms to execute, this scheduler will wait 300ms only before the next
|
* 300ms to execute, this scheduler will wait 300ms only before the next
|
||||||
* tick.
|
* tick.
|
||||||
*
|
*
|
||||||
* scheduleAtFixedRate() does not invoke concurrent Runnables.
|
* scheduleAtFixedRate() does not invoke concurrent Runnables.
|
||||||
*/
|
*/
|
||||||
scheduler.scheduleAtFixedRate(new Runnable() {
|
scheduler.scheduleAtFixedRate(new Runnable() {
|
||||||
@@ -264,11 +240,11 @@ 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) {
|
||||||
DiscordActivity.updateActivity();
|
DiscordActivity.updateActivity();
|
||||||
}
|
}
|
||||||
if (System.currentTimeMillis() - lastMassSave > 300000) {
|
if (System.currentTimeMillis() - lastMassSave > 300000) {
|
||||||
@@ -301,13 +277,13 @@ public class GameEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 0, GameConstants.CYCLE_TIME, TimeUnit.MILLISECONDS);
|
}, 0, GameConstants.CYCLE_TIME, TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I'd recommend disabling this until I can be bothered to implement it
|
* I'd recommend disabling this until I can be bothered to implement it
|
||||||
* properly.
|
* properly.
|
||||||
*/
|
*/
|
||||||
// CommandConsole.getInstance();
|
// CommandConsole.getInstance();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while (!scheduler.awaitTermination(60, TimeUnit.SECONDS)) {
|
while (!scheduler.awaitTermination(60, TimeUnit.SECONDS)) {
|
||||||
// TODO
|
// TODO
|
||||||
@@ -316,7 +292,7 @@ public class GameEngine {
|
|||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
acceptor = null;
|
acceptor = null;
|
||||||
connectionHandler = null;
|
connectionHandler = null;
|
||||||
sac = null;
|
sac = null;
|
||||||
@@ -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),
|
||||||
|
|||||||
@@ -38,9 +38,8 @@ public class Cooking extends SkillHandler {
|
|||||||
LOBSTER(377, 379, 381, 40, 120, 74, 68, "lobster"),
|
LOBSTER(377, 379, 381, 40, 120, 74, 68, "lobster"),
|
||||||
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.getPacketSender().showInterface(3559);
|
||||||
player.getDialogueHandler().sendDialogues(10001, -1);
|
player.canChangeAppearance = true;
|
||||||
} else {
|
player.closeTutorialInterface = true;
|
||||||
player.getPacketSender().showInterface(3559);
|
player.nextChat = 0;
|
||||||
player.canChangeAppearance = true;
|
|
||||||
player.closeTutorialInterface = true;
|
|
||||||
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,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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,9 +74,7 @@ public abstract class Player {
|
|||||||
|
|
||||||
public byte buffer[] = null;
|
public byte buffer[] = null;
|
||||||
public String lastConnectedFrom;
|
public String lastConnectedFrom;
|
||||||
public static int xpRate = 1;
|
private Compost compost = new Compost(this);
|
||||||
public String discordCode;
|
|
||||||
private Compost compost = new Compost(this);
|
|
||||||
private Allotments allotment = new Allotments(this);
|
private Allotments allotment = new Allotments(this);
|
||||||
private Flowers flower = new Flowers(this);
|
private Flowers flower = new Flowers(this);
|
||||||
private Herbs herb = new Herbs(this);
|
private Herbs herb = new Herbs(this);
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -167,9 +157,9 @@ public abstract class Player {
|
|||||||
public void setPreaching(boolean preaching) {
|
public void setPreaching(boolean preaching) {
|
||||||
this.preaching = preaching;
|
this.preaching = preaching;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean preaching;
|
public boolean preaching;
|
||||||
|
|
||||||
public Compost getCompost() {
|
public Compost getCompost() {
|
||||||
return compost;
|
return compost;
|
||||||
}
|
}
|
||||||
@@ -217,12 +207,12 @@ public abstract class Player {
|
|||||||
public ToolLeprechaun getFarmingTools() {
|
public ToolLeprechaun getFarmingTools() {
|
||||||
return toolLeprechaun;
|
return toolLeprechaun;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public LogCuttingInterface getFletching() {
|
public LogCuttingInterface getFletching() {
|
||||||
return fletching;
|
return fletching;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleGates getSingleGates() {
|
public SingleGates getSingleGates() {
|
||||||
return singleGates;
|
return singleGates;
|
||||||
}
|
}
|
||||||
@@ -398,7 +388,7 @@ public abstract class Player {
|
|||||||
public MageTrainingArena getMageTrainingArena() {
|
public MageTrainingArena getMageTrainingArena() {
|
||||||
return mageArena;
|
return mageArena;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Trading getTrading() {
|
public Trading getTrading() {
|
||||||
return trading;
|
return trading;
|
||||||
}
|
}
|
||||||
@@ -438,13 +428,13 @@ public abstract class Player {
|
|||||||
public Inventory getInventory() {
|
public Inventory getInventory() {
|
||||||
return inventory;
|
return inventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Inventory inventory = new Inventory(this);
|
private Inventory inventory = new Inventory(this);
|
||||||
|
|
||||||
|
|
||||||
private int tempInteger;
|
private int tempInteger;
|
||||||
public boolean tempBoolean;
|
public boolean tempBoolean;
|
||||||
|
|
||||||
public void setTempInteger(int tempInteger) {
|
public void setTempInteger(int tempInteger) {
|
||||||
this.tempInteger = tempInteger;
|
this.tempInteger = tempInteger;
|
||||||
}
|
}
|
||||||
@@ -454,17 +444,17 @@ public abstract class Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int totalShopItems;
|
public int totalShopItems;
|
||||||
|
|
||||||
public boolean stopPlayer(boolean stop) {
|
public boolean stopPlayer(boolean stop) {
|
||||||
return (stop ? stopPlayerPacket == true : stopPlayerPacket == false);
|
return (stop ? stopPlayerPacket == true : stopPlayerPacket == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long objectDelay;
|
public long objectDelay;
|
||||||
|
|
||||||
public long getObjectDelay() {
|
public long getObjectDelay() {
|
||||||
return (objectDelay);
|
return (objectDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long setObjectDelay(long delay) {
|
public long setObjectDelay(long delay) {
|
||||||
return (objectDelay = delay);
|
return (objectDelay = delay);
|
||||||
}
|
}
|
||||||
@@ -995,7 +985,7 @@ public abstract class Player {
|
|||||||
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
|
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
|
||||||
underAttackBy2 = 0;
|
underAttackBy2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (System.currentTimeMillis() - restoreStatsDelay > 60000) {
|
if (System.currentTimeMillis() - restoreStatsDelay > 60000) {
|
||||||
restoreStatsDelay = System.currentTimeMillis();
|
restoreStatsDelay = System.currentTimeMillis();
|
||||||
for (int skill = 0; skill < playerLevel.length; skill++) {
|
for (int skill = 0; skill < playerLevel.length; skill++) {
|
||||||
@@ -1412,20 +1402,20 @@ public abstract class Player {
|
|||||||
restoreStatsDelay, logoutDelay, buryDelay, foodDelay, potDelay,
|
restoreStatsDelay, logoutDelay, buryDelay, foodDelay, potDelay,
|
||||||
doorDelay, doubleDoorDelay, buySlayerTimer, lastIncrease,
|
doorDelay, doubleDoorDelay, buySlayerTimer, lastIncrease,
|
||||||
boneDelay, leverDelay = 0, searchObjectDelay = 0, clickDelay = 0;
|
boneDelay, leverDelay = 0, searchObjectDelay = 0, clickDelay = 0;
|
||||||
|
|
||||||
public boolean hideYell;
|
public boolean hideYell;
|
||||||
|
|
||||||
|
|
||||||
private Npc specialTarget = null;
|
private Npc specialTarget = null;
|
||||||
|
|
||||||
public void setSpecialTarget(Npc target) {
|
public void setSpecialTarget(Npc target) {
|
||||||
this.specialTarget = target;
|
this.specialTarget = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Npc getSpecialTarget() {
|
public Npc getSpecialTarget() {
|
||||||
return specialTarget;
|
return specialTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int miningAxe = -1, woodcuttingAxe = -1;
|
public int miningAxe = -1, woodcuttingAxe = -1;
|
||||||
|
|
||||||
public boolean initialized, musicOn = true, luthas,
|
public boolean initialized, musicOn = true, luthas,
|
||||||
@@ -1709,7 +1699,7 @@ public abstract class Player {
|
|||||||
4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 2097152,
|
4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 2097152,
|
||||||
8388608, 16777216, 67108864, 134217728 };
|
8388608, 16777216, 67108864, 134217728 };
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Combat variables
|
* Combat variables
|
||||||
*/
|
*/
|
||||||
@@ -1727,7 +1717,7 @@ public abstract class Player {
|
|||||||
/**
|
/**
|
||||||
* End
|
* End
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public int clickNpcType, clickObjectType, objectId, objectX,
|
public int clickNpcType, clickObjectType, objectId, objectX,
|
||||||
objectY, npcIndex, npcClickIndex, npcType;
|
objectY, npcIndex, npcClickIndex, npcType;
|
||||||
public int pItemX, pItemY, pItemId;
|
public int pItemX, pItemY, pItemId;
|
||||||
@@ -2144,11 +2134,11 @@ public abstract class Player {
|
|||||||
walkingQueueY[wQueueWritePtr] = y;
|
walkingQueueY[wQueueWritePtr] = y;
|
||||||
wQueueWritePtr = next;
|
wQueueWritePtr = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkRangeDistance() {
|
public boolean checkRangeDistance() {
|
||||||
return (usingRangeWeapon || usingBow);
|
return (usingRangeWeapon || usingBow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int gatherRangeDistance(int distance) {
|
public int gatherRangeDistance(int distance) {
|
||||||
//dart (non long range)
|
//dart (non long range)
|
||||||
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
|
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
|
||||||
@@ -2162,7 +2152,7 @@ public abstract class Player {
|
|||||||
//dart, knife, throwing axe (long range)
|
//dart, knife, throwing axe (long range)
|
||||||
} else if (usingRangeWeapon && fightMode == 3) {
|
} else if (usingRangeWeapon && fightMode == 3) {
|
||||||
distance = RangeData.usingDart(this) ? 5 : 6;
|
distance = RangeData.usingDart(this) ? 5 : 6;
|
||||||
//short bow
|
//short bow
|
||||||
} else if (usingBow && !RangeData.usingLongbow(this)) {
|
} else if (usingBow && !RangeData.usingLongbow(this)) {
|
||||||
distance = fightMode == 3 ? 7 : 9;
|
distance = fightMode == 3 ? 7 : 9;
|
||||||
}
|
}
|
||||||
@@ -2521,74 +2511,74 @@ public abstract class Player {
|
|||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.CAPE] > 1) {
|
if (playerEquipment[ItemConstants.CAPE] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CAPE]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CAPE]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.AMULET] > 1) {
|
if (playerEquipment[ItemConstants.AMULET] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.AMULET]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.AMULET]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.WEAPON] > 1) {
|
if (playerEquipment[ItemConstants.WEAPON] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.WEAPON]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.WEAPON]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.CHEST] > 1) {
|
if (playerEquipment[ItemConstants.CHEST] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CHEST]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.CHEST]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[2]);
|
playerProps.writeWord(0x100 + playerAppearance[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.SHIELD] > 1) {
|
if (playerEquipment[ItemConstants.SHIELD] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.SHIELD]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.SHIELD]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ItemData.isFullBody(playerEquipment[ItemConstants.CHEST])) {
|
if (!ItemData.isFullBody(playerEquipment[ItemConstants.CHEST])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[3]);
|
playerProps.writeWord(0x100 + playerAppearance[3]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.LEGS] > 1) {
|
if (playerEquipment[ItemConstants.LEGS] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.LEGS]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.LEGS]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[5]);
|
playerProps.writeWord(0x100 + playerAppearance[5]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ItemData.isFullHelm(playerEquipment[ItemConstants.HAT])
|
if (!ItemData.isFullHelm(playerEquipment[ItemConstants.HAT])
|
||||||
&& !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
&& !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[1]);
|
playerProps.writeWord(0x100 + playerAppearance[1]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.HANDS] > 1) {
|
if (playerEquipment[ItemConstants.HANDS] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.HANDS]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.HANDS]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[4]);
|
playerProps.writeWord(0x100 + playerAppearance[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerEquipment[ItemConstants.FEET] > 1) {
|
if (playerEquipment[ItemConstants.FEET] > 1) {
|
||||||
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.FEET]);
|
playerProps.writeWord(0x200 + playerEquipment[ItemConstants.FEET]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[6]);
|
playerProps.writeWord(0x100 + playerAppearance[6]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerAppearance[0] != 1 && !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
if (playerAppearance[0] != 1 && !ItemData.isFullMask(playerEquipment[ItemConstants.HAT])) {
|
||||||
playerProps.writeWord(0x100 + playerAppearance[7]);
|
playerProps.writeWord(0x100 + playerAppearance[7]);
|
||||||
} else {
|
} else {
|
||||||
playerProps.writeByte(0);
|
playerProps.writeByte(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {//send npc data
|
} else {//send npc data
|
||||||
playerProps.writeWord(-1);//Tells client that were being a npc
|
playerProps.writeWord(-1);//Tells client that were being a npc
|
||||||
playerProps.writeWord(npcId2);//send NpcID
|
playerProps.writeWord(npcId2);//send NpcID
|
||||||
|
|||||||
@@ -17,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 *= GameConstants.XP_RATE;
|
||||||
amount *= player.getXPRate();
|
|
||||||
} else {
|
|
||||||
amount *= GameConstants.XP_RATE;
|
|
||||||
}
|
|
||||||
int oldLevel = getLevelForXP(player.playerXP[skill]);
|
int oldLevel = getLevelForXP(player.playerXP[skill]);
|
||||||
player.playerXP[skill] += amount;
|
player.playerXP[skill] += amount;
|
||||||
if (oldLevel < getLevelForXP(player.playerXP[skill])) {
|
if (oldLevel < getLevelForXP(player.playerXP[skill])) {
|
||||||
|
|||||||
@@ -92,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,9 +11,7 @@ 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-31
@@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-34
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-31
@@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-24
@@ -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();
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
/bin/
|
||||||
|
*.iml
|
||||||
|
/target/
|
||||||
|
file_server-1.0-jar-with-dependencies.jar
|
||||||
Vendored
Vendored
Vendored
Vendored
Vendored
Vendored
Vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||||
Executable
+6
@@ -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
|
||||||
+1
-1
@@ -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.
|
||||||
+4
-5
@@ -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
Reference in New Issue
Block a user