Merge pull request #160 from milutinke/master

Fixed bug #148. Added PLAYER_DISCONNECTED event
This commit is contained in:
Thomas Smyth 2021-03-05 17:31:48 +00:00 committed by GitHub
commit 1108b71589
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 46 additions and 1 deletions

View File

@ -28,7 +28,11 @@
"username": "squadjs", "username": "squadjs",
"password": "password", "password": "password",
"database": "squadjs", "database": "squadjs",
"dialect": "mysql" "dialect": "mysql",
"define": {
"charset": "utf8mb4",
"collate": "utf8mb4_unicode_ci"
}
} }
}, },
"plugins": [ "plugins": [

View File

@ -110,6 +110,10 @@ export default class SquadServerFactory {
if (typeof connectorConfig === 'string') { if (typeof connectorConfig === 'string') {
connector = new Sequelize(connectorConfig, { connector = new Sequelize(connectorConfig, {
define: {
charset: 'utf8mb4',
collate: 'utf8mb4_unicode_ci'
},
logging: (msg) => Logger.verbose('Sequelize', 3, msg) logging: (msg) => Logger.verbose('Sequelize', 3, msg)
}); });
} else if (typeof connectorConfig === 'object') { } else if (typeof connectorConfig === 'object') {

View File

@ -178,6 +178,16 @@ export default class SquadServer extends EventEmitter {
this.emit('PLAYER_CONNECTED', data); this.emit('PLAYER_CONNECTED', data);
}); });
this.logParser.on('PLAYER_DISCONNECTED', async (data) => {
data.player = await this.getPlayerBySteamID(data.steamID);
if (data.player) data.player.suffix = data.playerSuffix;
delete data.steamID;
delete data.playerSuffix;
this.emit('PLAYER_DISCONNECTED', data);
});
this.logParser.on('PLAYER_DAMAGED', async (data) => { this.logParser.on('PLAYER_DAMAGED', async (data) => {
data.victim = await this.getPlayerByName(data.victimName); data.victim = await this.getPlayerByName(data.victimName);
data.attacker = await this.getPlayerByName(data.attackerName); data.attacker = await this.getPlayerByName(data.attackerName);

View File

@ -4,6 +4,7 @@ import AdminBroadcast from './admin-broadcast.js';
import DeployableDamaged from './deployable-damaged.js'; import DeployableDamaged from './deployable-damaged.js';
import NewGame from './new-game.js'; import NewGame from './new-game.js';
import PlayerConnected from './player-connected.js'; import PlayerConnected from './player-connected.js';
import PlayerDisconnected from './player-disconnected.js';
import PlayerDamaged from './player-damaged.js'; import PlayerDamaged from './player-damaged.js';
import PlayerDied from './player-died.js'; import PlayerDied from './player-died.js';
import PlayerPossess from './player-possess.js'; import PlayerPossess from './player-possess.js';
@ -25,6 +26,7 @@ export default class SquadLogParser extends LogParser {
DeployableDamaged, DeployableDamaged,
NewGame, NewGame,
PlayerConnected, PlayerConnected,
PlayerDisconnected,
PlayerDamaged, PlayerDamaged,
PlayerDied, PlayerDied,
PlayerPossess, PlayerPossess,

View File

@ -0,0 +1,13 @@
export default {
regex: /^\[([0-9.:-]+)]\[([ 0-9]*)]LogEasyAntiCheatServer: \[[0-9:]+]\[[A-z]+]\[EAC Server] \[Info]\[UnregisterClient] Client: ([A-z0-9]+) PlayerGUID: ([0-9]{17})/,
onMatch: (args, logParser) => {
const data = {
raw: args[0],
time: args[1],
chainID: args[2],
steamID: args[4]
};
logParser.emit('PLAYER_DISCONNECTED', data);
}
};

View File

@ -137,6 +137,9 @@ export default class DBLog extends BasePlugin {
lastName: { lastName: {
type: DataTypes.STRING type: DataTypes.STRING
} }
}, {
charset: 'utf8mb4',
collate: 'utf8mb4_unicode_ci'
}); });
this.createModel('Wound', { this.createModel('Wound', {
@ -176,6 +179,9 @@ export default class DBLog extends BasePlugin {
teamkill: { teamkill: {
type: DataTypes.BOOLEAN type: DataTypes.BOOLEAN
} }
}, {
charset: 'utf8mb4',
collate: 'utf8mb4_unicode_ci'
}); });
this.createModel('Death', { this.createModel('Death', {
@ -218,6 +224,9 @@ export default class DBLog extends BasePlugin {
teamkill: { teamkill: {
type: DataTypes.BOOLEAN type: DataTypes.BOOLEAN
} }
}, {
charset: 'utf8mb4',
collate: 'utf8mb4_unicode_ci'
}); });
this.createModel('Revive', { this.createModel('Revive', {
@ -269,6 +278,9 @@ export default class DBLog extends BasePlugin {
reviverSquadID: { reviverSquadID: {
type: DataTypes.INTEGER type: DataTypes.INTEGER
} }
}, {
charset: 'utf8mb4',
collate: 'utf8mb4_unicode_ci'
}); });
this.models.Server.hasMany(this.models.TickRate, { this.models.Server.hasMany(this.models.TickRate, {