Finished migration to player UIDs

This commit is contained in:
Ceikry
2022-09-05 13:10:52 +00:00
committed by Ryan
parent 47bd650864
commit 5c5e034db6
12 changed files with 29 additions and 28 deletions
@@ -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)
}