mirror of
https://github.com/danbulant/flying-squid
synced 2026-07-06 11:40:46 +00:00
improve command handling and expose setGameMode
This commit is contained in:
parent
0b78f258fa
commit
8dded86058
3 changed files with 34 additions and 29 deletions
|
|
@ -60,6 +60,7 @@
|
||||||
- [player.changeBlock(position,blockType)](#playerchangeblockpositionblocktype)
|
- [player.changeBlock(position,blockType)](#playerchangeblockpositionblocktype)
|
||||||
- [player.sendInitialPosition()](#playersendinitialposition)
|
- [player.sendInitialPosition()](#playersendinitialposition)
|
||||||
- [player.spawn()](#playerspawn)
|
- [player.spawn()](#playerspawn)
|
||||||
|
- [player.setGameMode(gameMode)](#playersetgamemodegamemode)
|
||||||
- [Low level properties](#low-level-properties)
|
- [Low level properties](#low-level-properties)
|
||||||
- [player._client](#player_client)
|
- [player._client](#player_client)
|
||||||
- [Low level methods](#low-level-methods)
|
- [Low level methods](#low-level-methods)
|
||||||
|
|
@ -278,6 +279,9 @@ send its initial position to the player
|
||||||
|
|
||||||
tell everybody else that the player spawned
|
tell everybody else that the player spawned
|
||||||
|
|
||||||
|
#### player.setGameMode(gameMode)
|
||||||
|
|
||||||
|
set player gameMode to `gameMode`
|
||||||
|
|
||||||
### Low level properties
|
### Low level properties
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,35 +2,34 @@ module.exports=inject;
|
||||||
|
|
||||||
function inject(serv, player, options)
|
function inject(serv, player, options)
|
||||||
{
|
{
|
||||||
player._client.on('chat', function (data) {
|
player._client.on('chat', function (packet) {
|
||||||
if(data.message[0]=="/" && options.commands[data.message.slice(1)]) {
|
if(!handleCommand(packet.message)) {
|
||||||
player.chat("" + options.commands[data.message.slice(1)]);
|
serv.broadcast('<' + player.username + '>' + ' ' + packet.message);
|
||||||
} else if(data.message == "/gamemode" || data.message == "/gamemode 0" || data.message == "/gamemode 1") {
|
player.emit("chat",packet.message);
|
||||||
|
|
||||||
if(data.message == "/gamemode 0") {
|
|
||||||
player._client.write("game_state_change", {
|
|
||||||
reason: 3,
|
|
||||||
gameMode: 0
|
|
||||||
});
|
|
||||||
player.gameMode = 0;
|
|
||||||
player.chat("Gamemode changed to 0!");
|
|
||||||
} else if(data.message == "/gamemode 1") {
|
|
||||||
player._client.write("game_state_change", {
|
|
||||||
reason: 3,
|
|
||||||
gameMode: 1
|
|
||||||
});
|
|
||||||
player.gameMode = 1;
|
|
||||||
player.chat("Gamemode changed to 1!")
|
|
||||||
} else {
|
|
||||||
player.chat("Invalid usage! Try using /gamemode 1");
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
|
||||||
serv.broadcast('<' + player.username + '>' + ' ' + data.message);
|
|
||||||
player.emit("chat",data.message);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function handleCommand(message)
|
||||||
|
{
|
||||||
|
var command;
|
||||||
|
if(message[0]=="/")
|
||||||
|
command=message.slice(1);
|
||||||
|
else return false;
|
||||||
|
|
||||||
|
if(options.commands[command]) {
|
||||||
|
player.chat("" + options.commands[command]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
var results;
|
||||||
|
if(results=command.match(/^gamemode ([0-3])$/)) {
|
||||||
|
var gameMode=parseInt(results[1]);
|
||||||
|
player.setGameMode(gameMode);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
player.chat("Invalid command.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
function chat(message) {
|
function chat(message) {
|
||||||
player._client.write('chat', { message: JSON.stringify(message), position: 0 });
|
player._client.write('chat', { message: JSON.stringify(message), position: 0 });
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,12 +80,13 @@ function inject(serv,player)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateGameState()
|
function setGameMode(gameMode)
|
||||||
{
|
{
|
||||||
player._client.write('game_state_change', {
|
player._client.write('game_state_change', {
|
||||||
reason: 3,
|
reason: 3,
|
||||||
gameMode: player.gameMode
|
gameMode: gameMode
|
||||||
});
|
});
|
||||||
|
player.gameMode=gameMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fillTabList()
|
function fillTabList()
|
||||||
|
|
@ -179,7 +180,7 @@ function inject(serv,player)
|
||||||
player.emit("spawned");
|
player.emit("spawned");
|
||||||
|
|
||||||
updateTime();
|
updateTime();
|
||||||
updateGameState();
|
setGameMode(player.gameMode);
|
||||||
fillTabList();
|
fillTabList();
|
||||||
spawnOthers();
|
spawnOthers();
|
||||||
spawn();
|
spawn();
|
||||||
|
|
@ -188,6 +189,7 @@ function inject(serv,player)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
player.setGameMode=setGameMode;
|
||||||
player.login=login;
|
player.login=login;
|
||||||
player.sendInitialPosition=sendInitialPosition;
|
player.sendInitialPosition=sendInitialPosition;
|
||||||
player.spawn=spawn;
|
player.spawn=spawn;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue