Initial commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
const GuildDataMemberPacket = require("../Packets/GuildDataMember");
|
||||
const GuildMemberNewPacket = require("../Packets/GuildMemberNew");
|
||||
const GuildLeaveConfirmationPacket = require("../Packets/GuildLeaveConfirmation");
|
||||
const GuildDataCreationFeedbackPacket = require("../Packets/GuildDataCreationFeedback");
|
||||
|
||||
const Guild = require("../Game/Guild");
|
||||
|
||||
const Game = require("../Game/Game");
|
||||
const { guilds } = Game;
|
||||
|
||||
const constants = require("../Data/constants");
|
||||
|
||||
module.exports = async function (ws, message, player) {
|
||||
if (player.guild.id) return;
|
||||
|
||||
const memberAuthor = player.guild.getMember(player.id);
|
||||
if (memberAuthor) return;
|
||||
|
||||
const guildTagLength = message.getUint8(1);
|
||||
const guildNameLength = message.getUint8(1 + 1 + guildTagLength);
|
||||
const guildDescriptionLength = message.getUint8(1 + 1 + 1 + guildTagLength + guildNameLength);
|
||||
|
||||
const guildTag = message.buffer.slice(2, 2 + guildTagLength);
|
||||
const guildName = message.buffer.slice(2 + 1 + guildTagLength, 2 + 1 + guildTagLength + guildNameLength);
|
||||
const guildDescription = message.buffer.slice(2 + 1 + 1 + guildTagLength + guildNameLength, 2 + 1 + 1 + guildNameLength + guildTagLength + guildDescriptionLength);
|
||||
|
||||
const guildTagBuffer = Buffer.from(guildTag);
|
||||
const guildNameBuffer = Buffer.from(guildName);
|
||||
const guildDescriptionBuffer = Buffer.from(guildDescription);
|
||||
console.info(player.id, "???")
|
||||
const guildCreateQuery = await execute("INSERT INTO guilds (tag, name, description, createdBy) VALUES (?, ?, ?, ?)", [guildTagBuffer, guildNameBuffer, guildDescriptionBuffer, player.id]);
|
||||
if (!guildCreateQuery.data || guildCreateQuery.data.affectedRows !== 1) {
|
||||
const guildDataCreationFeedback = {
|
||||
reason: 1
|
||||
};
|
||||
|
||||
const guildDataCreationFeedbackPacket = GuildDataCreationFeedbackPacket(guildDataCreationFeedback);
|
||||
return player.map.registerIndividualNetworkPacket(player.id, guildDataCreationFeedbackPacket);
|
||||
};
|
||||
|
||||
const guildID = guildCreateQuery.data.insertId;
|
||||
console.info(guildCreateQuery, guildID, player.id)
|
||||
|
||||
const guild = guilds[guildID] = new Guild({
|
||||
id: guildID,
|
||||
name: guildNameBuffer,
|
||||
tag: guildTagBuffer,
|
||||
description: guildDescriptionBuffer,
|
||||
ownerID: player.id,
|
||||
experiencePoints: 0,
|
||||
taxRates: [0, 0],
|
||||
timestamps: {
|
||||
taxRatesEditedAt: 0,
|
||||
tagEditedAt: 0,
|
||||
nameEditedAt: 0,
|
||||
descriptionEditedAt: 0
|
||||
}
|
||||
});
|
||||
|
||||
player.guild = guild;
|
||||
|
||||
const member = {
|
||||
id: player.id,
|
||||
permission: 31
|
||||
};
|
||||
|
||||
guild.addMember(member);
|
||||
|
||||
const guildStatePacket = GuildLeaveConfirmationPacket(true); // should rename everywhere
|
||||
player.map.registerNetworkPacket(player.id, guildStatePacket);
|
||||
|
||||
const guildMemberNew = {
|
||||
playerID: player.id,
|
||||
tag: guild.tag
|
||||
};
|
||||
|
||||
const guildMemberNewPacket = GuildMemberNewPacket(guildMemberNew);
|
||||
player.map.registerNetworkPacket(player.id, guildMemberNewPacket);
|
||||
};
|
||||
Reference in New Issue
Block a user