Finalized hide-warn command
This commit is contained in:
parent
88faa27278
commit
eba7e028b2
|
@ -185,6 +185,7 @@ const start = async (): Promise<void> => {
|
|||
|
||||
// Check if user is authenticated to use this endpoint
|
||||
let authorized = false;
|
||||
let hideWarn = false;
|
||||
|
||||
// Check if the db has the requested userid/channelid combo, and that the requested userid matches the userid linked with the api key
|
||||
const dbChannelQuery = await dbClient.query("SELECT active, banned FROM allowed_channels WHERE userid = ? AND channelid = ?", [apiUserid, BigInt(query.get("channel") || "0")]);
|
||||
|
@ -193,11 +194,12 @@ const start = async (): Promise<void> => {
|
|||
// Get the guild from the channel and make sure user is in said guild
|
||||
const guild = cache.channels.get(BigInt(query.get("channel") || ""))?.guild;
|
||||
if (guild && guild.members.get(BigInt(query.get("user") || ""))?.id) {
|
||||
const dbGuildQuery = await dbClient.query("SELECT active, banned FROM allowed_guilds WHERE guildid = ? AND channelid = ?", [guild.id, BigInt(query.get("channel") || "0")]);
|
||||
const dbGuildQuery = await dbClient.query("SELECT active, banned, hidewarn FROM allowed_guilds WHERE guildid = ? AND channelid = ?", [guild.id, BigInt(query.get("channel") || "0")]);
|
||||
|
||||
// Make sure guild allows API rolls
|
||||
if (dbGuildQuery.length === 1 && dbGuildQuery[0].active && !dbGuildQuery[0].banned) {
|
||||
authorized = true;
|
||||
hideWarn = dbGuildQuery[0].hidewarn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -240,7 +242,7 @@ const start = async (): Promise<void> => {
|
|||
const returnmsg = solver.parseRoll(rollCmd, config.prefix, config.postfix, query.has("m"), query.has("n"), query.has("o") ? (query.get("o")?.toLowerCase() || "") : "");
|
||||
|
||||
// Alert users why this message just appeared and how they can report abues pf this feature
|
||||
const apiPrefix = `The following roll was conducted using my built in API. If someone in this channel did not request this roll, please report API abuse here: <${config.api.supportURL}>\n\n`;
|
||||
const apiPrefix = hideWarn ? '' : `The following roll was conducted using my built in API. If someone in this channel did not request this roll, please report API abuse here: <${config.api.supportURL}>\n\n`;
|
||||
let m, returnText = "";
|
||||
|
||||
// Handle sending the error message to whoever called the api
|
||||
|
|
|
@ -38,7 +38,7 @@ export const allowBlock = async (message: DiscordenoMessage, apiArg: string) =>
|
|||
}
|
||||
|
||||
// We won't get here if there's any errors, so we know it has bee successful, so report as such
|
||||
message.send(generateApiSuccess(apiArg)).catch(e => {
|
||||
message.send(generateApiSuccess(`${apiArg}ed`)).catch(e => {
|
||||
log(LT.ERROR, `Failed to send message: ${JSON.stringify(message)} | ${JSON.stringify(e)}`);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@ import { generateApiFailed, generateApiSuccess } from "../../constantCmds.ts";
|
|||
export const showHideWarn = async (message: DiscordenoMessage, apiArg: string) => {
|
||||
const guildQuery = await dbClient.query(`SELECT guildid, channelid FROM allowed_guilds WHERE guildid = ? AND channelid = ?`, [message.guildId, message.channelId]).catch(e0 => {
|
||||
log(LT.ERROR, `Failed to query DB: ${JSON.stringify(e0)}`);
|
||||
message.send(generateApiFailed(apiArg)).catch(e1 => {
|
||||
message.send(generateApiFailed(`${apiArg} on`)).catch(e1 => {
|
||||
log(LT.ERROR, `Failed to send message: ${JSON.stringify(message)} | ${JSON.stringify(e1)}`);
|
||||
});
|
||||
return;
|
||||
|
@ -21,7 +21,7 @@ export const showHideWarn = async (message: DiscordenoMessage, apiArg: string) =
|
|||
// Since guild is not in our DB, add it in
|
||||
await dbClient.execute(`INSERT INTO allowed_guilds(guildid,channelid,hidewarn) values(?,?,?)`, [message.guildId, message.channelId, ((apiArg === "hide-warn") ? 1 : 0)]).catch(e0 => {
|
||||
log(LT.ERROR, `Failed to insert into DB: ${JSON.stringify(e0)}`);
|
||||
message.send(generateApiFailed(apiArg)).catch(e1 => {
|
||||
message.send(generateApiFailed(`${apiArg} on`)).catch(e1 => {
|
||||
log(LT.ERROR, `Failed to send message: ${JSON.stringify(message)} | ${JSON.stringify(e1)}`);
|
||||
});
|
||||
return;
|
||||
|
@ -30,7 +30,7 @@ export const showHideWarn = async (message: DiscordenoMessage, apiArg: string) =
|
|||
// Since guild is in our DB, update it
|
||||
await dbClient.execute(`UPDATE allowed_guilds SET hidewarn = ? WHERE guildid = ? AND channelid = ?`, [((apiArg === "hide-warn") ? 1 : 0), message.guildId, message.channelId]).catch(e0 => {
|
||||
log(LT.ERROR, `Failed to update DB: ${JSON.stringify(e0)}`);
|
||||
message.send(generateApiFailed(apiArg)).catch(e1 => {
|
||||
message.send(generateApiFailed(`${apiArg} on`)).catch(e1 => {
|
||||
log(LT.ERROR, `Failed to send message: ${JSON.stringify(message)} | ${JSON.stringify(e1)}`);
|
||||
});
|
||||
return;
|
||||
|
|
|
@ -21,7 +21,7 @@ export const constantCmds = {
|
|||
{
|
||||
name: "The Artificer's API Details:",
|
||||
value: `The Artificer has a built in API that allows user to roll dice into Discord using third party programs.
|
||||
By default, API rolls are blocked from being sent in your guild.
|
||||
By default, API rolls are blocked from being sent in your guild. The API warning is also enabled by default.
|
||||
These commands may only be used by the Owner or Admins of your guild.
|
||||
|
||||
For information on how to use the API, please check the GitHub README for more information [here](https://github.com/Burn-E99/TheArtificer).
|
||||
|
@ -38,19 +38,27 @@ export const constantCmds = {
|
|||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api status\``,
|
||||
value: "Shows the current status of the API for this guild",
|
||||
value: "Shows the current status of the API for the channel this was run in",
|
||||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api allow/enable\``,
|
||||
value: "Allows API Rolls to be sent to this guild",
|
||||
value: "Allows API Rolls to be sent to the channel this was run in",
|
||||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api block/disable\``,
|
||||
value: "Blocks API Rolls from being sent to this guild",
|
||||
value: "Blocks API Rolls from being sent to the channel this was run in",
|
||||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api delete\``,
|
||||
value: "Deletes this guild from The Artificer's database",
|
||||
value: "Deletes this channel's settings from The Artificer's database",
|
||||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api show-warn\``,
|
||||
value: "Shows the API warning on all rolls sent to the channel this was run in",
|
||||
inline: true
|
||||
}, {
|
||||
name: `\`${config.prefix}api hide-warn\``,
|
||||
value: "Hides the API warning on all rolls sent to the channel this was run in",
|
||||
inline: true
|
||||
}
|
||||
]
|
||||
|
@ -379,7 +387,7 @@ export const generateApiStatus = (banned: boolean, active: boolean) => ({
|
|||
|
||||
export const generateApiSuccess = (args: string) => ({
|
||||
embeds: [{
|
||||
title: `API rolls have successfully been ${args}ed for this guild.`
|
||||
title: `API rolls have successfully been ${args} for this guild.`
|
||||
}]
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue