Add CompanyID functionality.
This commit is contained in:
		
							parent
							
								
									02863e7c1d
								
							
						
					
					
						commit
						819ca2fd52
					
				
							
								
								
									
										113
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								src/index.js
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | ||||
| import dotenv from 'dotenv'; | ||||
| import {Client, IntentsBitField} from 'discord.js'; | ||||
| import {Client, IntentsBitField, EmbedBuilder} from 'discord.js'; | ||||
| import sqlite3 from 'sqlite3'; | ||||
| 
 | ||||
| const db = new sqlite3.Database("./db/employeescoreboard.db", sqlite3.OPEN_READWRITE,(err) => { | ||||
| @ -26,12 +26,18 @@ client.on('ready', (c) => { | ||||
| //Chat commands are handled here
 | ||||
| client.on('interactionCreate', async(interaction) => { | ||||
|     if (!interaction.isChatInputCommand()) return; | ||||
|      | ||||
|     let isManager = await interaction.member.roles.cache.some(role => role.name === 'Manager'); | ||||
|     if (interaction.commandName === 'croak') { | ||||
|         interaction.reply('Croak!'); | ||||
|     } | ||||
| 
 | ||||
|     if (interaction.commandName === 'gear') { | ||||
|     if (interaction.commandName == 'companyid') { | ||||
|          | ||||
|         let employeeCard = await EmployeeCardEmbed(interaction.options.get('employee').value);  | ||||
|         interaction.reply({embeds: [employeeCard]}); | ||||
|     } | ||||
|      | ||||
|     if (interaction.commandName === 'gear' && isManager) { | ||||
|         const addRemove = interaction.options.get('addremove').value; | ||||
|         const gearType = interaction.options.get('geartype').value; | ||||
|         const employee = interaction.options.get('employee').value; | ||||
| @ -40,10 +46,12 @@ client.on('interactionCreate', async(interaction) => { | ||||
|             interaction.reply(`Added a gear to ${employee}`) | ||||
|         }; | ||||
| 
 | ||||
|     } | ||||
|     } else if (interaction.commandName === 'gear' && !isManager) { | ||||
|         interaction.reply("You aren't a manager! Get back to work.") | ||||
|     }; | ||||
| 
 | ||||
|     if (interaction.commandName === 'employee') { | ||||
|         const hireFirePromote = interaction.options.get('hire-fire-promote').value; | ||||
|     if (interaction.commandName === 'employee' && isManager) { | ||||
|         const hireFirePromote = interaction.options.get('hire-fire').value; | ||||
|         const employeeName = interaction.options.get('employee-name').value; | ||||
|         if (hireFirePromote == 'hire') { | ||||
|             CreateEmployee(employeeName); | ||||
| @ -52,28 +60,36 @@ client.on('interactionCreate', async(interaction) => { | ||||
|         if (hireFirePromote == 'fire') { | ||||
|             DeleteEmployee(employeeName); | ||||
|         } | ||||
|     } | ||||
|     } else if (interaction.commandName === 'employee' && !isManager) { | ||||
|         interaction.reply("You aren't a manager! Get back to work.") | ||||
|     }; | ||||
| 
 | ||||
|     if (interaction.commandName === 'promote') { | ||||
|     if (interaction.commandName === 'promote' && isManager) { | ||||
|         const employeeName = interaction.options.get('employee-name').value; | ||||
|         const rank = interaction.options.get('rank').value; | ||||
|         PromoteEmployee(employeeName, rank); | ||||
|         interaction.reply(`Changed ${employeeName}\'s rank to ${rank}`); | ||||
|     } | ||||
|     } else if (interaction.commandName === 'promote' && !isManager) { | ||||
|         interaction.reply("You aren't a manager! Get back to work.") | ||||
|     }; | ||||
| 
 | ||||
|     if (interaction.commandName === 'scoreboard') { | ||||
|     if (interaction.commandName === 'rename' && isManager) { | ||||
|         RenameEmployee(interaction.options.get('old-name').value,interaction.options.get('new-name').value) | ||||
|         interaction.reply(`Renamed ${interaction.options.get('old-name').value} to ${interaction.options.get('new-name').value}`) | ||||
|     }   else if (interaction.commandName === 'promote' && !isManager) { | ||||
|         interaction.reply("You aren't a manager! Get back to work.") | ||||
|     }; | ||||
| 
 | ||||
|     if (interaction.commandName === 'scoreboard' && isManager) { | ||||
|         const updateOrDisplay = interaction.options.get('update-display').value; | ||||
|         if (updateOrDisplay == 'display') { | ||||
|             | ||||
|             const gearchannel = client.channels.cache.get('1306669146804715693'); | ||||
| 
 | ||||
|             let scoreBoardMessage = await BuildScoreboard("Beastboss"); | ||||
|         const gearchannel = client.channels.cache.get('1255024866797682779'); | ||||
|         let scoreBoardMessage = await BuildScoreboard("Beastboss"); | ||||
|             scoreBoardMessage += await BuildScoreboard("Manager"); | ||||
|             scoreBoardMessage += await BuildScoreboard("Muscle"); | ||||
|             scoreBoardMessage += await BuildScoreboard("Moneymaker"); | ||||
|             scoreBoardMessage += await BuildScoreboard("Mystic"); | ||||
|             scoreBoardMessage += await BuildScoreboard("Intern"); | ||||
| 
 | ||||
|         if (updateOrDisplay == 'display') { | ||||
|             console.log("Scoreboard goes here: " + scoreBoardMessage); | ||||
| 
 | ||||
|             if (scoreBoardMessage != "") { | ||||
| @ -84,6 +100,11 @@ client.on('interactionCreate', async(interaction) => { | ||||
|                 console.log("Something went wrong when building the scoreboard."); | ||||
|             }; | ||||
|         }; | ||||
|         if (updateOrDisplay == 'update') { | ||||
|              | ||||
|         } | ||||
|     } else if (interaction.commandName === 'scoreboard' && !isManager) { | ||||
|         interaction.reply("You aren't a manager! Get back to work.") | ||||
|     }; | ||||
| 
 | ||||
| }); | ||||
| @ -104,6 +125,60 @@ function AddGear(Type,Employee) { | ||||
|     if (Type != "coppergear" && Type != "silvergear" && Type != "goldgear" && Type != "purplegear") return | ||||
|     db.run(`UPDATE Employees SET ${Type} = ${Type} + 1 WHERE name = \'${Employee}\' `) | ||||
| }; | ||||
| function RemoveGear(Type, Employee) { | ||||
|     if (Type != "coppergear" && Type != "silvergear" && Type != "goldgear" && Type != "purplegear") return | ||||
|     db.run(`UPDATE Employees SET ${Type} = ${Type} - 1 WHERE name = \'${Employee}\'`) | ||||
| } | ||||
| function RenameEmployee(oldName, newName) { | ||||
|     db.run(`UPDATE Employees SET name = \'${newName}\' WHERE name = \'${oldName}\'`); | ||||
| } | ||||
| 
 | ||||
| function EmployeeCardEmbed(employeeName) { | ||||
|     return new Promise((resolve) => { | ||||
|         db.get(`SELECT name, rank, coppergear, silvergear, purplegear, copperswog, silverswog, goldswog, purpleswog FROM Employees WHERE name = \'${employeeName}\'`, (err, character) => { | ||||
|             if (err != null) {console.log(err.message)}; | ||||
| 
 | ||||
|             let copperGearString = " "; | ||||
|             console.log(character.coppergear); | ||||
|             for (let i = 0; i < character.coppergear; i++) { | ||||
|                 copperGearString += "<:coppergear:1308166341622235179>";  | ||||
|             }; | ||||
|              | ||||
|             let silverGearString = " "; | ||||
|             console.log(character.silvergear); | ||||
|             for (let i = 0; i < character.silvergear; i++) { | ||||
|                 silverGearString += ":gear:"; | ||||
|             }; | ||||
|          | ||||
|             let goldGearString = " "; | ||||
|             console.log(character.goldgear); | ||||
|             for(let i = 0; i < character.goldgear; i++) { | ||||
|                 goldGearString += "<:goldgear:1308166365550481499>"; | ||||
|             }; | ||||
|             let purplegearString =" "; | ||||
|             console.log(character.purplegear); | ||||
|             for(let i = 0; i< character.purplegear; i++) { | ||||
|                 purplegearString += "<:purplegear:1308166392864051250>"; | ||||
|             }; | ||||
|          | ||||
|             const employeeCard = new EmbedBuilder() | ||||
|                 .setColor(0x388E3C) | ||||
|                 .setTitle(employeeName) | ||||
|                 .setDescription(character.rank) | ||||
|                 .addFields( | ||||
|                     {name:`Copper`, value: copperGearString, inline: true}, | ||||
|                     {name:'Silver', value: silverGearString, inline: true}, | ||||
|                     {name:'Purple', value: purplegearString, inline: true}, | ||||
|                 ) | ||||
|                 .addFields( | ||||
|                     {name:'Gold', value: goldGearString, inline: true}, | ||||
|                 ) | ||||
|                 .setFooter({text: 'ID Issued by Gearbeast Inc. Do not copy.'}); | ||||
|             resolve(employeeCard);    | ||||
|         }); | ||||
|     }) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function BuildScoreboard(rank) { | ||||
|     return new Promise((resolve) => { | ||||
| @ -139,7 +214,7 @@ function BuildScoreboard(rank) { | ||||
|             if(character.purplegear > 0) {purplegearString += "\n## "}; | ||||
|             for(let i = 0; i< character.purplegear; i++) { | ||||
|                 purplegearString += "<:purplegear:1308166392864051250>"; | ||||
|             } | ||||
|             }; | ||||
| 
 | ||||
|             messageContent += `**${character.name}** ${goldGearString} ${purplegearString} ${silverGearString} ${copperGearString} \n`; | ||||
|         }, () => {resolve(messageContent); }); | ||||
| @ -147,4 +222,8 @@ function BuildScoreboard(rank) { | ||||
|      | ||||
| }; | ||||
| 
 | ||||
| function intToGearString(coppergearInt, silvergearInt, goldgearInt, copperswogInt, silverswogInt, goldswogInt) { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| client.login(process.env.DISCORD_TOKEN); | ||||
| @ -10,6 +10,18 @@ const commands = [ | ||||
|         name: 'croak', | ||||
|         description: 'Makes Sir Hornsworth Croak!', | ||||
|     }, | ||||
|     { | ||||
|         name: 'companyid', | ||||
|         description: 'Request a Comapny ID of a specific employee', | ||||
|         options: [ | ||||
|             { | ||||
|                 name: 'employee', | ||||
|                 description: 'Who do you want the id of?', | ||||
|                 type: ApplicationCommandOptionType.String, | ||||
|                 required: true, | ||||
|             } | ||||
|         ] | ||||
|     }, | ||||
|     { | ||||
|         name: 'gear', | ||||
|         description: 'Add or remove a gear to an employee', | ||||
| @ -39,7 +51,7 @@ const commands = [ | ||||
|         description: 'Hire or Fire an employee', | ||||
|         options: [ | ||||
|             { | ||||
|                 name: 'hire-fire-promote', | ||||
|                 name: 'hire-fire', | ||||
|                 description: 'Hiring or Firing?', | ||||
|                 type: ApplicationCommandOptionType.String, | ||||
|                 required: true, | ||||
| @ -70,6 +82,23 @@ const commands = [ | ||||
|             } | ||||
|         ] | ||||
|     }, | ||||
|     { | ||||
|         name: 'rename', | ||||
|         description: 'Rename an Employee', | ||||
|         options: [ | ||||
|             { | ||||
|                 name: 'old-name', | ||||
|                 description: 'The old name of the employee', | ||||
|                 type: ApplicationCommandOptionType.String, | ||||
|                 required: true, | ||||
|             }, | ||||
|             { | ||||
|                 name: 'new-name', | ||||
|                 description: 'The new name of the employee', | ||||
|                 type: ApplicationCommandOptionType.String, | ||||
|             } | ||||
|         ] | ||||
|     }, | ||||
|     { | ||||
|         name: 'scoreboard', | ||||
|         description: 'Related to the scoreboard', | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user