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