Add some more hub settings
This commit is contained in:
parent
c006e56be0
commit
a55dd6c42c
|
@ -30,6 +30,7 @@ const execute = async (interaction) => {
|
||||||
{ name: "Allow Gift Purchase", value: hubResult[0].allowGiftPurchase ? "Yes" : "No" },
|
{ name: "Allow Gift Purchase", value: hubResult[0].allowGiftPurchase ? "Yes" : "No" },
|
||||||
{ name: "Terms of Service", value: hubResult[0].tos },
|
{ name: "Terms of Service", value: hubResult[0].tos },
|
||||||
{ name: "Background Music ID", value: hubResult[0].bgmId ? hubResult[0].bgmId.toString() : "None" },
|
{ name: "Background Music ID", value: hubResult[0].bgmId ? hubResult[0].bgmId.toString() : "None" },
|
||||||
|
{ name: "Log Channel ID", value: hubResult[0].logChannel ? hubResult[0].logChannel.toString() : "Not Set" },
|
||||||
{ name: "Secret Key", value: `||\`${hubResult[0].secretKey}\`||` }
|
{ name: "Secret Key", value: `||\`${hubResult[0].secretKey}\`||` }
|
||||||
]
|
]
|
||||||
},{
|
},{
|
||||||
|
@ -43,6 +44,7 @@ const execute = async (interaction) => {
|
||||||
{ name: "5. Regenerate Secret Key", value: "Generate a new secret key for this hub. (Old key will be invalidated)" },
|
{ name: "5. Regenerate Secret Key", value: "Generate a new secret key for this hub. (Old key will be invalidated)" },
|
||||||
{ name: "6. Parcel Auto-Import", value: "Set up automatic importing of Parcel purchases when linking." },
|
{ name: "6. Parcel Auto-Import", value: "Set up automatic importing of Parcel purchases when linking." },
|
||||||
{ name: "7. Set Background Music", value: "Set or change the background music for this hub." },
|
{ name: "7. Set Background Music", value: "Set or change the background music for this hub." },
|
||||||
|
{ name: "8. Set Log Channel", value: "Set or change the log channel for this hub." },
|
||||||
{ name: "99. Delete hub and all products", value: "***__WARNING: THIS IS DANGEROUS__***" }
|
{ name: "99. Delete hub and all products", value: "***__WARNING: THIS IS DANGEROUS__***" }
|
||||||
]
|
]
|
||||||
}] });
|
}] });
|
||||||
|
|
|
@ -67,8 +67,8 @@ const opts = { // Map of option number to step number
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
6: {
|
6: {
|
||||||
step: 1, exec: (hubId, uid) => {
|
step: 26, exec: (hubId, uid) => {
|
||||||
return 'Parcel Auto-Import setup is not yet implemented. Type another option number, or `cancel` to exit.';
|
return 'Please provide your Parcel Secret Key. This can be found in your Parcel Settings module, or by running `/settings` on Parcel. Say `cancel` to exit.';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
7: {
|
7: {
|
||||||
|
@ -76,6 +76,11 @@ const opts = { // Map of option number to step number
|
||||||
return 'Please provide a Roblox Audio Asset ID, or say `none` to disable. Say `cancel` to exit.';
|
return 'Please provide a Roblox Audio Asset ID, or say `none` to disable. Say `cancel` to exit.';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
8: {
|
||||||
|
step: 28, exec: (hubId, uid) => {
|
||||||
|
return 'Please provide a Discord Channel ID for logging, or say `none` to unset. Say `cancel` to exit.';
|
||||||
|
}
|
||||||
|
},
|
||||||
99: {
|
99: {
|
||||||
step: 99, exec: async (hubId, uid) => {
|
step: 99, exec: async (hubId, uid) => {
|
||||||
// generate a random confirmation code
|
// generate a random confirmation code
|
||||||
|
@ -144,6 +149,34 @@ const execute = async (message) => {
|
||||||
global.hubSettingsHandlers[message.author.id].step = 1;
|
global.hubSettingsHandlers[message.author.id].step = 1;
|
||||||
message.channel.send('Terms of Service updated.\n\nType an option number, or `cancel` to exit.');
|
message.channel.send('Terms of Service updated.\n\nType an option number, or `cancel` to exit.');
|
||||||
break;
|
break;
|
||||||
|
case 26: // Set Parcel Key
|
||||||
|
const parcelKey = message.content.trim();
|
||||||
|
if (parcelKey.toLowerCase() === 'cancel') {
|
||||||
|
cancel(message.author);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!/^[a-zA-Z0-9]{16,}$/.test(parcelKey)) {
|
||||||
|
message.channel.send('Invalid Parcel Secret Key. Please provide an alphanumeric string at least 16 characters long, or `cancel` to exit.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate key against parcel API GET https://hub.parcelroblox.com/getSession Headers: { 'Authorization': parcelKey } should return 400
|
||||||
|
const resp = await fetch('https://hub.parcelroblox.com/getSession', {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Authorization': parcelKey
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (resp.status !== 400) {
|
||||||
|
message.channel.send('Parcel Secret Key validation failed. Please ensure the key is correct and has not been revoked. You can find your key in your Parcel Settings module, or by running `/settings` on Parcel.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await pool.query('UPDATE hubs SET parcelKey = ? WHERE id = ?', [parcelKey, global.hubSettingsHandlers[message.author.id].hub]);
|
||||||
|
global.hubSettingsHandlers[message.author.id].step = 1;
|
||||||
|
message.channel.send('Parcel Secret Key updated.\n\nType an option number, or `cancel` to exit.');
|
||||||
|
break;
|
||||||
case 27: // Set Background Music
|
case 27: // Set Background Music
|
||||||
const bgmInput = message.content.trim();
|
const bgmInput = message.content.trim();
|
||||||
if (bgmInput.toLowerCase() === 'cancel') {
|
if (bgmInput.toLowerCase() === 'cancel') {
|
||||||
|
@ -165,6 +198,33 @@ const execute = async (message) => {
|
||||||
global.hubSettingsHandlers[message.author.id].step = 1;
|
global.hubSettingsHandlers[message.author.id].step = 1;
|
||||||
message.channel.send('Background music updated.\n\nType an option number, or `cancel` to exit.');
|
message.channel.send('Background music updated.\n\nType an option number, or `cancel` to exit.');
|
||||||
break;
|
break;
|
||||||
|
case 28: // Set Log Channel
|
||||||
|
const channelInput = message.content.trim();
|
||||||
|
if (channelInput.toLowerCase() === 'cancel') {
|
||||||
|
cancel(message.author);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (channelInput.toLowerCase() === 'none') {
|
||||||
|
await pool.query('UPDATE hubs SET logChannel = NULL WHERE id = ?', [global.hubSettingsHandlers[message.author.id].hub]);
|
||||||
|
global.hubSettingsHandlers[message.author.id].step = 1;
|
||||||
|
message.channel.send('Log channel unset.\n\nType an option number, or `cancel` to exit.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const channelId = channelInput;
|
||||||
|
const channel = await client.channels.fetch(channelId).catch(() => null);
|
||||||
|
if (!channel) {
|
||||||
|
message.channel.send('Invalid Channel ID. Please provide a valid Discord Channel ID, or `none` to unset, or `cancel` to exit.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
channel.send("NotParcel will use this channel for logging important hub events.").then(() => {
|
||||||
|
pool.query('UPDATE hubs SET logChannel = ? WHERE id = ?', [channelId, global.hubSettingsHandlers[message.author.id].hub]);
|
||||||
|
global.hubSettingsHandlers[message.author.id].step = 1;
|
||||||
|
message.channel.send('Log channel updated.\n\nType an option number, or `cancel` to exit.');
|
||||||
|
}).catch(() => {
|
||||||
|
message.channel.send('Failed to send a test message to the specified channel. Please ensure the bot has permission to send messages in that channel. Send a valid Discord Channel ID, or `none` to unset, or `cancel` to exit.');
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
break;
|
||||||
case 99: // Delete Hub
|
case 99: // Delete Hub
|
||||||
const confirmMatch = message.content.trim().match(/^confirm (\w{16})$/);
|
const confirmMatch = message.content.trim().match(/^confirm (\w{16})$/);
|
||||||
if (message.content.toLowerCase() === 'cancel') {
|
if (message.content.toLowerCase() === 'cancel') {
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
ALTER TABLE hubs
|
ALTER TABLE hubs
|
||||||
ADD COLUMN logChannel VARCHAR(255);
|
ADD COLUMN logChannel VARCHAR(255);
|
||||||
-- Uhh
|
|
2
migrations/008_update_hubs_add_parcelKey.sql
Normal file
2
migrations/008_update_hubs_add_parcelKey.sql
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE hubs
|
||||||
|
ADD COLUMN parcelKey VARCHAR(255);
|
Loading…
Reference in a new issue