44 * @returns The OverwritesPermission
55 */
66function fetchOverwritesPermission ( GuildChannel ) {
7- var permOverwrites = [ ] ;
7+ let permOverwrites = [ ] ;
88 GuildChannel . permissionOverwrites . filter ( ( p ) => p . type === "role" ) . forEach ( ( perm ) => { // For each overwrites permission
9- var role = GuildChannel . guild . roles . get ( perm . id ) ;
9+ let role = GuildChannel . guild . roles . get ( perm . id ) ;
1010 permOverwrites . push ( {
1111 roleName : role . name ,
1212 perm : permOverwrites . perm ,
@@ -65,7 +65,35 @@ async function fetchChannelData(GuildChannel){
6565 } ) ;
6666}
6767
68+ /**
69+ * Delete all roles, all channels, all emojis, etc... of a guild
70+ * @param {object } guild
71+ */
72+ async function clearGuild ( guild ) {
73+ //let roleThatGivesMeAdminPermissions = guild.me.roles.filter((r) => r.permissions.has("ADMINISTRATOR"));
74+ guild . roles . filter ( ( role ) => role . editable && role . id !== guild . defaultRole . id ) . forEach ( ( role ) => {
75+ role . delete ( ) . catch ( O_o => { } ) ;
76+ } ) ;
77+ guild . channels . forEach ( ( channel ) => {
78+ channel . delete ( ) . catch ( O_o => { } ) ;
79+ } ) ;
80+ guild . emojis . forEach ( ( emoji ) => {
81+ emoji . delete ( ) . catch ( O_o => { } ) ;
82+ } ) ;
83+ let webhooks = await guild . fetchWebhooks ( ) ;
84+ webhooks . forEach ( ( webhook ) => {
85+ webhook . delete ( ) . catch ( O_o => { } )
86+ } ) ;
87+ let bans = await guild . fetchBans ( ) ;
88+ bans . forEach ( ( ban ) => {
89+ guild . members . unban ( ban . user ) . catch ( O_o => { } ) ;
90+ } ) ;
91+ return ;
92+ }
93+
94+
6895module . exports = {
6996 fetchOverwritesPermission : fetchOverwritesPermission ,
70- fetchChannelData : fetchChannelData
71- } ;
97+ fetchChannelData : fetchChannelData ,
98+ clearGuild : clearGuild
99+ }
0 commit comments