mirror of
https://github.com/Ratstail91/SANCTUM.git
synced 2025-11-29 02:24:27 +11:00
Completed faction code
This commit is contained in:
@@ -1,24 +1,47 @@
|
|||||||
//initialize the exports
|
//initialize the exports
|
||||||
exports = module.exports = {};
|
exports = module.exports = {};
|
||||||
|
|
||||||
|
dataRequest = require("../modules/dataRequest");
|
||||||
|
messaging = require("./messaging");
|
||||||
|
|
||||||
|
//CheckFaction
|
||||||
|
//factionRole - the value to check
|
||||||
|
exports.CheckFaction = function(factionRole) {
|
||||||
|
switch(factionRole) {
|
||||||
|
case process.env.GROUP_A_ROLE:
|
||||||
|
case process.env.GROUP_B_ROLE:
|
||||||
|
case process.env.GROUP_C_ROLE:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//GetFactionName
|
//GetFactionName
|
||||||
//factionID - the discord role ID of the faction
|
//factionRole - the discord role ID of the faction
|
||||||
exports.GetFactionName = function(factionID) {
|
exports.GetFactionName = function(factionRole) {
|
||||||
switch(factionID) {
|
//factionRole must be a faction role
|
||||||
|
if (!exports.CheckFaction(factionRole)) {
|
||||||
|
throw "factionRole is not a faction!";
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(factionRole) {
|
||||||
case process.env.GROUP_A_ROLE:
|
case process.env.GROUP_A_ROLE:
|
||||||
return process.env.GROUP_A_NAME;
|
return process.env.GROUP_A_NAME;
|
||||||
case process.env.GROUP_B_ROLE:
|
case process.env.GROUP_B_ROLE:
|
||||||
return process.env.GROUP_B_NAME;
|
return process.env.GROUP_B_NAME;
|
||||||
case process.env.GROUP_C_ROLE:
|
case process.env.GROUP_C_ROLE:
|
||||||
return process.env.GROUP_C_NAME;
|
return process.env.GROUP_C_NAME;
|
||||||
default:
|
|
||||||
return "Unknown";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetFactionChannel
|
//GetFactionChannel
|
||||||
//user - discord.js user
|
//user - discord.js user
|
||||||
exports.GetFactionChannel = function(user) {
|
exports.GetFactionChannel = function(user) {
|
||||||
|
//factionRole must be a faction role
|
||||||
|
if (!exports.CheckFaction(factionRole)) {
|
||||||
|
throw "factionRole is not a faction!";
|
||||||
|
}
|
||||||
|
|
||||||
if (user.roles.has(process.env.GROUP_A_ROLE)) {
|
if (user.roles.has(process.env.GROUP_A_ROLE)) {
|
||||||
return process.env.GROUP_A_BOT_ID;
|
return process.env.GROUP_A_BOT_ID;
|
||||||
}
|
}
|
||||||
@@ -28,73 +51,57 @@ exports.GetFactionChannel = function(user) {
|
|||||||
if (user.roles.has(process.env.GROUP_C_ROLE)) {
|
if (user.roles.has(process.env.GROUP_C_ROLE)) {
|
||||||
return process.env.GROUP_C_BOT_ID;
|
return process.env.GROUP_C_BOT_ID;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
//ChangeFaction
|
||||||
// Change Faction
|
//client - discord.js client
|
||||||
exports.ChangeFaction = async function(factionID, channelID, userID, member, botChannelID) {
|
//factionRole - a faction role
|
||||||
if (member.roles.has(factionID)) {
|
exports.ChangeFaction = async function(client, factionRole, channel, member) {
|
||||||
if (factionID === process.env.GROUP_A_ROLE)
|
//factionRole must be a faction role
|
||||||
sendMessage(channelID, dialog.getDialog("orderAlreadyJoined", userID));
|
if (!exports.CheckFaction(factionRole)) {
|
||||||
else if (factionID === process.env.GROUP_B_ROLE)
|
throw "factionRole is not a faction!";
|
||||||
sendMessage(channelID, dialog.getDialog("anarchyAlreadyJoined", userID));
|
}
|
||||||
else if (factionID === process.env.GROUP_C_ROLE)
|
|
||||||
sendMessage(channelID, dialog.getDialog("religionAlreadyJoined", userID));
|
|
||||||
} else {
|
|
||||||
if (dataRequest.loadServerData("hasConvertedToday", userID) == 1) {
|
|
||||||
sendMessage(channelID, dialog.getDialog("alreadyConvertedToday", userID));
|
|
||||||
} else {
|
|
||||||
// Creates new user
|
|
||||||
var response = String(dataRequest.sendServerData("newUser", "New user.", userID));
|
|
||||||
|
|
||||||
//var response = "createdUser"
|
|
||||||
// Obsidian Tech.
|
|
||||||
if (factionID === process.env.GROUP_A_ROLE) {
|
|
||||||
await member.removeRole(process.env.GROUP_B_ROLE);
|
|
||||||
await member.removeRole(process.env.GROUP_C_ROLE);
|
|
||||||
await member.addRole(process.env.GROUP_A_ROLE);
|
|
||||||
|
|
||||||
dataRequest.sendServerData("conversion", "Converted to The Order.", userID);
|
//handle channel strings
|
||||||
|
if (typeof(channel) === "string") {
|
||||||
if (response == "createdUser") {
|
channel = client.channels.find(item => item.name === channel);
|
||||||
client.users.get(userID).send(dialog.getDialog("newUserPM", userID, getFactionName(factionID)));
|
}
|
||||||
sendMessage(botChannelID, dialog.getDialog("newUserWelcome", userID, `<#${getFactionName(factionID)}>`));
|
|
||||||
} else {
|
|
||||||
sendMessage(channelID, dialog.getDialog("orderJoin", userID));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Genesis Command
|
//handle member strings
|
||||||
} else if (factionID === process.env.GROUP_B_ROLE) {
|
if (typeof(member) === "string") {
|
||||||
await member.removeRole(process.env.GROUP_C_ROLE);
|
//get the member
|
||||||
await member.removeRole(process.env.GROUP_A_ROLE);
|
let user = client.users.find(item => item.username === member);
|
||||||
await member.addRole(process.env.GROUP_B_ROLE);
|
let guild = client.guilds.get(process.env.SANCTUM_ID);
|
||||||
|
member = guild.members.get(user.id);
|
||||||
|
}
|
||||||
|
|
||||||
dataRequest.sendServerData("conversion", "Converted to the Anarchy.", userID);
|
if (member.roles.has(factionRole)) {
|
||||||
|
//can't change to this faction
|
||||||
if (response == "createdUser") {
|
return messaging.SendPublicMessage(client, member.user, channel, "You have already joined that faction.");
|
||||||
client.users.get(userID).send(dialog.getDialog("newUserPM", userID, getFactionName(factionID)));
|
}
|
||||||
sendMessage(botChannelID, dialog.getDialog("newUserWelcome", userID, `<#${getFactionName(factionID)}>`));
|
|
||||||
} else {
|
|
||||||
sendMessage(channelID, dialog.getDialog("anarchyJoin", userID));
|
|
||||||
}
|
|
||||||
|
|
||||||
// The Hand
|
|
||||||
} else if (factionID === process.env.GROUP_C_ROLE) {
|
|
||||||
await member.removeRole(process.env.GROUP_A_ROLE);
|
|
||||||
await member.removeRole(process.env.GROUP_B_ROLE);
|
|
||||||
await member.addRole(process.env.GROUP_C_ROLE);
|
|
||||||
|
|
||||||
dataRequest.sendServerData("conversion", "Converted to The Religion.", userID);
|
if (dataRequest.loadServerData("hasConvertedToday", member.user.id) == 1) {
|
||||||
|
return messaging.SendPublicMessage(client, member.user, channel, "You have already converted today.");
|
||||||
if (response == "createdUser") {
|
}
|
||||||
client.users.get(userID).send(dialog.getDialog("newUserPM", userID, getFactionName(factionID)));
|
|
||||||
sendMessage(botChannelID, dialog.getDialog("newUserWelcome", userID, `<#${getFactionName(factionID)}>`));
|
//Creates a new user
|
||||||
} else {
|
var newUserResponse = String(dataRequest.sendServerData("newUser", "New user.", member.user.id));
|
||||||
sendMessage(channelID, dialog.getDialog("religionJoin", userID));
|
|
||||||
}
|
//joins the new faction
|
||||||
}
|
await member.removeRole(process.env.GROUP_A_ROLE);
|
||||||
}
|
await member.removeRole(process.env.GROUP_B_ROLE);
|
||||||
|
await member.removeRole(process.env.GROUP_C_ROLE);
|
||||||
|
await member.addRole(factionRole);
|
||||||
|
|
||||||
|
//send the server the info (for logging)
|
||||||
|
dataRequest.sendServerData("conversion", "Converted to " + exports.GetFactionName(factionRole), member.user.id);
|
||||||
|
|
||||||
|
//send the public welcoming message
|
||||||
|
messaging.SendPublicMessage(client, member.user, channel, "Welcome to " + exports.GetFactionName(factionRole));
|
||||||
|
|
||||||
|
//send the private welcoming message
|
||||||
|
if (newUserResponse === "createdUser") {
|
||||||
|
//TODO: more dialog from adam & other faction leaders
|
||||||
|
messaging.SendPrivateMessage(client, member.user, "Welcome to SANCTUM.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
@@ -33,10 +33,12 @@ client.on("message", function(msg) {
|
|||||||
switch(command) {
|
switch(command) {
|
||||||
//used for debugging
|
//used for debugging
|
||||||
case "ping":
|
case "ping":
|
||||||
console.log(shared.CheckValidDisplay(client, "Ratstail91", "bot-spam", true));
|
shared.ChangeFaction(client, process.env.GROUP_B_ROLE, msg.channel, msg.member);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//actually log in
|
//actually log in
|
||||||
client.login(process.env.DEVELOPER_TOKEN);
|
client.login(process.env.DEVELOPER_TOKEN);
|
||||||
|
|
||||||
|
//TODO: change usernames to tags throughout the shared library
|
||||||
@@ -53,8 +53,9 @@ exports.CheckValidDisplay = function(client, member, channel, checkRole) { //See
|
|||||||
//handle member strings
|
//handle member strings
|
||||||
if (typeof(member) === "string") {
|
if (typeof(member) === "string") {
|
||||||
//get the member
|
//get the member
|
||||||
//NOTE: I think the bot needs to run inside a single server only, otherwise I don't know what will happen here due to the [0] part
|
let user = client.users.find(item => item.username === member);
|
||||||
member = client.guilds.map(guild => guild.members.filter(mbr => mbr.user.username === member))[0].first();
|
let guild = client.guilds.get(process.env.SANCTUM_ID);
|
||||||
|
member = guild.members.get(user.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//handle channel strings
|
//handle channel strings
|
||||||
|
|||||||
Reference in New Issue
Block a user