stuffAndThings
This commit is contained in:
50
server/states/awaitCommands.js
Executable file
50
server/states/awaitCommands.js
Executable file
@@ -0,0 +1,50 @@
|
||||
import * as msg from "../utils/messages.js";
|
||||
import { Session } from "../models/session.js";
|
||||
|
||||
/**
|
||||
* Main game state
|
||||
*
|
||||
* It's here we listen for player commands.
|
||||
*/
|
||||
export class AwaitCommandsState {
|
||||
/**
|
||||
* @param {Session} session
|
||||
*/
|
||||
constructor(session) {
|
||||
/** @type {Session} */
|
||||
this.session = session;
|
||||
}
|
||||
|
||||
onAttach() {
|
||||
console.log("Session is entering the “main” state");
|
||||
this.session.sendMessage("Welcome to the game!");
|
||||
}
|
||||
|
||||
/** @param {msg.ClientMessage} message */
|
||||
onMessage(message) {
|
||||
if (message.hasCommand()) {
|
||||
this.handleCommand(message);
|
||||
}
|
||||
}
|
||||
|
||||
/** @param {msg.ClientMessage} message */
|
||||
handleCommand(message) {
|
||||
switch (message.command) {
|
||||
case "help":
|
||||
this.session.sendFigletMessage("HELP");
|
||||
this.session.sendMessage([
|
||||
"---------------------------------------",
|
||||
" *:help* this help screen",
|
||||
" *:quit* quit the game",
|
||||
"---------------------------------------",
|
||||
]);
|
||||
break;
|
||||
case "quit":
|
||||
this.session.sendMessage("The quitting quitter quits, typical... Cya");
|
||||
this.session._websocket.close();
|
||||
break;
|
||||
default:
|
||||
this.session.sendMessage(`Unknown command: ${message.command}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user