Initial commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
const GuildSearchResultStateChangedPacket = require("../Packets/GuildSearchResultStateChanged");
|
||||
const GuildDataApplicantPacket = require("../Packets/GuildDataApplicant");
|
||||
|
||||
const Game = require("../Game/Game");
|
||||
const { guilds } = Game;
|
||||
|
||||
const MAXIMUM_GUILD_REQUEST_MESSAGE_LENGTH = 256;
|
||||
|
||||
const QUERY_GUILD_REQUEST_SUBMIT = "INSERT INTO guildrequests (guildID, playerID, message) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE message = ?";
|
||||
const QUERY_GUILD_REQUEST_SUBMIT_DEFAULT = "INSERT INTO guildrequests (guildID, playerID) VALUES (?, ?) ON DUPLICATE KEY UPDATE message = ?";
|
||||
|
||||
module.exports = async function (ws, message, player) {
|
||||
if (player.guild.id) return;
|
||||
|
||||
const guildID = message.getUint16(1);
|
||||
|
||||
const guild = guilds[guildID];
|
||||
if (!guild) return;
|
||||
|
||||
// if (guild.hasRequested()) return
|
||||
|
||||
const requestMessageLength = message.getUint8(3);
|
||||
if (requestMessageLength > MAXIMUM_GUILD_REQUEST_MESSAGE_LENGTH) return;
|
||||
|
||||
const requestMessage = requestMessageLength > 0 ? message.buffer.slice(4, 4 + requestMessageLength) : "test";
|
||||
console.info(requestMessage, guildID, "GuildJoinRequestSubmitMessage");
|
||||
const isRequestSuccessful = guild.addRequest(player.id, requestMessage);
|
||||
if (!isRequestSuccessful) return console.info("shiitt");
|
||||
|
||||
const query = requestMessageLength > 0 ? QUERY_GUILD_REQUEST_SUBMIT : QUERY_GUILD_REQUEST_SUBMIT_DEFAULT;
|
||||
const queryParameters = requestMessageLength > 0 ? [guildID, player.id, requestMessage, requestMessage] : [guildID, player.id, requestMessage];
|
||||
|
||||
const guildJoinRequestSubmitQuery = await execute(query, queryParameters);
|
||||
console.info(guildJoinRequestSubmitQuery)
|
||||
if (!guildJoinRequestSubmitQuery.data) return console.info("shit");
|
||||
|
||||
const guildSearchResultStateChanged = {
|
||||
id: guildID,
|
||||
hasApplied: true
|
||||
};
|
||||
|
||||
const guildSearchResultStateChangedPacket = GuildSearchResultStateChangedPacket(guildSearchResultStateChanged);
|
||||
player.map.registerIndividualNetworkPacket(player.id, guildSearchResultStateChangedPacket);
|
||||
|
||||
const guildDataApplicant = {
|
||||
id: player.id,
|
||||
pirateLevel: player.pirateLevel,
|
||||
username: player.name
|
||||
};
|
||||
|
||||
const guildDataApplicantPacket = GuildDataApplicantPacket(guildDataApplicant);
|
||||
const topic = Game.getTopic(guild.topic);
|
||||
topic.push(guildDataApplicantPacket);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user