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); };