Fix X11 Error On Headless Servers With GUI Disabled (#573)

This commit is contained in:
Josh Shippam
2023-02-02 05:00:54 +00:00
committed by GitHub
parent fa7418929e
commit 209dae48a6
4 changed files with 214 additions and 208 deletions
@@ -112,7 +112,7 @@ public class GameEngine {
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();
public static ControlPanel panel = new ControlPanel(); public static ControlPanel panel;
static { static {
shutdownServer = false; shutdownServer = false;
@@ -209,6 +209,8 @@ public class GameEngine {
* Makes Visible Control Panel If Enabled * Makes Visible Control Panel If Enabled
*/ */
if(GameConstants.GUI_ENABLED) { if(GameConstants.GUI_ENABLED) {
ControlPanel panel = new ControlPanel();
panel.initComponents();
panel.setVisible(true); panel.setVisible(true);
System.out.println("Control Panel Enabled."); System.out.println("Control Panel Enabled.");
} }
@@ -51,6 +51,7 @@ import com.rs2.game.npcs.NpcHandler;
import com.rs2.game.npcs.impl.Pets; import com.rs2.game.npcs.impl.Pets;
import com.rs2.game.objects.ObjectsActions; import com.rs2.game.objects.ObjectsActions;
import com.rs2.game.shops.ShopAssistant; import com.rs2.game.shops.ShopAssistant;
import com.rs2.gui.ControlPanel;
import com.rs2.net.Packet; import com.rs2.net.Packet;
import com.rs2.net.Packet.Type; import com.rs2.net.Packet.Type;
import com.rs2.net.PacketSender; import com.rs2.net.PacketSender;
@@ -73,12 +74,12 @@ import org.apollo.game.session.GameSession;
import org.apollo.util.security.IsaacRandom; import org.apollo.util.security.IsaacRandom;
public abstract class Player { public abstract class Player {
public byte buffer[] = null; public byte buffer[] = null;
public String lastConnectedFrom; public String lastConnectedFrom;
public static int xpRate = 1; public static int xpRate = 1;
public String discordCode; public String discordCode;
private Compost compost = new Compost(this); private Compost compost = new Compost(this);
private Allotments allotment = new Allotments(this); private Allotments allotment = new Allotments(this);
private Flowers flower = new Flowers(this); private Flowers flower = new Flowers(this);
private Herbs herb = new Herbs(this); private Herbs herb = new Herbs(this);
@@ -91,7 +92,7 @@ public abstract class Player {
private SpecialPlantTwo specialPlantTwo = new SpecialPlantTwo(this); private SpecialPlantTwo specialPlantTwo = new SpecialPlantTwo(this);
private ToolLeprechaun toolLeprechaun = new ToolLeprechaun(this); private ToolLeprechaun toolLeprechaun = new ToolLeprechaun(this);
public Stream outStream = null; public Stream outStream = null;
public GameSession session; public GameSession session;
private final ItemAssistant itemAssistant = new ItemAssistant(this); private final ItemAssistant itemAssistant = new ItemAssistant(this);
private final ShopAssistant shopAssistant = new ShopAssistant(this); private final ShopAssistant shopAssistant = new ShopAssistant(this);
private final MageTrainingArena mageArena = new MageTrainingArena(this); private final MageTrainingArena mageArena = new MageTrainingArena(this);
@@ -135,7 +136,7 @@ public abstract class Player {
private final ObjectManager objectManager = new ObjectManager(); private final ObjectManager objectManager = new ObjectManager();
public ArrayList<GameItem> fishingTrawlerReward = new ArrayList<GameItem>(); public ArrayList<GameItem> fishingTrawlerReward = new ArrayList<GameItem>();
private final RangersGuild rangersGuild = new RangersGuild(this); private final RangersGuild rangersGuild = new RangersGuild(this);
private GlassBlowing glassBlowing = new GlassBlowing(this); private GlassBlowing glassBlowing = new GlassBlowing(this);
private Barrows barrows = new Barrows(this); private Barrows barrows = new Barrows(this);
private Mining mining = new Mining(); private Mining mining = new Mining();
private ChallengePlayer challengePlayer = new ChallengePlayer(); private ChallengePlayer challengePlayer = new ChallengePlayer();
@@ -245,9 +246,9 @@ public abstract class Player {
return barrows; return barrows;
} }
public GlassBlowing getGlassBlowing() { public GlassBlowing getGlassBlowing() {
return glassBlowing; return glassBlowing;
} }
public RangersGuild getRangersGuild() { public RangersGuild getRangersGuild() {
return rangersGuild; return rangersGuild;
@@ -530,18 +531,18 @@ public abstract class Player {
if (!session.isActive() || disconnected || outStream == null || outStream.currentOffset == 0) { if (!session.isActive() || disconnected || outStream == null || outStream.currentOffset == 0) {
return; return;
} }
byte[] temp = new byte[outStream.currentOffset]; byte[] temp = new byte[outStream.currentOffset];
System.arraycopy(outStream.buffer, 0, temp, 0, temp.length); System.arraycopy(outStream.buffer, 0, temp, 0, temp.length);
// Packet packet = new Packet(-1, Type.FIXED, Unpooled.wrappedBuffer(temp)); // Packet packet = new Packet(-1, Type.FIXED, Unpooled.wrappedBuffer(temp));
// session.write(packet); // session.write(packet);
session.write(Unpooled.buffer().writeBytes(temp)); session.write(Unpooled.buffer().writeBytes(temp));
outStream.currentOffset = 0; outStream.currentOffset = 0;
// ByteBuf buffer = Unpooled.buffer(); // ByteBuf buffer = Unpooled.buffer();
// buffer.writeBytes(temp); // buffer.writeBytes(temp);
} }
public void sendClan(String name, String message, String clan, int rights) { public void sendClan(String name, String message, String clan, int rights) {
@@ -559,7 +560,8 @@ public abstract class Player {
if (session == null) { if (session == null) {
return; return;
} }
GameEngine.panel.removeEntity(playerName); if(GameConstants.GUI_ENABLED)
ControlPanel.removeEntity(playerName);
if (getCannon().hasCannon()) { if (getCannon().hasCannon()) {
getCannon().removeObject(cannonX, cannonY); getCannon().removeObject(cannonX, cannonY);
for(int i = 0; i < GameEngine.cannonsX.length; i++) { for(int i = 0; i < GameEngine.cannonsX.length; i++) {
@@ -575,7 +577,7 @@ public abstract class Player {
} }
if(GameEngine.trawler.players.contains(this)) { if(GameEngine.trawler.players.contains(this)) {
GameEngine.trawler.players.remove(this); GameEngine.trawler.players.remove(this);
} }
if (CastleWars.isInCwWait(this)) { if (CastleWars.isInCwWait(this)) {
CastleWars.leaveWaitingRoom(this); CastleWars.leaveWaitingRoom(this);
} }
@@ -640,7 +642,7 @@ public abstract class Player {
synchronized (this) { synchronized (this) {
if(GameEngine.trawler.players.contains(this)) { if(GameEngine.trawler.players.contains(this)) {
GameEngine.trawler.players.remove(this); GameEngine.trawler.players.remove(this);
} }
if (getCannon().hasCannon()) { if (getCannon().hasCannon()) {
getCannon().removeObject(cannonX, cannonY); getCannon().removeObject(cannonX, cannonY);
for(int i = 0; i < GameEngine.cannonsX.length; i++) { for(int i = 0; i < GameEngine.cannonsX.length; i++) {
@@ -675,7 +677,7 @@ public abstract class Player {
getPacketSender().sendMessage("You can't logout during combat!"); getPacketSender().sendMessage("You can't logout during combat!");
return; return;
} }
lastLoginDate = getLastLogin(); lastLoginDate = getLastLogin();
lastX = absX; lastX = absX;
lastY = absY; lastY = absY;
lastH = heightLevel; lastH = heightLevel;
@@ -760,17 +762,17 @@ public abstract class Player {
public int axeAnimation = -1; public int axeAnimation = -1;
public void antiFirePotion() { public void antiFirePotion() {
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
antiFirePot = false; antiFirePot = false;
getPacketSender().sendMessage("Your resistance to dragon fire has worn off."); getPacketSender().sendMessage("Your resistance to dragon fire has worn off.");
container.stop(); container.stop();
} }
@Override @Override
public void stop() { public void stop() {
} }
}, 200); }, 200);
} }
@@ -788,13 +790,13 @@ public abstract class Player {
return isBusy; return isBusy;
} }
public int getLastLogin() { public int getLastLogin() {
Calendar cal = new GregorianCalendar(); Calendar cal = new GregorianCalendar();
int day = cal.get(Calendar.DAY_OF_MONTH); int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH); int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR); int year = cal.get(Calendar.YEAR);
return (year * 10000) + (month * 100) + day; return (year * 10000) + (month * 100) + day;
} }
public void updateWalkEntities() { public void updateWalkEntities() {
if (inWild() && !inCw()) { if (inWild() && !inCw()) {
@@ -823,8 +825,8 @@ public abstract class Player {
} }
} else if (getPlayerAssistant().inPitsWait()) { } else if (getPlayerAssistant().inPitsWait()) {
getPacketSender().showOption(3, 0, "Null", 1); getPacketSender().showOption(3, 0, "Null", 1);
} else if(GameEngine.trawler.players.contains(this)) { } else if(GameEngine.trawler.players.contains(this)) {
getPacketSender().walkableInterface(11908); getPacketSender().walkableInterface(11908);
isSnowy = false; isSnowy = false;
} else if (Boundary.isIn(this, Boundary.BARROWS) || Boundary.isIn(this, Boundary.BARROWS_UNDERGROUND)) { } else if (Boundary.isIn(this, Boundary.BARROWS) || Boundary.isIn(this, Boundary.BARROWS_UNDERGROUND)) {
getPacketSender().sendString("Kill Count: " + barrowsKillCount, 4536); getPacketSender().sendString("Kill Count: " + barrowsKillCount, 4536);
@@ -1183,87 +1185,87 @@ public abstract class Player {
getDialogueHandler().sendDialogues(101, 2617); getDialogueHandler().sendDialogues(101, 2617);
getPlayerAssistant().movePlayer(absX, absY, playerId * 4); getPlayerAssistant().movePlayer(absX, absY, playerId * 4);
getPacketSender().sendMessage("Your wave will start in 10 seconds."); getPacketSender().sendMessage("Your wave will start in 10 seconds.");
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
GameEngine.fightCaves.spawnNextWave((Client) PlayerHandler.players[playerId]); GameEngine.fightCaves.spawnNextWave((Client) PlayerHandler.players[playerId]);
container.stop(); container.stop();
} }
@Override @Override
public void stop() { public void stop() {
} }
}, 16); }, 16);
} }
} }
public void trawlerFade(final int x, final int y, final int height) { public void trawlerFade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) { if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis(); lastAction = System.currentTimeMillis();
resetWalkingQueue(); resetWalkingQueue();
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
int tStage = 5; int tStage = 5;
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (tStage == 5) { if (tStage == 5) {
getPacketSender().showInterface(18460); getPacketSender().showInterface(18460);
} }
if (tStage == 4) { if (tStage == 4) {
getPlayerAssistant().movePlayer(x, y, height); getPlayerAssistant().movePlayer(x, y, height);
getPlayerAssistant().resetAnimationsToPrevious(); getPlayerAssistant().resetAnimationsToPrevious();
appearanceUpdateRequired = true; appearanceUpdateRequired = true;
} }
if (tStage == 3) { if (tStage == 3) {
getPacketSender().showInterface(18452); getPacketSender().showInterface(18452);
} }
if (tStage == 1) { if (tStage == 1) {
container.stop(); container.stop();
return; return;
} }
if (tStage > 0) { if (tStage > 0) {
tStage--; tStage--;
} }
} }
public void stop() { public void stop() {
getPacketSender().closeAllWindows(); getPacketSender().closeAllWindows();
tStage = 0; tStage = 0;
} }
}, 1); }, 1);
} }
} }
public void fade(final int x, final int y, final int height) { public void fade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) { if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis(); lastAction = System.currentTimeMillis();
resetWalkingQueue(); resetWalkingQueue();
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
int tStage = 6; int tStage = 6;
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (tStage == 6) { if (tStage == 6) {
getPacketSender().showInterface(18460); getPacketSender().showInterface(18460);
} }
if (tStage == 5) { if (tStage == 5) {
getPlayerAssistant().movePlayer(x, y, height); getPlayerAssistant().movePlayer(x, y, height);
updateRequired = true; updateRequired = true;
appearanceUpdateRequired = true; appearanceUpdateRequired = true;
} }
if (tStage == 4) { if (tStage == 4) {
getPacketSender().showInterface(18452); getPacketSender().showInterface(18452);
} }
if (tStage == 1) { if (tStage == 1) {
container.stop(); container.stop();
return; return;
} }
if (tStage > 0) { if (tStage > 0) {
tStage--; tStage--;
} }
} }
public void stop() { public void stop() {
getPacketSender().closeAllWindows(); getPacketSender().closeAllWindows();
tStage = 0; tStage = 0;
} }
}, 1); }, 1);
} }
} }
/** /**
* The option the player clicked * The option the player clicked
@@ -1686,40 +1688,40 @@ public abstract class Player {
public boolean antiFirePot; public boolean antiFirePot;
public boolean underWater; public boolean underWater;
public boolean prevRunning2; public boolean prevRunning2;
public int prevPrevPlayerRunIndex; public int prevPrevPlayerRunIndex;
public int prevPlayerStandIndex; public int prevPlayerStandIndex;
public int prevplayerWalkIndex; public int prevplayerWalkIndex;
public int prevPlayerTurnIndex; public int prevPlayerTurnIndex;
public int prevPlayerTurn90CWIndex; public int prevPlayerTurn90CWIndex;
public int prevPlayerTurn90CCWIndex; public int prevPlayerTurn90CCWIndex;
public int prevPlayerTurn180Index; public int prevPlayerTurn180Index;
public Client asClient() { public Client asClient() {
return (Client) this; return (Client) this;
} }
private Player player; private Player player;
public Player asPlayer() { public Player asPlayer() {
return (Player) player; return (Player) player;
} }
public boolean inTrawlerBoat() { public boolean inTrawlerBoat() {
if(inArea(2808, 2811,3415,3425)) { if(inArea(2808, 2811,3415,3425)) {
return true; return true;
} }
return false; return false;
} }
public boolean inTrawlerGame() { public boolean inTrawlerGame() {
if(inArea(2808, 2811,3415,3425)) { if(inArea(2808, 2811,3415,3425)) {
return true; return true;
} }
return false; return false;
} }
public long lastFishingTrawlerInteraction; public long lastFishingTrawlerInteraction;
public boolean inFishingTrawlerRewardsInterface; public boolean inFishingTrawlerRewardsInterface;
/** /**
* Castle Wars * Castle Wars
@@ -1809,12 +1811,12 @@ public abstract class Player {
} }
public boolean playerIsBusy() { public boolean playerIsBusy() {
if (isShopping || inTrade || openDuel || isBanking || duelStatus == 1) { if (isShopping || inTrade || openDuel || isBanking || duelStatus == 1) {
return true; return true;
} }
return false; return false;
} }
public boolean inDuelArena() { public boolean inDuelArena() {
if (absX > 3322 && absX < 3394 && absY > 3195 && absY < 3291 || absX > 3311 && absX < 3323 && absY > 3223 && absY < 3248) { if (absX > 3322 && absX < 3394 && absY > 3195 && absY < 3291 || absX > 3311 && absX < 3323 && absY > 3223 && absY < 3248) {
@@ -2075,16 +2077,16 @@ public abstract class Player {
//dart (non long range) //dart (non long range)
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) { if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
distance = 3; distance = 3;
//longbow (long range) //longbow (long range)
} else if (usingBow && fightMode == 3 && RangeData.usingLongbow(this)) { } else if (usingBow && fightMode == 3 && RangeData.usingLongbow(this)) {
distance = 10; distance = 10;
//longbow (non long range) //longbow (non long range)
} else if (usingBow && fightMode != 3 && RangeData.usingLongbow(this)) { } else if (usingBow && fightMode != 3 && RangeData.usingLongbow(this)) {
distance = RangeData.usingCrystalBow(this) ? 10 : 8; distance = RangeData.usingCrystalBow(this) ? 10 : 8;
//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;
} }
@@ -2246,7 +2248,7 @@ public abstract class Player {
if (dir1 == -1) { if (dir1 == -1) {
// don't have to update the character position, because we're just standing // don't have to update the character position, because we're just standing
if (str != null){ if (str != null){
str.createFrameVarSizeWord(81); str.createFrameVarSizeWord(81);
str.initBitAccess(); str.initBitAccess();
isMoving = false; isMoving = false;
if (updateRequired) { if (updateRequired) {
@@ -2511,10 +2513,10 @@ public abstract class Player {
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
} }
playerProps.writeByte(playerAppearance[8]); playerProps.writeByte(playerAppearance[8]);
playerProps.writeByte(playerAppearance[9]); playerProps.writeByte(playerAppearance[9]);
@@ -3120,7 +3122,7 @@ public abstract class Player {
int difference = playerLevel[GameConstants.HITPOINTS] - damage; int difference = playerLevel[GameConstants.HITPOINTS] - damage;
if (difference <= getLevelForXP(playerXP[GameConstants.HITPOINTS]) / 10 && difference > 0) if (difference <= getLevelForXP(playerXP[GameConstants.HITPOINTS]) / 10 && difference > 0)
appendRedemption(); appendRedemption();
getPlayerAssistant().handleROL(); getPlayerAssistant().handleROL();
} else { } else {
if (hitUpdateRequired) { if (hitUpdateRequired) {
hitUpdateRequired = false; hitUpdateRequired = false;
@@ -3162,4 +3164,4 @@ public abstract class Player {
updateRequired = true; updateRequired = true;
} }
} }
@@ -27,7 +27,7 @@ public class ControlPanel extends JFrame {
public JButton EMPTY_BANK; public JButton EMPTY_BANK;
public JButton EMPTY_INVENTORY; public JButton EMPTY_INVENTORY;
public JList ENTITY_LIST; public JList ENTITY_LIST;
public DefaultListModel LIST_MODEL; public static DefaultListModel LIST_MODEL;
public DefaultListModel LIST_NPCS; public DefaultListModel LIST_NPCS;
public JMenuItem EXIT_ITEM; public JMenuItem EXIT_ITEM;
public JMenu FILE_MENU; public JMenu FILE_MENU;
@@ -96,15 +96,14 @@ public class ControlPanel extends JFrame {
public JScrollPane jScrollPane4; public JScrollPane jScrollPane4;
private PanelSettings settings = null; private PanelSettings settings = null;
public ControlPanel() { public ControlPanel() {
initComponents();
} }
public void addEntity(String name) { public static void addEntity(String name) {
this.LIST_MODEL.addElement(name); LIST_MODEL.addElement(name);
} }
public void removeEntity(String name) { public static void removeEntity(String name) {
this.LIST_MODEL.removeElement(name); LIST_MODEL.removeElement(name);
} }
public PanelSettings settings() { public PanelSettings settings() {
@@ -16,6 +16,7 @@ import com.rs2.game.items.impl.LightSources;
import com.rs2.game.players.Client; import com.rs2.game.players.Client;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import com.rs2.game.players.PlayerHandler; import com.rs2.game.players.PlayerHandler;
import com.rs2.gui.ControlPanel;
import com.rs2.util.Misc; import com.rs2.util.Misc;
import com.rs2.world.Boundary; import com.rs2.world.Boundary;
import com.rs2.world.clip.Region; import com.rs2.world.clip.Region;
@@ -27,7 +28,7 @@ public class PacketSender {
public PacketSender(Player player2) { public PacketSender(Player player2) {
this.player = player2; this.player = player2;
} }
public PacketSender sendUpdateItems(int frame, Item[] items) { public PacketSender sendUpdateItems(int frame, Item[] items) {
if (player.getOutStream() != null) { if (player.getOutStream() != null) {
player.getOutStream().createFrameVarSizeWord(53); player.getOutStream().createFrameVarSizeWord(53);
@@ -63,7 +64,7 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender sendUpdateItems(int frame, int[] itemIDs, int[] itemAmounts) { public PacketSender sendUpdateItems(int frame, int[] itemIDs, int[] itemAmounts) {
Item[] items = new Item[itemIDs.length]; Item[] items = new Item[itemIDs.length];
for(int i = 0; i < itemIDs.length; i++) { for(int i = 0; i < itemIDs.length; i++) {
@@ -71,9 +72,11 @@ public class PacketSender {
} }
return sendUpdateItems(frame, items); return sendUpdateItems(frame, items);
} }
public PacketSender loginPlayer() { public PacketSender loginPlayer() {
GameEngine.panel.addEntity(player.playerName); if (GameConstants.GUI_ENABLED) {
ControlPanel.addEntity(player.playerName);
}
player.getPlayerAssistant().loginScreen(); player.getPlayerAssistant().loginScreen();
if (Connection.isNamedBanned(player.playerName)) { if (Connection.isNamedBanned(player.playerName)) {
player.logout(); player.logout();
@@ -200,7 +203,7 @@ public class PacketSender {
} }
public PacketSender sendClan(String name, String message, String clan, int rights) { public PacketSender sendClan(String name, String message, String clan, int rights) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
player.outStream.createFrameVarSizeWord(217); player.outStream.createFrameVarSizeWord(217);
player.outStream.writeString(name); player.outStream.writeString(name);
@@ -210,9 +213,9 @@ public class PacketSender {
player.outStream.endFrameVarSize(); player.outStream.endFrameVarSize();
return this; return this;
} }
public PacketSender createPlayersObjectAnim(int X, int Y, int animationID, int tileObjectType, int orientation) { public PacketSender createPlayersObjectAnim(int X, int Y, int animationID, int tileObjectType, int orientation) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
try{ try{
player.getOutStream().createFrame(85); player.getOutStream().createFrame(85);
@@ -229,8 +232,8 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender setInterfaceOffset(int x, int y, int id) { public PacketSender setInterfaceOffset(int x, int y, int id) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(70); player.getOutStream().createFrame(70);
@@ -241,10 +244,10 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender shakeScreen(int verticleAmount, int verticleSpeed, public PacketSender shakeScreen(int verticleAmount, int verticleSpeed,
int horizontalAmount, int horizontalSpeed) { int horizontalAmount, int horizontalSpeed) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
player.getOutStream().createFrame(35); // Creates frame 35. player.getOutStream().createFrame(35); // Creates frame 35.
player.getOutStream().writeByte(verticleAmount); player.getOutStream().writeByte(verticleAmount);
@@ -272,7 +275,7 @@ public class PacketSender {
} }
return this; return this;
} }
/** /**
* Reseting animations for everyone * Reseting animations for everyone
**/ **/
@@ -295,14 +298,14 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender setInterfaceWalkable(int ID) { public PacketSender setInterfaceWalkable(int ID) {
player.outStream.createFrame(208); player.outStream.createFrame(208);
player.outStream.writeWordBigEndian_dup(ID); player.outStream.writeWordBigEndian_dup(ID);
player.flushOutStream(); player.flushOutStream();
return this; return this;
} }
public PacketSender sendFrame36(int id, int state) { public PacketSender sendFrame36(int id, int state) {
if(player.getOutStream() != null && player != null) { if(player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(36); player.getOutStream().createFrame(36);
@@ -474,7 +477,7 @@ public class PacketSender {
} }
public PacketSender setPrivateMessaging(int i) { // friends and ignore list status public PacketSender setPrivateMessaging(int i) { // friends and ignore list status
// synchronized(c) { // synchronized(c) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(221); player.getOutStream().createFrame(221);
player.getOutStream().writeByte(i); player.getOutStream().writeByte(i);
@@ -507,7 +510,7 @@ public class PacketSender {
} }
public PacketSender sendPM(long name, int rights, byte[] chatmessage, public PacketSender sendPM(long name, int rights, byte[] chatmessage,
int messagesize) { int messagesize) {
// synchronized(c) { // synchronized(c) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrameVarSize(196); player.getOutStream().createFrameVarSize(196);
@@ -559,23 +562,23 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender sendItemOnInterface(int id, int amount, int child) { public PacketSender sendItemOnInterface(int id, int amount, int child) {
player.getOutStream().createFrameVarSizeWord(53); player.getOutStream().createFrameVarSizeWord(53);
player.getOutStream().writeWord(child); player.getOutStream().writeWord(child);
player.getOutStream().writeWord(amount); player.getOutStream().writeWord(amount);
if (amount > 254){ if (amount > 254){
player.getOutStream().writeByte(255); player.getOutStream().writeByte(255);
player.getOutStream().writeDWord_v2(amount); player.getOutStream().writeDWord_v2(amount);
} else { } else {
player.getOutStream().writeByte(amount); player.getOutStream().writeByte(amount);
} }
player.getOutStream().writeWordBigEndianA(id); player.getOutStream().writeWordBigEndianA(id);
player.getOutStream().endFrameVarSizeWord(); player.getOutStream().endFrameVarSizeWord();
player.flushOutStream(); player.flushOutStream();
return this; return this;
} }
public PacketSender walkableInterface(int id) { public PacketSender walkableInterface(int id) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(208); player.getOutStream().createFrame(208);
@@ -584,7 +587,7 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender openUpBank() { public PacketSender openUpBank() {
if (player.isBanking = false) { if (player.isBanking = false) {
@@ -620,7 +623,7 @@ public class PacketSender {
player.hasBankpin = false; player.hasBankpin = false;
player.requestPinDelete = false; player.requestPinDelete = false;
player.getPacketSender().sendMessage("[Notice] Your PIN has been deleted. It is recommended " player.getPacketSender().sendMessage("[Notice] Your PIN has been deleted. It is recommended "
+ "to have one."); + "to have one.");
} }
} }
if (!player.enterdBankpin && player.hasBankpin) { if (!player.enterdBankpin && player.hasBankpin) {
@@ -722,8 +725,8 @@ public class PacketSender {
} }
public PacketSender createProjectile(int x, int y, int offX, int offY, public PacketSender createProjectile(int x, int y, int offX, int offY,
int angle, int speed, int gfxMoving, int startHeight, int angle, int speed, int gfxMoving, int startHeight,
int endHeight, int lockon, int time) { int endHeight, int lockon, int time) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(85); player.getOutStream().createFrame(85);
player.getOutStream() player.getOutStream()
@@ -748,8 +751,8 @@ public class PacketSender {
} }
public PacketSender createProjectile2(int x, int y, int offX, int offY, public PacketSender createProjectile2(int x, int y, int offX, int offY,
int angle, int speed, int gfxMoving, int startHeight, int angle, int speed, int gfxMoving, int startHeight,
int endHeight, int lockon, int time, int slope) { int endHeight, int lockon, int time, int slope) {
if (player.getOutStream() != null && player != null) { if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(85); player.getOutStream().createFrame(85);
player.getOutStream() player.getOutStream()
@@ -979,7 +982,7 @@ public class PacketSender {
/** /**
* Show an arrow icon on the selected player. * Show an arrow icon on the selected player.
* *
* @Param i - Either 0 or 1; 1 is arrow, 0 is none. * @Param i - Either 0 or 1; 1 is arrow, 0 is none.
* @Param j - The player/Npc that the arrow will be displayed above. * @Param j - The player/Npc that the arrow will be displayed above.
* @Param k - Keep this set as 0 * @Param k - Keep this set as 0
@@ -1011,10 +1014,10 @@ public class PacketSender {
if (player != null) { if (player != null) {
player.getOutStream().createFrame(254); // The packet ID player.getOutStream().createFrame(254); // The packet ID
player.getOutStream().writeByte(pos); // Position on Square(2 = player.getOutStream().writeByte(pos); // Position on Square(2 =
// middle, 3 // middle, 3
// = west, 4 = east, 5 = // = west, 4 = east, 5 =
// south, // south,
// 6 = north) // 6 = north)
player.getOutStream().writeWord(x); // X-Coord of Object player.getOutStream().writeWord(x); // X-Coord of Object
player.getOutStream().writeWord(y); // Y-Coord of Object player.getOutStream().writeWord(y); // Y-Coord of Object
player.getOutStream().writeByte(height); // Height off Ground player.getOutStream().writeByte(height); // Height off Ground
@@ -1033,7 +1036,7 @@ public class PacketSender {
player.getOutStream().write3Byte(0); // Junk player.getOutStream().write3Byte(0); // Junk
} }
return this; return this;
} }
public PacketSender checkObjectSpawn(int objectId, int objectX, int objectY, int face, int objectType) { public PacketSender checkObjectSpawn(int objectId, int objectX, int objectY, int face, int objectType) {
if (player.distanceToPoint(objectX, objectY) < 60) { if (player.distanceToPoint(objectX, objectY) < 60) {
@@ -1062,7 +1065,7 @@ public class PacketSender {
} }
return this; return this;
} }
public PacketSender createObjectSpawn(int objectId, int objectX, int objectY, int height, int face, int objectType) { public PacketSender createObjectSpawn(int objectId, int objectX, int objectY, int height, int face, int objectType) {
if (player.getOutStream() == null) return this; if (player.getOutStream() == null) return this;
if (player.heightLevel != height) { if (player.heightLevel != height) {
@@ -1114,7 +1117,7 @@ public class PacketSender {
*/ */
public PacketSender sendSong(int id) { public PacketSender sendSong(int id) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
if (player != null && id != -1) { if (player != null && id != -1) {
player.getOutStream().createFrame(74); player.getOutStream().createFrame(74);
@@ -1128,7 +1131,7 @@ public class PacketSender {
*/ */
public PacketSender sendQuickSong(int id, int songDelay) { public PacketSender sendQuickSong(int id, int songDelay) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
if (player != null) { if (player != null) {
player.getOutStream().createFrame(121); player.getOutStream().createFrame(121);
@@ -1144,7 +1147,7 @@ public class PacketSender {
*/ */
public PacketSender sendSound(int id, int type, int delay, int volume) { public PacketSender sendSound(int id, int type, int delay, int volume) {
if (player.getOutStream() == null) if (player.getOutStream() == null)
return this; return this;
if (player != null && id != -1) { if (player != null && id != -1) {
player.getOutStream().createFrame(174); player.getOutStream().createFrame(174);
@@ -1187,7 +1190,7 @@ public class PacketSender {
player.flushOutStream(); player.flushOutStream();
return this; return this;
} }
public PacketSender createGroundItem(int itemID, int itemX, int itemY, int itemAmount, int height) { public PacketSender createGroundItem(int itemID, int itemX, int itemY, int itemAmount, int height) {
if (player.getOutStream() == null) return this; if (player.getOutStream() == null) return this;
if (player.heightLevel != height) { if (player.heightLevel != height) {
@@ -1216,4 +1219,4 @@ public class PacketSender {
return this; return this;
} }
} }