Finished migration to player UIDs
This commit is contained in:
@@ -49,7 +49,7 @@ class CulinomancerShop : LoginListener {
|
||||
|
||||
//Retrieve a player's shop - should generate the shop if it does not exist.
|
||||
fun getShop(player: Player, food: Boolean): Shop {
|
||||
val uid = player.details.usernameHashcode
|
||||
val uid = player.details.uid
|
||||
val points = player.questRepository.points
|
||||
val tier = (points / 18)
|
||||
if (tier != getAttribute(player, "culino-tier", 0)) //If player tier has changed
|
||||
|
||||
@@ -439,7 +439,7 @@ public class ChristmasEvent extends HolidayEvent {
|
||||
snowman.faceTemporary(player, 2);
|
||||
snowman.setRespawn(false);
|
||||
snowman.setWalks(true);
|
||||
snowman.setAttribute("owner", player.getDetails().getUsernameHashcode());
|
||||
snowman.setAttribute("owner", player.getDetails().getUid());
|
||||
if (!player.getEmoteManager().isUnlocked(Emotes.SNOWMAN_DANCE)) {
|
||||
player.getEmoteManager().unlock(Emotes.SNOWMAN_DANCE);
|
||||
player.sendMessage("<col=FF0000>You've unlocked the snowman dance emote!</col>");
|
||||
@@ -492,7 +492,7 @@ public class ChristmasEvent extends HolidayEvent {
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
npc = (NPC) args[0];
|
||||
if (npc.getAttribute("owner", 0) != player.getDetails().getUsernameHashcode()) {
|
||||
if (npc.getAttribute("owner", 0) != player.getDetails().getUid()) {
|
||||
player.sendMessage("The snowman doesn't seem interested in talking to you.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -127,8 +127,8 @@ public class PlayerDetails {
|
||||
* Gets the uid.
|
||||
* @return the uid.
|
||||
*/
|
||||
public int getUsernameHashcode() { //was getUid, but that was such an amazing and descriptive name for what this method actually does that I just had to change it!
|
||||
return this.getUsername().hashCode(); //this SHOULD return accountInfo.uid BUT Arios is an amazing codebase, and they used username hashcodes when players already had a UID assigned by the DB. Genius!
|
||||
public int getUid() {
|
||||
return accountInfo.getUid();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -104,7 +104,7 @@ public class GroundItem extends Item {
|
||||
* @return {@code True} if so.
|
||||
*/
|
||||
public boolean droppedBy(Player p) {
|
||||
if (dropper != null && p.getDetails().getUsernameHashcode() == dropper.getDetails().getUsernameHashcode()) {
|
||||
if (dropper != null && p.getDetails().getUid() == dropper.getDetails().getUid()) {
|
||||
dropper = p;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import core.game.world.map.Location;
|
||||
import core.game.world.map.Region;
|
||||
import core.game.world.map.RegionManager;
|
||||
import core.game.world.map.RegionPlane;
|
||||
import rs09.game.system.config.ObjectConfigParser;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ public class GrandExchangeTab extends ConsoleTab {
|
||||
if (p == null) {
|
||||
continue;
|
||||
}
|
||||
if (p.getDetails().getUsernameHashcode() == offer.getUid()) {
|
||||
if (p.getDetails().getUid() == offer.getUid()) {
|
||||
player = p;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -97,6 +97,7 @@ public final class GameReadEvent extends IoReadEvent {
|
||||
IncomingPacket packet = PacketRepository.getIncoming(opcode);
|
||||
session.setLastPing(System.currentTimeMillis());
|
||||
if (packet == null) {
|
||||
SystemLogger.logErr("Unhandled packet [opcode=" + opcode + ", previous=" + last + ", size=" + size + ", header=" + header + "]");
|
||||
if (GameWorld.getSettings().isDevMode()) {
|
||||
SystemLogger.logErr("Unhandled packet [opcode=" + opcode + ", previous=" + last + ", size=" + size + ", header=" + header + "]");
|
||||
}
|
||||
|
||||
@@ -67,13 +67,13 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
||||
|
||||
if(!main)
|
||||
{
|
||||
cont.listeners.remove(listenerInstances[player.username.hashCode()])
|
||||
playerStock.listeners.add(listenerInstances[player.username.hashCode()])
|
||||
cont.listeners.remove(listenerInstances[player.details.uid])
|
||||
playerStock.listeners.add(listenerInstances[player.details.uid])
|
||||
}
|
||||
else
|
||||
{
|
||||
playerStock.listeners.remove(listenerInstances[player.username.hashCode()])
|
||||
cont.listeners.add(listenerInstances[player.username.hashCode()])
|
||||
playerStock.listeners.remove(listenerInstances[player.details.uid])
|
||||
cont.listeners.add(listenerInstances[player.details.uid])
|
||||
}
|
||||
|
||||
val settings = IfaceSettingsBuilder()
|
||||
@@ -98,11 +98,11 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
||||
public fun getContainer(player: Player) : Container
|
||||
{
|
||||
val container = if(getServerConfig().getBoolean(Shops.personalizedShops, false))
|
||||
stockInstances[player.username.hashCode()] ?: generateStockContainer().also { stockInstances[player.username.hashCode()] = it }
|
||||
stockInstances[player.details.uid] ?: generateStockContainer().also { stockInstances[player.details.uid] = it }
|
||||
else
|
||||
stockInstances[ServerConstants.SERVER_NAME.hashCode()]!!
|
||||
|
||||
val listener = listenerInstances[player.username.hashCode()]
|
||||
val listener = listenerInstances[player.details.uid]
|
||||
|
||||
if(listener != null && listener.player != player)
|
||||
{
|
||||
@@ -111,7 +111,7 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
||||
|
||||
if(listener == null || listener.player != player)
|
||||
{
|
||||
listenerInstances[player.username.hashCode()] = ShopListener(player)
|
||||
listenerInstances[player.details.uid] = ShopListener(player)
|
||||
}
|
||||
|
||||
return container
|
||||
@@ -310,7 +310,7 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
||||
addItem(player, item.id, item.amount)
|
||||
|
||||
if(getServerConfig().getBoolean(Shops.personalizedShops, false)){
|
||||
needsUpdate[player.username.hashCode()] = true
|
||||
needsUpdate[player.details.uid] = true
|
||||
} else {
|
||||
needsUpdate[ServerConstants.SERVER_NAME.hashCode()] = true
|
||||
}
|
||||
@@ -385,7 +385,7 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
||||
container?.add(item)
|
||||
container?.refresh()
|
||||
if(getServerConfig().getBoolean(Shops.personalizedShops, false)){
|
||||
needsUpdate[player.username.hashCode()] = true
|
||||
needsUpdate[player.details.uid] = true
|
||||
} else {
|
||||
needsUpdate[ServerConstants.SERVER_NAME.hashCode()] = true
|
||||
}
|
||||
|
||||
@@ -196,10 +196,10 @@ class Shops : StartupListener, TickListener, InteractionListener, InterfaceListe
|
||||
|
||||
onClose(Components.SHOP_TEMPLATE_620) { player, _ ->
|
||||
val shop = getAttribute<Shop?>(player, "shop", null) ?: return@onClose true
|
||||
val listener = Shop.listenerInstances[player.username.hashCode()] ?: return@onClose true
|
||||
val listener = Shop.listenerInstances[player.details.uid] ?: return@onClose true
|
||||
|
||||
if(getServerConfig().getBoolean(personalizedShops, false))
|
||||
shop.stockInstances[player.username.hashCode()]?.listeners?.remove(listener)
|
||||
shop.stockInstances[player.details.uid]?.listeners?.remove(listener)
|
||||
else
|
||||
shop.stockInstances[ServerConstants.SERVER_NAME.hashCode()]!!.listeners.remove(listener)
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import rs09.game.world.GameWorld
|
||||
import rs09.game.world.repository.Repository
|
||||
import rs09.tools.stringtools.colorize
|
||||
import java.lang.Integer.max
|
||||
import java.sql.ResultSet
|
||||
import java.util.concurrent.LinkedBlockingDeque
|
||||
|
||||
/**
|
||||
@@ -231,9 +230,9 @@ class GrandExchange : StartupListener, Commands {
|
||||
}
|
||||
|
||||
if ( player.isArtificial )
|
||||
offer.playerUID = 0.also { offer.isBot = true }
|
||||
offer.playerUID = PlayerDetails.getDetails("2009scape").uid.also { offer.isBot = true }
|
||||
else
|
||||
offer.playerUID = player.details.accountInfo.uid
|
||||
offer.playerUID = player.details.uid
|
||||
|
||||
offer.offerState = OfferState.REGISTERED
|
||||
//GrandExchangeRecords.getInstance(player).update(offer)
|
||||
@@ -315,10 +314,10 @@ class GrandExchange : StartupListener, Commands {
|
||||
*/
|
||||
|
||||
seller.update()
|
||||
val sellerPlayer = Repository.players.firstOrNull { it.details.accountInfo.uid == seller.playerUID }
|
||||
val sellerPlayer = Repository.uid_map[seller.playerUID]
|
||||
sellerPlayer?.let { GrandExchangeRecords.getInstance(sellerPlayer).visualizeRecords() }
|
||||
buyer.update()
|
||||
val buyerPlayer = Repository.players.firstOrNull { it.details.accountInfo.uid == buyer.playerUID }
|
||||
val buyerPlayer = Repository.uid_map[buyer.playerUID]
|
||||
buyerPlayer?.let { GrandExchangeRecords.getInstance(buyerPlayer).visualizeRecords() }
|
||||
}
|
||||
|
||||
@@ -369,4 +368,4 @@ class GrandExchange : StartupListener, Commands {
|
||||
GEDB.init()
|
||||
boot()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@ class GrandExchangeRecords(private val player: Player? = null) : PersistPlayer,
|
||||
|
||||
GEDB.run { conn ->
|
||||
val stmt = conn.createStatement()
|
||||
val offer_records = stmt.executeQuery("SELECT * from player_offers where player_uid = ${player.details.accountInfo.uid} AND offer_state < 6")
|
||||
val offer_records = stmt.executeQuery("SELECT * from player_offers where player_uid = ${player.details.uid} AND offer_state < 6")
|
||||
|
||||
while (offer_records.next()) {
|
||||
val offer = GrandExchangeOffer.fromQuery(offer_records)
|
||||
@@ -252,4 +252,4 @@ class GrandExchangeRecords(private val player: Player? = null) : PersistPlayer,
|
||||
return player?.getAttribute("ge-records", GrandExchangeRecords()) ?: GrandExchangeRecords()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,14 +138,14 @@ object Repository {
|
||||
@JvmStatic
|
||||
fun addPlayer(player: Player){
|
||||
players.add(player)
|
||||
uid_map[player.details.usernameHashcode] = player
|
||||
uid_map[player.details.uid] = player
|
||||
playerNames[player.name] = player
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun removePlayer(player: Player){
|
||||
players.remove(player)
|
||||
uid_map.remove(player.details.usernameHashcode)
|
||||
uid_map.remove(player.details.uid)
|
||||
playerNames.remove(player.name)
|
||||
UpdateSequence.renderablePlayers.remove(player)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user