Update StaffTag.plugin.js

This commit is contained in:
Mirco Wittrien 2021-07-29 22:02:31 +02:00
parent 9defa3d38e
commit b012f45edd
1 changed files with 125 additions and 60 deletions

View File

@ -2,7 +2,7 @@
* @name StaffTag
* @author DevilBro
* @authorId 278543574059057154
* @version 1.4.6
* @version 1.4.7
* @description Adds a Crown/Tag to Server Owners (or Admins/Management)
* @invite Jx3TjNS
* @donate https://www.paypal.me/MircoWittrien
@ -17,12 +17,13 @@ module.exports = (_ => {
"info": {
"name": "StaffTag",
"author": "DevilBro",
"version": "1.4.6",
"version": "1.4.7",
"description": "Adds a Crown/Tag to Server Owners (or Admins/Management)"
},
"changeLog": {
"fixed": {
"User Popout": "Fixing Stuff for the User Popout Update, thanks Discord"
"improved": {
"Thread Creators": "Added a dark gray crown for Thread Creators (they no longe appear as Server Owners)",
"Server Owner/Group Owner": "Split the settings for Server and Group Owners, you can now change/disable them separately"
}
}
};
@ -77,7 +78,9 @@ module.exports = (_ => {
NONE: 0,
MANAGEMENT: 1,
ADMIN: 2,
OWNER: 3
THREAD_CREATOR: 3,
GROUP_OWNER: 4,
OWNER: 5
};
return class StaffTag extends Plugin {
@ -94,31 +97,35 @@ module.exports = (_ => {
this.defaults = {
general: {
useCrown: {value: true, description: "Use the Crown Icon instead of the Bot Tag Style"},
useRoleColor: {value: true, description: "Use the Role Color instead of the default Blurple"},
useBlackFont: {value: false, description: "Use black Font instead of darkening the Role Color on bright Colors"},
ignoreBots: {value: false, description: "Don't add the Owner/Admin/Management Tag for Bots"}
useCrown: {value: true, description: "Use the Crown Icon instead of the Bot Tag Style"},
useRoleColor: {value: true, description: "Use the Role Color instead of the default Blurple"},
useBlackFont: {value: false, description: "Use black Font instead of darkening the Role Color on bright Colors"},
ignoreBots: {value: false, description: "Don't add the Owner/Admin/Management Tag for Bots"}
},
tagTypes: {
owners: {value: true, description: "Owner Tag (Server/Group Owner)"},
admins: {value: true, description: "Admin Tag (Admin Permissions)"},
managementG: {value: true, description: "Management Tag (Server Management)"},
managementC: {value: true, description: "Management Tag (Channel Management)"},
managementR: {value: true, description: "Management Tag (Role Management)"},
managementU: {value: true, description: "Management Tag (User Management 'Kick/Ban')"},
managementM: {value: true, description: "Management Tag (Message Management)"}
owners: {value: true, description: "Server Owner Tag"},
groupOwners: {value: true, description: "Group Owner Tag"},
threadCreators: {value: true, description: "Thread Creator Tag"},
admins: {value: true, description: "Admin Tag (Admin Permissions)"},
managementG: {value: true, description: "Management Tag (Server Management)"},
managementC: {value: true, description: "Management Tag (Channel Management)"},
managementR: {value: true, description: "Management Tag (Role Management)"},
managementU: {value: true, description: "Management Tag (User Management 'Kick/Ban')"},
managementM: {value: true, description: "Management Tag (Message Management)"}
},
tagPlaces: {
chat: {value: true, description: "Messages"},
memberList: {value: true, description: "Member List"},
voiceList: {value: true, description: "Voice User List"},
userPopout: {value: true, description: "User Popouts"},
userProfile: {value: true, description: "User Profile Modal"},
chat: {value: true, description: "Messages"},
memberList: {value: true, description: "Member List"},
voiceList: {value: true, description: "Voice User List"},
userPopout: {value: true, description: "User Popouts"},
userProfile: {value: true, description: "User Profile Modal"},
},
inputs: {
ownOwnerTagName: {value: "Owner", description: "Owner Tags"},
ownAdminTagName: {value: "Admin", description: "Admin Tags"},
ownManagementTagName: {value: "Management", description: "Management Tags"}
ownOwnerTagName: {value: "Owner", description: "Server Owner Tags"},
ownGroupOwnerTagName: {value: "Group Owner", description: "Group Owner Tags"},
ownThreadCreatorTagName: {value: "Creator", description: "Thread Creator Tags"},
ownAdminTagName: {value: "Admin", description: "Admin Tags"},
ownManagementTagName: {value: "Management", description: "Management Tags"}
}
};
@ -129,6 +136,9 @@ module.exports = (_ => {
${BDFDB.dotCN.memberownericon + BDFDB.dotCN._stafftagmanagementicon} {
color: #88540b;
}
${BDFDB.dotCN.memberownericon + BDFDB.dotCN._stafftagthreadcreatoricon} {
color: var(--text-muted);
}
${BDFDB.dotCNS.message + BDFDB.dotCN.memberownericon} {
top: 2px;
}
@ -138,13 +148,14 @@ module.exports = (_ => {
${BDFDB.dotCNS.userprofile + BDFDB.dotCN.memberownericon} {
top: 0px;
}
${BDFDB.dotCNS.messagerepliedmessage + BDFDB.dotCN.memberownericon} {
top: 0px;
${BDFDB.dotCNS.messagecompact + BDFDB.dotCN.memberownericon} {
top: 1px;
margin-left: 0;
margin-right: 4px;
}
${BDFDB.dotCNS.messagecompact + BDFDB.dotCN.memberownericon} {
top: 1px;
${BDFDB.dotCNS.messagerepliedmessage + BDFDB.dotCN.memberownericon},
${BDFDB.dotCNS.messagethreadaccessory + BDFDB.dotCN.memberownericon} {
top: 0px;
margin-left: 0;
margin-right: 4px;
}
@ -319,9 +330,17 @@ module.exports = (_ => {
let label, className;
switch (userType) {
case userTypes.OWNER:
label = channel && channel.isGroupDM() ? BDFDB.LanguageUtils.LanguageStrings.GROUP_OWNER : BDFDB.LanguageUtils.LanguageStrings.GUILD_OWNER;
label = BDFDB.LanguageUtils.LanguageStrings.GUILD_OWNER;
className = BDFDB.disCN._stafftagownericon;
break;
case userTypes.GROUP_OWNER:
label = BDFDB.LanguageUtils.LanguageStrings.GROUP_OWNER;
className = BDFDB.disCN._stafftaggroupownericon;
break;
case userTypes.THREAD_CREATOR:
label = this.labels.creator.replace("{{var0}}", BDFDB.LanguageUtils.LanguageStrings.THREAD);
className = BDFDB.disCN._stafftagthreadcreatoricon;
break;
case userTypes.ADMIN:
label = BDFDB.LanguageUtils.LanguageStrings.ADMINISTRATOR;
className = BDFDB.disCN._stafftagadminicon;
@ -346,6 +365,12 @@ module.exports = (_ => {
case userTypes.OWNER:
input = "ownOwnerTagName";
break;
case userTypes.GROUP_OWNER:
input = "ownGroupOwnerTagName";
break;
case userTypes.THREAD_CREATOR:
input = "ownThreadCreatorTagName";
break;
case userTypes.ADMIN:
input = "ownAdminTagName";
break;
@ -387,11 +412,14 @@ module.exports = (_ => {
getUserType (user, channelId) {
if (!user || this.settings.general.ignoreBots && user.bot) return userTypes.NONE;
let channel = BDFDB.LibraryModules.ChannelStore.getChannel(channelId || BDFDB.LibraryModules.LastChannelStore.getChannelId());
const channel = BDFDB.LibraryModules.ChannelStore.getChannel(channelId || BDFDB.LibraryModules.LastChannelStore.getChannelId());
if (!channel) return userTypes.NONE;
let guild = BDFDB.LibraryModules.GuildStore.getGuild(channel.guild_id);
let isOwner = channel.ownerId == user.id || guild && guild.ownerId == user.id;
if (this.settings.tagTypes.owners && isOwner) return userTypes.OWNER;
const guild = BDFDB.LibraryModules.GuildStore.getGuild(channel.guild_id);
const isOwner = channel.ownerId == user.id || guild && guild.ownerId == user.id, isGroupDM = channel.isGroupDM(), isThread = BDFDB.ChannelUtils.isThread(channel);
if (this.settings.tagTypes.owners && isOwner && !isGroupDM && !isThread) return userTypes.OWNER;
else if (this.settings.tagTypes.groupOwners && isOwner && isGroupDM) return userTypes.GROUP_OWNER;
else if (this.settings.tagTypes.threadCreators && isOwner && isThread) return userTypes.THREAD_CREATOR;
else if (this.settings.tagTypes.admins && BDFDB.UserUtils.can("ADMINISTRATOR", user.id)) return userTypes.ADMIN;
else if (this.settings.tagTypes.managementG && BDFDB.UserUtils.can("MANAGE_GUILD", user.id) || this.settings.tagTypes.managementC && BDFDB.UserUtils.can("MANAGE_CHANNELS", user.id) || this.settings.tagTypes.managementR && BDFDB.UserUtils.can("MANAGE_ROLES", user.id) || this.settings.tagTypes.managementU && (BDFDB.UserUtils.can("BAN_MEMBERS", user.id) || BDFDB.UserUtils.can("KICK_MEMBERS", user.id)) || this.settings.tagTypes.managementM && BDFDB.UserUtils.can("MANAGE_MESSAGES", user.id)) return userTypes.MANAGEMENT;
return userTypes.NONE;
@ -401,111 +429,148 @@ module.exports = (_ => {
switch (BDFDB.LanguageUtils.getLanguage().id) {
case "bg": // Bulgarian
return {
management: "Управление"
management: "Управление",
creator: "{{var0}} създател"
};
case "cs": // Czech
return {
management: "Řízení",
creator: "{{var0}} autor"
};
case "da": // Danish
return {
management: "Ledelse"
management: "Ledelse",
creator: "{{var0}} skaber"
};
case "de": // German
return {
management: "Verwaltung"
management: "Verwaltung",
creator: "{{var0}}ersteller"
};
case "el": // Greek
return {
management: "Διαχείριση"
management: "Διαχείριση",
creator: "{{var0}} δημιουργός"
};
case "es": // Spanish
return {
management: "Administración"
management: "Administración",
creator: "{{var0}} creador"
};
case "fi": // Finnish
return {
management: "Johto"
management: "Johto",
creator: "{{var0}} luoja"
};
case "fr": // French
return {
management: "La gestion"
management: "La gestion",
creator: "{{var0}}créateur"
};
case "hi": // Hindi
return {
management: "प्रबंध",
creator: "{{var0}}निर्माता"
};
case "hr": // Croatian
return {
management: "Upravljanje"
management: "Upravljanje",
creator: "{{var0}} kreator"
};
case "hu": // Hungarian
return {
management: "Menedzsment"
management: "Menedzsment",
creator: "{{var0}} alkotója"
};
case "it": // Italian
return {
management: "Gestione"
management: "Gestione",
creator: "{{var0}}creatore"
};
case "ja": // Japanese
return {
management: "管理"
management: "管理",
creator: "{{var0}}作成者"
};
case "ko": // Korean
return {
management: "조치"
management: "조치",
creator: "{{var0}}창조자"
};
case "lt": // Lithuanian
return {
management: "Valdymas"
management: "Valdymas",
creator: "{{var0}} kūrėjas"
};
case "nl": // Dutch
return {
management: "Beheer"
management: "Beheer",
creator: "{{var0}}maker"
};
case "no": // Norwegian
return {
management: "Ledelse"
management: "Ledelse",
creator: "{{var0}} skaperen"
};
case "pl": // Polish
return {
management: "Zarządzanie"
management: "Zarządzanie",
creator: "{{var0}}twórca"
};
case "pt-BR": // Portuguese (Brazil)
return {
management: "Gestão"
management: "Gestão",
creator: "{{var0}} criador"
};
case "ro": // Romanian
return {
management: "Administrare"
management: "Administrare",
creator: "{{var0}} creator"
};
case "ru": // Russian
return {
management: "Управление"
management: "Управление",
creator: "{{var0}} создатель"
};
case "sv": // Swedish
return {
management: "Förvaltning"
management: "Förvaltning",
creator: "{{var0}} skapare"
};
case "th": // Thai
return {
management: "การจัดการ"
management: "การจัดการ",
creator: "{{var0}}ผู้สร้าง"
};
case "tr": // Turkish
return {
management: "Yönetim"
management: "Yönetim",
creator: "{{var0}}yaratıcı"
};
case "uk": // Ukrainian
return {
management: "Управління"
management: "Управління",
creator: "{{var0}} творець"
};
case "vi": // Vietnamese
return {
management: "Sự quản lý"
management: "Sự quản lý",
creator: "Người tạo {{var0}}"
};
case "zh-CN": // Chinese (China)
return {
management: "管理"
management: "管理",
creator: "{{var0}}创建者"
};
case "zh-TW": // Chinese (Taiwan)
return {
management: "管理"
management: "管理",
creator: "{{var0}}創建者"
};
default: // English
return {
management: "Management"
management: "Management",
creator: "{{var0}} Creator"
};
}
}