+Commands{change name, help, read} better error catching.

This commit is contained in:
Julia Lange 2020-04-02 19:15:26 -07:00
parent 16fc473a2a
commit bd6374c1c7
6 changed files with 135 additions and 87 deletions

23
commands/change name.ts Normal file
View file

@ -0,0 +1,23 @@
import { squirrel } from "../scripts/enums";
import { capitalize, getPlayerData, updateSquirrelFile } from "../scripts/functions";
module.exports = {
name: "namechange",
description: "Change the name of your squirrel, can only be used at level 1",
args: "**name** - the new name for your squirrel",
execute(msg, args) {
let data: squirrel = getPlayerData(msg.author.id);
if (data.level == 1) {
if (args.length >= 1) {
data.name = capitalize(args[0]) + " " + data.name.split(' ')[1];
updateSquirrelFile(msg.author.id, data);
msg.reply(`Name changed to ${data.name}`);
} else {
msg.reply(`Please provide a name`);
}
} else {
msg.reply(`Sorry, you have to be level 1 to change your name. You're stuck with ${data.name}`);
}
}
}

View file

@ -11,30 +11,12 @@ let processes: any = {
args: "",
run: (msg: any, data: player, args: string[], file: any) => encounter()
},
"help": {
title: "Help",
description: "Show a description of a command",
args: "**command** - the command you'd like to know more about",
run: (msg: any, data: player, args: string[], file: any) => help(msg, args)
},
"list": {
title: "List",
description: "List all commands",
args: "",
run: (msg: any, data: player, args: string[], file: any) => list(msg)
},
"read": {
title: "Read",
description: "Read a description of your squirrel",
args: "",
run: (msg: any, data: player, args: string[], file: any) => read(msg, data)
},
"namechange": {
title: "Namechange",
description: "Change the name of your squirrel, can only be used at level 1",
args: "**name** - the new name for your squirrel",
run: (msg: any, data: player, args: string[], file: any) => nameChange(msg, data, args, file)
},
"races": {
title: "Races",
description: "List all the races",
@ -51,26 +33,6 @@ let processes: any = {
//===COMMAND FUNCTIONS==
function help(msg: any, args: string[]): void {
let argument: string = args[0].toLowerCase();
if (argument === "") {
msg.reply(`Please provide a command, like "!help help", or "!help races"\nAlternatively type "!list" for a list of commands`);
} else if (processes.hasOwnProperty(argument)) {
let embed = new Discord.RichEmbed()
.setTitle(processes[argument].title)
.setColor(COLOR)
.setDescription(processes[argument].description);
if (processes[argument].args === "") {
embed.addField("Arguments:", `This command has no arguments`);
} else {
embed.addField("Arguments:", processes[argument].args);
}
msg.channel.send(embed);
} else {
msg.reply(`That command does not exist`);
}
}
function list(msg: any): void {
let embed = new Discord.RichEmbed()
.setTitle("List of Commands")
@ -83,39 +45,6 @@ function list(msg: any): void {
msg.author.send(embed);
}
function read(msg: any, data: player): void {
let embed = new Discord.RichEmbed()
.setTitle(msg.author.username)
.setColor(COLOR)
.setThumbnail(msg.author.avatarURL)
.setDescription("Squirrel Info")
.addField("Name", data.name)
.addField("Race", raceText(data.race))
.addField("Class", capitalize(data.class))
.addField("Nuts", data.nuts)
.addField("Level", data.level);
if (data.dm === true)
embed.addField("DM Points", data.dm_points);
msg.channel.send(embed);
}
function nameChange(msg: any, data: player, args: string[], file: any): void {
if (data.level == 1) {
if (args.length >= 1) {
data.name = capitalize(args[0]) + " " + data.name.split(' ')[1];
fs.writeFileSync(file, JSON.stringify(data));
msg.reply(`Name changed to ${data.name}`);
} else {
msg.reply(`Please provide a name`);
}
} else {
msg.reply(`Sorry, you have to be level 1 to change your name. You're stuck with ${data.name}`);
}
}
function printRaces(msg: any): void {
let print = "The races are: ";
for (let i = 0; i < races.length; i++) {

33
commands/help.ts Normal file
View file

@ -0,0 +1,33 @@
import { client } from "../main";
import { capitalize, COLOR } from "../scripts/functions";
module.exports = {
name: 'help',
description: "Show a description of a command",
args: "**command** - the command you'd like to know more about",
execute(msg, args) {
const command = args[0].toLowerCase();
if (command === "") {
msg.reply(`Please provide a command, like "!help help", or "!help races"\nAlternatively type "!list" for a list of commands`);
return;
}
if (client.commands.has(command)) {
const commandData: any = client.commands.get(command);
const helpEmbed: object = {
color: COLOR,
title: capitalize(commandData.name),
description: commandData.description,
fields: [
{
name: 'Arguments',
value: commandData.args
}
]
}
msg.channel.send("{ embed: helpEmbed }");
} else {
msg.reply(`That command does not exist`);
}
}
}

41
commands/read.ts Normal file
View file

@ -0,0 +1,41 @@
import { squirrel } from "../scripts/enums";
import { classText, COLOR, getPlayerData, raceText } from "../scripts/functions";
module.exports = {
name: "read",
description: "Read a description of your squirrel",
args: "",
execute(msg, args) {
const data: squirrel = getPlayerData(msg.author.id);
const squirrelEmbed: object = {
color: COLOR,
title: msg.author.username,
thumbnail: {
url: msg.author.avatarURL()
},
fields: [
{
name: 'Name',
value: data.name
},
{
name: 'Race',
value: raceText(data.race)
},
{
name: 'Class',
value: classText(data.class)
},
{
name: 'Nuts',
value: data.nuts
},
{
name: 'Level',
value: data.level
}
]
}
msg.channel.send({ embed: squirrelEmbed });
}
}