Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/net/data-parser/client-login-parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export class ClientLoginParser extends DataParser {

const outputBuffer = RsBuffer.create();
outputBuffer.writeByte(2); // login response code
outputBuffer.writeByte(2); // Player rights (user, mod, staff)
outputBuffer.writeByte(player.rights.valueOf());
outputBuffer.writeByte(0); // ???
this.clientConnection.socket.write(outputBuffer.getData());

Expand Down
2 changes: 2 additions & 0 deletions src/world/mob/player/player-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export interface PlayerSettings {

export interface PlayerSave {
username: string;
rights: number;
position: {
x: number;
y: number;
Expand Down Expand Up @@ -88,6 +89,7 @@ export function savePlayerData(player: Player): boolean {
y: player.position.y,
level: player.position.level
},
rights: player.rights.valueOf(),
appearance: player.appearance,
inventory: player.inventory.items,
equipment: player.equipment.items,
Expand Down
12 changes: 10 additions & 2 deletions src/world/mob/player/player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export class Player extends Mob {
private _rights: Rights;
private loggedIn: boolean;
public isLowDetail: boolean;
private firstTimePlayer: boolean;
private readonly _packetSender: PacketSender;
public readonly playerUpdateTask: PlayerUpdateTask;
public readonly npcUpdateTask: NpcUpdateTask;
Expand Down Expand Up @@ -82,11 +83,14 @@ export class Player extends Mob {
this._equipment = new ItemContainer(14);
this.dialogueInteractionEvent = new Subject<number>();
this._nearbyChunks = [];

this.loadSaveData();
}

public init(): void {
private loadSaveData(): void {
const playerSave: PlayerSave = loadPlayerSave(this.username);
const firstTimePlayer: boolean = playerSave === null;
this.firstTimePlayer = firstTimePlayer;

if(!firstTimePlayer) {
// Existing player logging in
Expand All @@ -99,6 +103,7 @@ export class Player extends Mob {
}
this._appearance = playerSave.appearance;
this._settings = playerSave.settings;
this._rights = playerSave.rights || Rights.USER;
} else {
// Brand new player logging in
this.position = new Position(3222, 3222);
Expand All @@ -111,12 +116,15 @@ export class Player extends Mob {
this.inventory.add({itemId: 1319, amount: 1});
this.inventory.add({itemId: 1201, amount: 1});
this._appearance = defaultAppearance();
this._rights = Rights.USER;
}

if(!this._settings) {
this._settings = defaultSettings();
}
}

public init(): void {
this.loggedIn = true;
this.updateFlags.mapRegionUpdateRequired = true;
this.updateFlags.appearanceUpdateRequired = true;
Expand All @@ -140,7 +148,7 @@ export class Player extends Mob {
this.packetSender.sendUpdateAllInterfaceItems(interfaceIds.inventory, this.inventory);
this.packetSender.sendUpdateAllInterfaceItems(interfaceIds.equipment, this.equipment);

if(firstTimePlayer) {
if(this.firstTimePlayer) {
this.activeGameInterface = {
interfaceId: interfaceIds.characterDesign,
canWalk: false
Expand Down
2 changes: 1 addition & 1 deletion src/world/mob/player/updating/player-update-task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export class PlayerUpdateTask extends Task<void> {
if(updateFlags.chatMessages.length !== 0 && !currentPlayer) {
const message = updateFlags.chatMessages[0];
updateMaskData.writeUnsignedShortBE(((message.color & 0xFF) << 8) + (message.effects & 0xFF));
updateMaskData.writeByteInverted(2);
updateMaskData.writeByteInverted(player.rights.valueOf());
updateMaskData.writeOffsetByte(message.data.length);
for(let i = 0; i < message.data.length; i++) {
updateMaskData.writeOffsetByte(message.data.readInt8(i));
Expand Down