Files
pirate-corsaire-server/Messages/GuildJoinRequestSubmitMessage.js
2026-08-24 22:20:36 +02:00

56 lines
2.3 KiB
JavaScript

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