feat(events:role): added guildRoleCreate, guildRoleDelete, guildRoleUpdate
This commit is contained in:
		
							parent
							
								
									44303dacb1
								
							
						
					
					
						commit
						5bb87ef1ba
					
				
					 5 changed files with 74 additions and 3 deletions
				
			
		
							
								
								
									
										16
									
								
								src/gateway/handlers/guildRoleCreate.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/gateway/handlers/guildRoleCreate.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
|  | import { Guild } from '../../structures/guild.ts' | ||||||
|  | import { GuildRoleCreatePayload } from "../../types/gateway.ts" | ||||||
|  | 
 | ||||||
|  | export const guildRoleCreate: GatewayEventHandler = async ( | ||||||
|  |   gateway: Gateway, | ||||||
|  |   d: GuildRoleCreatePayload | ||||||
|  | ) => { | ||||||
|  |   const guild: Guild | undefined = await gateway.client.guilds.get(d.guild_id) | ||||||
|  |   // Weird case, shouldn't happen
 | ||||||
|  |   if (guild === undefined) return | ||||||
|  | 
 | ||||||
|  |   await guild.roles.set(d.role.id, d.role) | ||||||
|  |   const role = await guild.roles.get(d.role.id) | ||||||
|  |   gateway.client.emit('guildRoleCreate', role) | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								src/gateway/handlers/guildRoleDelete.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/gateway/handlers/guildRoleDelete.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
|  | import { Guild } from '../../structures/guild.ts' | ||||||
|  | import { GuildRoleDeletePayload } from "../../types/gateway.ts" | ||||||
|  | 
 | ||||||
|  | export const guildRoleDelete: GatewayEventHandler = async ( | ||||||
|  |   gateway: Gateway, | ||||||
|  |   d: GuildRoleDeletePayload | ||||||
|  | ) => { | ||||||
|  |   const guild: Guild | undefined = await gateway.client.guilds.get(d.guild_id) | ||||||
|  |   // Weird case, shouldn't happen
 | ||||||
|  |   if (guild === undefined) return | ||||||
|  | 
 | ||||||
|  |   const role = await guild.roles.get(d.role_id) | ||||||
|  |   // Shouldn't happen either
 | ||||||
|  |   if(role === undefined) return | ||||||
|  | 
 | ||||||
|  |   gateway.client.emit('guildRoleDelete', role) | ||||||
|  | } | ||||||
							
								
								
									
										21
									
								
								src/gateway/handlers/guildRoleUpdate.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/gateway/handlers/guildRoleUpdate.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
|  | import { Guild } from '../../structures/guild.ts' | ||||||
|  | import { GuildRoleUpdatePayload } from "../../types/gateway.ts" | ||||||
|  | 
 | ||||||
|  | export const guildRoleUpdate: GatewayEventHandler = async ( | ||||||
|  |   gateway: Gateway, | ||||||
|  |   d: GuildRoleUpdatePayload | ||||||
|  | ) => { | ||||||
|  |   const guild: Guild | undefined = await gateway.client.guilds.get(d.guild_id) | ||||||
|  |   // Weird case, shouldn't happen
 | ||||||
|  |   if (guild === undefined) return | ||||||
|  | 
 | ||||||
|  |   const role = await guild.roles.get(d.role.id) | ||||||
|  |   await guild.roles.set(d.role.id, d.role) | ||||||
|  |   const newRole = await guild.roles.get(d.role.id) | ||||||
|  | 
 | ||||||
|  |   // Shouldn't happen either
 | ||||||
|  |   if(role === undefined) return gateway.client.emit('guildRoleUpdateUncached', newRole) | ||||||
|  | 
 | ||||||
|  |   gateway.client.emit('guildRoleUpdate', role, newRole) | ||||||
|  | } | ||||||
|  | @ -19,6 +19,9 @@ import { guildEmojiUpdate } from "./guildEmojiUpdate.ts" | ||||||
| import { guildMemberAdd } from "./guildMemberAdd.ts" | import { guildMemberAdd } from "./guildMemberAdd.ts" | ||||||
| import { guildMemberRemove } from "./guildMemberRemove.ts" | import { guildMemberRemove } from "./guildMemberRemove.ts" | ||||||
| import { guildMemberUpdate } from "./guildMemberUpdate.ts" | import { guildMemberUpdate } from "./guildMemberUpdate.ts" | ||||||
|  | import { guildRoleCreate } from "./guildRoleCreate.ts" | ||||||
|  | import { guildRoleDelete } from "./guildRoleDelete.ts" | ||||||
|  | import { guildRoleUpdate } from "./guildRoleUpdate.ts" | ||||||
| 
 | 
 | ||||||
| export const gatewayHandlers: { | export const gatewayHandlers: { | ||||||
|   [eventCode in GatewayEvents]: GatewayEventHandler | undefined |   [eventCode in GatewayEvents]: GatewayEventHandler | undefined | ||||||
|  | @ -41,9 +44,9 @@ export const gatewayHandlers: { | ||||||
|   GUILD_MEMBER_REMOVE: guildMemberRemove, |   GUILD_MEMBER_REMOVE: guildMemberRemove, | ||||||
|   GUILD_MEMBER_UPDATE: guildMemberUpdate, |   GUILD_MEMBER_UPDATE: guildMemberUpdate, | ||||||
|   GUILD_MEMBERS_CHUNK: undefined, |   GUILD_MEMBERS_CHUNK: undefined, | ||||||
|   GUILD_ROLE_CREATE: undefined, |   GUILD_ROLE_CREATE: guildRoleCreate, | ||||||
|   GUILD_ROLE_UPDATE: undefined, |   GUILD_ROLE_UPDATE: guildRoleUpdate, | ||||||
|   GUILD_ROLE_DELETE: undefined, |   GUILD_ROLE_DELETE: guildRoleDelete, | ||||||
|   INVITE_CREATE: undefined, |   INVITE_CREATE: undefined, | ||||||
|   INVITE_DELETE: undefined, |   INVITE_DELETE: undefined, | ||||||
|   MESSAGE_CREATE: messageCreate, |   MESSAGE_CREATE: messageCreate, | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ import { CommandContext } from "../models/command.ts" | ||||||
| import { Extension } from "../models/extensions.ts" | import { Extension } from "../models/extensions.ts" | ||||||
| import { Member } from "../structures/member.ts" | import { Member } from "../structures/member.ts" | ||||||
| import { Message } from "../structures/message.ts" | import { Message } from "../structures/message.ts" | ||||||
|  | import { Role } from "../structures/role.ts" | ||||||
| import { MessageDeletePayload } from "../types/gateway.ts" | import { MessageDeletePayload } from "../types/gateway.ts" | ||||||
| import { TOKEN } from './config.ts' | import { TOKEN } from './config.ts' | ||||||
| 
 | 
 | ||||||
|  | @ -45,6 +46,18 @@ client.on('guildMemberRemove', (member: Member) => { | ||||||
|   console.log(`Member Leave: ${member.user.tag}`) |   console.log(`Member Leave: ${member.user.tag}`) | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
|  | client.on('guildRoleCreate', (role: Role) => { | ||||||
|  |   console.log(`Role Create: ${role.name}`) | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | client.on('guildRoleDelete', (role: Role) => { | ||||||
|  |   console.log(`Role Delete: ${role.name}`) | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | client.on('guildRoleUpdate', (role: Role, after: Role) => { | ||||||
|  |   console.log(`Role Update: ${role.name}, ${after.name}`) | ||||||
|  | }) | ||||||
|  | 
 | ||||||
| // client.on('messageCreate', msg => console.log(`${msg.author.tag}: ${msg.content}`))
 | // client.on('messageCreate', msg => console.log(`${msg.author.tag}: ${msg.content}`))
 | ||||||
| 
 | 
 | ||||||
| client.on("commandError", console.error) | client.on("commandError", console.error) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue