Initial commit

This commit is contained in:
2026-08-24 22:20:36 +02:00
commit 62f7b1278a
251 changed files with 16670 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
const GuildSearchResultPacket = require("../Packets/GuildSearchResult");
const queries = require("../Data/queries");
const { QUERY_DELETE_GUILD_MEMBER } = queries;
const constants = require("../Data/constants");
const { GUILD_PERMISSIONS } = constants;
const { GUILD_PERMISSION_KICK } = GUILD_PERMISSIONS;
const Game = require("../Game/Game");
const { players, guilds } = Game;
const dec = new TextDecoder();
module.exports = async function (ws, message, player) {
const guildTagLength = message.getUint8(1);
const guildNameLength = message.getUint8(1 + guildTagLength + 1);
if (!guildTagLength && !guildNameLength) return;
const guildTagView = new DataView(message.buffer, 2, guildTagLength);
const guildTag = dec.decode(guildTagView);
const guildNameView = new DataView(message.buffer, 2 + guildTagLength + 1, guildNameLength);
const guildName = dec.decode(guildNameView);
const guildSearchResult = await execute("SELECT guilds.id, guilds.tag, guilds.name, d.size AS size, CASE WHEN guildrequests.playerID IS NULL THEN 0 ELSE 1 END AS hasApplied FROM guilds LEFT JOIN guildrequests ON guilds.id = guildrequests.guildID AND guildrequests.playerID = ? JOIN (SELECT guildID, COUNT(*) AS size FROM guildmembers GROUP BY guildID) AS d ON guilds.id = d.guildID WHERE guilds.tag = ? OR guilds.name LIKE ?", [player.id, guildTag, + `%${guildName}%`]);
if (!guildSearchResult.data) return;
const packets = [];
const length = guildSearchResult.data.length;
if (!length) {
const guildSearchResult = {
id: 0,
tag: "",
name: "",
size: {
current: 0,
maximum: 0
},
hasApplied: false,
isLastEntry: true
};
const guildSearchResultPacket = GuildSearchResultPacket(guildSearchResult);
packets.push(guildSearchResultPacket);
} else {
guildSearchResult.data.forEach((g, i) => {
const guild = guilds[g.id];
const sizeMaximum = guild ? guild.sizeMaximum : 0;
const guildSearchResult = {
id: g.id,
tag: g.tag,
name: g.name,
size: {
current: g.size,
maximum: sizeMaximum
},
hasApplied: g.hasApplied,
isLastEntry: i === length - 1
};
const guildSearchResultPacket = GuildSearchResultPacket(guildSearchResult);
packets.push(guildSearchResultPacket);
});
};
player.map.registerIndividualNetworkPacket(player.id, packets);
};