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