From 1b7c2914cb2d30d0daa89e62c0523624e687c742 Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 26 Jul 2021 07:33:07 -0500 Subject: [PATCH] Another batch of preemptive bugfixing --- .../src/main/java/ms/Management.java | 4 ++- .../java/ms/classloader/ClassLoadServer.java | 6 ++-- .../src/main/java/ms/net/IoSession.java | 13 ++++---- .../src/main/java/ms/net/packet/IoBuffer.java | 17 ++-------- .../ms/net/packet/WorldPacketRepository.kt | 12 +++---- .../java/ms/system/PunishmentStorage.java | 18 ++++++----- .../communication/CommunicationInfo.java | 18 ++++++++--- .../main/java/ms/system/mysql/SQLTable.java | 8 ----- .../ms/system/mysql/WorldListSQLHandler.java | 8 +++-- .../java/ms/system/util/ByteBufferUtils.java | 3 +- .../ms/system/util/EncryptionManager.java | 2 +- .../main/java/ms/system/util/StringUtils.java | 31 ++++++------------- .../src/main/java/ms/world/PlayerSession.java | 10 +++++- .../src/main/java/ms/world/WorldDatabase.java | 2 +- .../src/main/java/ms/world/info/UIDInfo.java | 4 ++- .../main/java/core/cache/def/Definition.java | 3 +- .../core/cache/def/impl/NPCDefinition.java | 6 ++-- .../cache/def/impl/SceneryDefinition.java | 1 - .../java/core/game/world/map/RegionManager.kt | 2 +- 19 files changed, 84 insertions(+), 84 deletions(-) diff --git a/Management-Server/src/main/java/ms/Management.java b/Management-Server/src/main/java/ms/Management.java index d7280e488..2c9863111 100644 --- a/Management-Server/src/main/java/ms/Management.java +++ b/Management-Server/src/main/java/ms/Management.java @@ -13,8 +13,10 @@ import ms.world.WorldDatabase; import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; import java.net.InetAddress; import java.net.NetworkInterface; +import java.nio.charset.StandardCharsets; import java.util.Scanner; /** @@ -138,7 +140,7 @@ public final class Management { Runtime.getRuntime().addShutdownHook(new ShutdownSequence()); System.out.println("Status: ready."); System.out.println("Use -commands for a list of commands!"); - Scanner s = new Scanner(System.in); + Scanner s = new Scanner(new InputStreamReader(System.in, StandardCharsets.UTF_8)); while (s.hasNext()) { try { String command = s.nextLine(); diff --git a/Management-Server/src/main/java/ms/classloader/ClassLoadServer.java b/Management-Server/src/main/java/ms/classloader/ClassLoadServer.java index cfbae574a..ef35db3eb 100644 --- a/Management-Server/src/main/java/ms/classloader/ClassLoadServer.java +++ b/Management-Server/src/main/java/ms/classloader/ClassLoadServer.java @@ -30,7 +30,7 @@ public class ClassLoadServer extends Thread { /** * Holds classes and resources already added in the server */ - protected static HashMap resourceCache = new HashMap(); + protected final static HashMap resourceCache = new HashMap(); /** * New socket @@ -60,7 +60,9 @@ public class ClassLoadServer extends Thread { //System.out.println("New Connection from : " + clientSocket.getInetAddress()); WorkerThread wcs = new WorkerThread(clientSocket); wcs.start(); - } catch (Exception e) {} + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/Management-Server/src/main/java/ms/net/IoSession.java b/Management-Server/src/main/java/ms/net/IoSession.java index f21ca421f..dd722db17 100644 --- a/Management-Server/src/main/java/ms/net/IoSession.java +++ b/Management-Server/src/main/java/ms/net/IoSession.java @@ -137,15 +137,15 @@ public class IoSession { */ public void queue(ByteBuffer buffer) { try { - writingLock.tryLock(1000L, TimeUnit.MILLISECONDS); + if(writingLock.tryLock(1000L, TimeUnit.MILLISECONDS)){ + writingQueue.add(buffer); + writingLock.unlock(); + write(); + } } catch (Exception e){ e.printStackTrace(); writingLock.unlock(); - return; } - writingQueue.add(buffer); - writingLock.unlock(); - write(); } /** @@ -168,10 +168,11 @@ public class IoSession { } writingQueue.remove(0); } + writingLock.unlock(); } catch (IOException e) { disconnect(); + writingLock.unlock(); } - writingLock.unlock(); } /** diff --git a/Management-Server/src/main/java/ms/net/packet/IoBuffer.java b/Management-Server/src/main/java/ms/net/packet/IoBuffer.java index 4e4a7e682..8bd8199b7 100644 --- a/Management-Server/src/main/java/ms/net/packet/IoBuffer.java +++ b/Management-Server/src/main/java/ms/net/packet/IoBuffer.java @@ -1,6 +1,7 @@ package ms.net.packet; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import ms.system.util.ByteBufferUtils; @@ -301,7 +302,7 @@ public class IoBuffer { * @return */ public IoBuffer putString(String val) { - buf.put(val.getBytes()); + buf.put(val.getBytes(StandardCharsets.UTF_8)); buf.put((byte) 0); return this; } @@ -313,7 +314,7 @@ public class IoBuffer { */ public IoBuffer putJagString(String val) { buf.put((byte) 0); - buf.put(val.getBytes()); + buf.put(val.getBytes(StandardCharsets.UTF_8)); buf.put((byte) 0); return this; } @@ -557,18 +558,6 @@ public class IoBuffer { return buf.getLong(); } - /** - * - * @return - */ - public int getSmart() { - int peek = buf.get(buf.position()); - if (peek <= Byte.MAX_VALUE) { - return buf.get() & 0xFF; - } - return (buf.getShort() & 0xFFFF) - 32768; - } - /** * * @return diff --git a/Management-Server/src/main/java/ms/net/packet/WorldPacketRepository.kt b/Management-Server/src/main/java/ms/net/packet/WorldPacketRepository.kt index 4645259e2..6b9233cae 100644 --- a/Management-Server/src/main/java/ms/net/packet/WorldPacketRepository.kt +++ b/Management-Server/src/main/java/ms/net/packet/WorldPacketRepository.kt @@ -42,7 +42,7 @@ object WorldPacketRepository { * @param message The message to send. */ @JvmStatic - fun sendPlayerMessage(player: PlayerSession?, message: String?) { + fun sendPlayerMessage(player: PlayerSession?, message: String) { if (player == null) { return } @@ -52,7 +52,7 @@ object WorldPacketRepository { player.world.session.write(buffer) } - fun sendPlayerMessage(player: PlayerSession?, messages: Array) { + fun sendPlayerMessage(player: PlayerSession?, messages: Array) { if (player == null) { return } @@ -98,7 +98,7 @@ object WorldPacketRepository { @JvmStatic fun sendContactUpdate( player: PlayerSession, - contact: String?, + contact: String, block: Boolean, remove: Boolean, worldId: Int, @@ -127,7 +127,7 @@ object WorldPacketRepository { * @param type The message type. */ @JvmStatic - fun sendMessage(player: PlayerSession, p: PlayerSession, type: Int, message: String?) { + fun sendMessage(player: PlayerSession, p: PlayerSession, type: Int, message: String) { val buffer = IoBuffer(5, PacketHeader.BYTE) buffer.putString(player.username) buffer.putString(p.username) @@ -184,7 +184,7 @@ object WorldPacketRepository { * @param names The names. */ @JvmStatic - fun notifyPlayers(server: GameServer, player: PlayerSession, names: List) { + fun notifyPlayers(server: GameServer, player: PlayerSession, names: List) { val buffer = IoBuffer(8, PacketHeader.SHORT) buffer.putString(player.username) buffer.put(player.worldId) @@ -227,7 +227,7 @@ object WorldPacketRepository { * @param duration The duration of the punishment. */ @JvmStatic - fun sendPunishUpdate(world: GameServer, key: String?, type: Int, duration: Long) { + fun sendPunishUpdate(world: GameServer, key: String, type: Int, duration: Long) { val buffer = IoBuffer(11, PacketHeader.BYTE) buffer.putString(key) buffer.put(type) diff --git a/Management-Server/src/main/java/ms/system/PunishmentStorage.java b/Management-Server/src/main/java/ms/system/PunishmentStorage.java index 8bbcfd6c8..a82dad781 100644 --- a/Management-Server/src/main/java/ms/system/PunishmentStorage.java +++ b/Management-Server/src/main/java/ms/system/PunishmentStorage.java @@ -79,8 +79,9 @@ public final class PunishmentStorage { e.printStackTrace(); SQLManager.close(connection); return; + } finally { + SQLManager.close(connection); } - SQLManager.close(connection); return; case 2: ban(player.getIpAddress(), type); @@ -152,8 +153,9 @@ public final class PunishmentStorage { e.printStackTrace(); SQLManager.close(connection); return false; + } finally { + SQLManager.close(connection); } - SQLManager.close(connection); return true; } @@ -175,8 +177,9 @@ public final class PunishmentStorage { e.printStackTrace(); SQLManager.close(connection); return false; + } finally { + SQLManager.close(connection); } - SQLManager.close(connection); return true; } @@ -239,8 +242,9 @@ public final class PunishmentStorage { e.printStackTrace(); SQLManager.close(connection); return false; + } finally { + SQLManager.close(connection); } - SQLManager.close(connection); return true; } @@ -252,9 +256,9 @@ public final class PunishmentStorage { private static String getDuration(long end) { String time = "indefinite time"; if (end != Long.MAX_VALUE) { - int days = (int) ((end -= System.currentTimeMillis()) / (24 * 60 * 60_000)); - int hours = (int) ((end -= (days * 24 * 60 * 60_000)) / (60 * 60_000)); - int minutes = (int) ((end -= (hours * (60 * 60_000))) / 60_000); + int days = (int) ((System.currentTimeMillis()) / (24 * 60 * 60_000)); + int hours = (int) (((24L * days * 60 * 60_000)) / (60 * 60_000)); + int minutes = (int) (((hours * (60 * 60_000))) / 60_000); time = days + "d, " + hours + "h, " + minutes + "m"; } return time; diff --git a/Management-Server/src/main/java/ms/system/communication/CommunicationInfo.java b/Management-Server/src/main/java/ms/system/communication/CommunicationInfo.java index 4f9c2f3be..1fd106fd3 100644 --- a/Management-Server/src/main/java/ms/system/communication/CommunicationInfo.java +++ b/Management-Server/src/main/java/ms/system/communication/CommunicationInfo.java @@ -141,14 +141,20 @@ public final class CommunicationInfo { public void save(PreparedStatement statement) throws SQLException { String contacts = ""; String blocked = ""; + StringBuilder blockedBuilder = new StringBuilder(); for (int i = 0; i < this.blocked.size(); i++) { - blocked += (i == 0 ? "" : ",") + this.blocked.get(i); + String blockline = (i == 0 ? "" : ",") + this.blocked.get(i); + blockedBuilder.append(blockline); } + blocked = blockedBuilder.toString(); int count = 0; + StringBuilder contactBuilder = new StringBuilder(); for (Entry entry : this.contacts.entrySet()) { - contacts += "{" + entry.getKey() + "," + entry.getValue().ordinal() + "}" + (count == this.contacts.size() - 1 ? "" : "~"); + String contactLine = "{" + entry.getKey() + "," + entry.getValue().ordinal() + "}" + (count == this.contacts.size() - 1 ? "" : "~"); + contactBuilder.append(contactLine); count++; } + contacts = contactBuilder.toString(); statement.setString(3, contacts); statement.setString(4, blocked); statement.setString(5, clanName); @@ -211,6 +217,8 @@ public final class CommunicationInfo { case 3: lootRequirement = rank; break; + default: + break; } } } @@ -239,9 +247,9 @@ public final class CommunicationInfo { */ public void save(ByteBuffer buffer) { buffer.put((byte) contacts.size()); - for (String name : contacts.keySet()) { - ByteBufferUtils.putString(name, buffer); - buffer.put((byte) contacts.get(name).ordinal()); + for(Entry contact : contacts.entrySet()){ + ByteBufferUtils.putString(contact.getKey(), buffer); + buffer.put((byte) contact.getValue().ordinal()); } buffer.put((byte) blocked.size()); for (String name : blocked) { diff --git a/Management-Server/src/main/java/ms/system/mysql/SQLTable.java b/Management-Server/src/main/java/ms/system/mysql/SQLTable.java index f30499f2b..3447edb23 100644 --- a/Management-Server/src/main/java/ms/system/mysql/SQLTable.java +++ b/Management-Server/src/main/java/ms/system/mysql/SQLTable.java @@ -52,12 +52,4 @@ public final class SQLTable { return updated; } - /** - * Gets the columns. - * @return The columns. - */ - public SQLColumn[] getColumns() { - return columns; - } - } \ No newline at end of file diff --git a/Management-Server/src/main/java/ms/system/mysql/WorldListSQLHandler.java b/Management-Server/src/main/java/ms/system/mysql/WorldListSQLHandler.java index 54a91c6c3..cf5eb4674 100644 --- a/Management-Server/src/main/java/ms/system/mysql/WorldListSQLHandler.java +++ b/Management-Server/src/main/java/ms/system/mysql/WorldListSQLHandler.java @@ -31,12 +31,16 @@ public final class WorldListSQLHandler extends SQLEntryHandler { * Clears the world list. */ public static void clearWorldList() { + Connection connection = SQLManager.getConnection(); + if(connection == null) return; try { - Connection connection = SQLManager.getConnection(); PreparedStatement statement = connection.prepareStatement("DELETE FROM " + TABLE); statement.executeUpdate(); - } catch (SQLException e) { + } catch (Exception e) { e.printStackTrace(); + SQLManager.close(connection); + } finally { + SQLManager.close(connection); } } diff --git a/Management-Server/src/main/java/ms/system/util/ByteBufferUtils.java b/Management-Server/src/main/java/ms/system/util/ByteBufferUtils.java index a45abe289..e60e3b2eb 100644 --- a/Management-Server/src/main/java/ms/system/util/ByteBufferUtils.java +++ b/Management-Server/src/main/java/ms/system/util/ByteBufferUtils.java @@ -1,6 +1,7 @@ package ms.system.util; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; /** @@ -30,7 +31,7 @@ public final class ByteBufferUtils { * @param buffer The byte buffer. */ public static void putString(String s, ByteBuffer buffer) { - buffer.put(s.getBytes()).put((byte) 0); + buffer.put(s.getBytes(StandardCharsets.UTF_8)).put((byte) 0); } /** diff --git a/Management-Server/src/main/java/ms/system/util/EncryptionManager.java b/Management-Server/src/main/java/ms/system/util/EncryptionManager.java index 91e154fc0..f5ee249c0 100644 --- a/Management-Server/src/main/java/ms/system/util/EncryptionManager.java +++ b/Management-Server/src/main/java/ms/system/util/EncryptionManager.java @@ -484,7 +484,7 @@ public class EncryptionManager { * @return the decoded value of x */ private static byte char64(char x) { - if ((int)x < 0 || (int)x > index_64.length) + if ((int)x > index_64.length) return -1; return index_64[(int)x]; } diff --git a/Management-Server/src/main/java/ms/system/util/StringUtils.java b/Management-Server/src/main/java/ms/system/util/StringUtils.java index d5cc34991..2d997bb9a 100644 --- a/Management-Server/src/main/java/ms/system/util/StringUtils.java +++ b/Management-Server/src/main/java/ms/system/util/StringUtils.java @@ -14,26 +14,16 @@ public final class StringUtils { /** * The valid characters to be used in names/messages/... */ - public static final char[] VALID_CHARS = { + private static final char[] VALID_CHARS = { '_', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; - /** - * Character mapping. - */ - public static char[] mapping = { - '\n', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', - 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ' }; /** * The an int array241. */ - public static int[] anIntArray241 = { 215, 203, 83, 158, 104, 101, 93, 84, + private final static int[] anIntArray241 = { 215, 203, 83, 158, 104, 101, 93, 84, 107, 103, 109, 95, 94, 98, 89, 86, 70, 41, 32, 27, 24, 23, -1, -2, 26, -3, -4, 31, 30, -5, -6, -7, 37, 38, 36, -8, -9, -10, 40, -11, -12, 55, 48, 46, 47, -13, -14, -15, 52, 51, -16, -17, 54, -18, -19, @@ -173,7 +163,7 @@ public final class StringUtils { boolean wasSpace = true; for (int i = 0; i < name.length(); i++) { if (wasSpace) { - newName.append((new String() + name.charAt(i)).toUpperCase()); + newName.append(("" + name.charAt(i)).toUpperCase()); wasSpace = false; } else { newName.append(name.charAt(i)); @@ -306,9 +296,8 @@ public final class StringUtils { * @return The string value. */ public static String getString(String s) { - String string = s.replaceAll("\\<.*?>", "").replaceAll(" ", "") + return s.replaceAll("\\<.*?>", "").replaceAll(" ", "") .replaceAll("Discontinued Item:", ""); - return string; } /** * Characters used to convert a String to a Long. @@ -319,7 +308,7 @@ public final class StringUtils { 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; - public static int[] anIntArray233 = { + private final static int[] anIntArray233 = { 0, 1024, 2048, 3072, 4096, 5120, 6144, 8192, 9216, 12288, 10240, 11264, 16384, 18432, 17408, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, @@ -362,7 +351,7 @@ public final class StringUtils { 301188096, 301189120, 301190144, 301191168, 301193216, 301195264, 301194240, 301197312, 301198336, 301199360, 301201408, 301202432 }; - public static byte[] aByteArray235 = { + private final static byte[] aByteArray235 = { 22, 22, 22, 22, 22, 22, 21, 22, 22, 20, 22, 22, 22, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 3, 8, 22, 16, 22, 16, 17, 7, 13, 13, 13, @@ -387,16 +376,16 @@ public final class StringUtils { try { i_27_ += i_25_; int i_29_ = 0; - int i_30_ = i_26_ << -2116795453; + int i_30_ = i_26_ << 3; for (; i_27_ > i_25_; i_25_++) { int i_31_ = 0xff & is_28_[i_25_]; int i_32_ = anIntArray233[i_31_]; int i_33_ = aByteArray235[i_31_]; - int i_34_ = i_30_ >> -1445887805; + int i_34_ = i_30_ >> 3; int i_35_ = i_30_ & 0x7; - i_29_ &= (-i_35_ >> 473515839); + i_29_ &= (-i_35_ >> 31); i_30_ += i_33_; - int i_36_ = ((-1 + (i_35_ - -i_33_)) >> -1430991229) + i_34_; + int i_36_ = ((-1 + (i_35_ - -i_33_)) >> 3) + i_34_; i_35_ += 24; is[i_34_] = (byte) (i_29_ = (i_29_ | (i_32_ >>> i_35_))); if ((i_36_ ^ 0xffffffff) < (i_34_ ^ 0xffffffff)) { diff --git a/Management-Server/src/main/java/ms/world/PlayerSession.java b/Management-Server/src/main/java/ms/world/PlayerSession.java index 4cfa02f66..cccb91cf1 100644 --- a/Management-Server/src/main/java/ms/world/PlayerSession.java +++ b/Management-Server/src/main/java/ms/world/PlayerSession.java @@ -132,6 +132,8 @@ public final class PlayerSession { ex.printStackTrace(); SQLManager.close(connection); return false; + } finally { + SQLManager.close(connection); } return true; } @@ -160,6 +162,8 @@ public final class PlayerSession { } catch (SQLException e) { e.printStackTrace(); SQLManager.close(connection); + } finally { + SQLManager.close(connection); } communication.clear(); } @@ -201,6 +205,8 @@ public final class PlayerSession { } catch (SQLException e) { e.printStackTrace(); SQLManager.close(connection); + } finally { + SQLManager.close(connection); } } @@ -459,7 +465,9 @@ public final class PlayerSession { @Override public boolean equals(Object o) { - return username.equals(((PlayerSession) o).username); + if(o instanceof PlayerSession) { + return username.equals(((PlayerSession) o).username); + } else return false; } @Override diff --git a/Management-Server/src/main/java/ms/world/WorldDatabase.java b/Management-Server/src/main/java/ms/world/WorldDatabase.java index 6df1e48fc..e23e17f17 100644 --- a/Management-Server/src/main/java/ms/world/WorldDatabase.java +++ b/Management-Server/src/main/java/ms/world/WorldDatabase.java @@ -19,7 +19,7 @@ public class WorldDatabase { /** * The game servers. */ - public static final GameServer[] DATABASE = new GameServer[ServerConstants.WORLD_LIMIT]; + private static final GameServer[] DATABASE = new GameServer[ServerConstants.WORLD_LIMIT]; /** * The update time stamp. diff --git a/Management-Server/src/main/java/ms/world/info/UIDInfo.java b/Management-Server/src/main/java/ms/world/info/UIDInfo.java index d5122c792..3bcf2d9d6 100644 --- a/Management-Server/src/main/java/ms/world/info/UIDInfo.java +++ b/Management-Server/src/main/java/ms/world/info/UIDInfo.java @@ -102,6 +102,8 @@ public class UIDInfo { case 4: serial = ByteBufferUtils.getString(buffer); break; + default: + break; } } } @@ -112,7 +114,7 @@ public class UIDInfo { * @return the string. */ private String parseFormat(String string) { - if (string == null || string == "") { + if (string == null || string.equals("")) { return null; } StringTokenizer token = new StringTokenizer(string, "|"); diff --git a/Server/src/main/java/core/cache/def/Definition.java b/Server/src/main/java/core/cache/def/Definition.java index 609bd80d5..c6a4d5f8d 100644 --- a/Server/src/main/java/core/cache/def/Definition.java +++ b/Server/src/main/java/core/cache/def/Definition.java @@ -139,7 +139,8 @@ public class Definition { public String getExamine() { if (examine == null) { try { - examine = handlers.get("examine").toString(); + if(handlers.get("examine") != null) + examine = handlers.get("examine").toString(); } catch (Exception e){ e.printStackTrace(); } diff --git a/Server/src/main/java/core/cache/def/impl/NPCDefinition.java b/Server/src/main/java/core/cache/def/impl/NPCDefinition.java index d5c020a34..7c0d86d80 100644 --- a/Server/src/main/java/core/cache/def/impl/NPCDefinition.java +++ b/Server/src/main/java/core/cache/def/impl/NPCDefinition.java @@ -57,10 +57,8 @@ public final class NPCDefinition extends Definition { */ public boolean isVisibleOnMap; -/* *//** - * The examine option value - *//* - public String examine;*/ + + public String examine; /** * The drop tables. diff --git a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java b/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java index 4ee150b44..d2342d415 100644 --- a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java +++ b/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java @@ -6,7 +6,6 @@ import core.cache.misc.buffer.ByteBufferUtils; import core.game.interaction.OptionHandler; import core.game.node.entity.player.Player; import core.game.node.object.Scenery; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import rs09.game.system.SystemLogger; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/world/map/RegionManager.kt b/Server/src/main/java/core/game/world/map/RegionManager.kt index 12c889371..1947271bf 100644 --- a/Server/src/main/java/core/game/world/map/RegionManager.kt +++ b/Server/src/main/java/core/game/world/map/RegionManager.kt @@ -358,7 +358,7 @@ object RegionManager { val region = forId(regionId) Region.load(region) val `object`: Scenery? = region.planes[z].getChunkObject(x, y, objectId) - return if (`object` != null && !`object`.isRenderable()) { + return if (`object` != null && !`object`.isRenderable) { null } else `object` }