BetterDiscordAddons/Plugins/EditServers/EditServers.plugin.js

1072 lines
49 KiB
JavaScript
Raw Normal View History

2019-09-20 22:32:52 +02:00
//META{"name":"EditServers","website":"https://github.com/mwittrien/BetterDiscordAddons/tree/master/Plugins/EditServers","source":"https://raw.githubusercontent.com/mwittrien/BetterDiscordAddons/master/Plugins/EditServers/EditServers.plugin.js"}*//
2018-10-11 10:21:26 +02:00
class EditServers {
2019-01-17 23:48:29 +01:00
getName () {return "EditServers";}
2019-12-30 11:34:44 +01:00
getVersion () {return "2.1.6";}
2019-12-01 18:25:43 +01:00
2019-01-17 23:48:29 +01:00
getAuthor () {return "DevilBro";}
getDescription () {return "Allows you to change the icon, name and color of servers.";}
2019-01-26 22:45:19 +01:00
2019-09-04 12:34:02 +02:00
constructor () {
2019-06-06 19:08:09 +02:00
this.changelog = {
2019-12-30 11:34:44 +01:00
"improved":[["Recent Mentions","Servernames are now changed in the recent mentions popout"],["New Library Structure & React","Restructured my Library and switched to React rendering instead of DOM manipulation"]]
2019-09-04 12:34:02 +02:00
};
2019-11-14 17:56:26 +01:00
this.patchedModules = {
2019-12-01 18:25:43 +01:00
before: {
Guild: "render",
GuildIconWrapper: "render",
MutualGuilds: "render",
FriendRow: "render",
QuickSwitcher: "render",
QuickSwitchChannelResult: "render",
GuildSidebar: "render",
GuildHeader: "render"
},
2019-11-14 17:56:26 +01:00
after: {
2019-12-30 11:34:44 +01:00
MessagesPopout: "render",
2019-12-01 18:25:43 +01:00
Guild: "render",
BlobMask: "render",
GuildIconWrapper: "render",
GuildIcon: "render",
GuildHeader: "render"
2019-11-14 17:56:26 +01:00
}
};
2019-09-04 12:34:02 +02:00
}
2018-10-11 10:21:26 +02:00
2019-09-04 12:34:02 +02:00
initConstructor () {
2019-02-13 11:15:00 +01:00
this.defaults = {
settings: {
2019-02-13 19:57:35 +01:00
addOriginalTooltip: {value:true, inner:false, description:"Hovering over a changed Server Header shows the original Name as Tooltip"},
changeInGuildList: {value:true, inner:true, description:"Server List"},
2019-12-30 11:34:44 +01:00
changeInGuildHeader: {value:true, inner:true, description:"Server Header"},
2019-02-13 19:57:35 +01:00
changeInMutualGuilds: {value:true, inner:true, description:"Mutual Servers"},
2019-12-30 11:34:44 +01:00
changeInRecentMentions: {value:true, inner:true, description:"Recent Mentions Popout"},
changeInQuickSwitcher: {value:true, inner:true, description:"Quick Switcher"}
2019-02-13 11:15:00 +01:00
}
};
2018-10-11 10:21:26 +02:00
}
2019-01-26 22:45:19 +01:00
2018-10-11 10:21:26 +02:00
getSettingsPanel () {
2019-01-22 11:28:32 +01:00
if (!global.BDFDB || typeof BDFDB != "object" || !BDFDB.loaded || !this.started) return;
2019-10-22 23:04:35 +02:00
let settings = BDFDB.DataUtils.get(this, "settings");
2019-12-18 16:45:08 +01:00
let settingspanel, settingsitems = [], inneritems = [];
2019-10-17 11:36:34 +02:00
2019-11-01 22:47:23 +01:00
for (let key in settings) (!this.defaults.settings[key].inner ? settingsitems : inneritems).push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
2019-10-17 11:36:34 +02:00
className: BDFDB.disCN.marginbottom8,
2019-11-01 22:47:23 +01:00
type: "Switch",
2019-10-17 11:36:34 +02:00
plugin: this,
keys: ["settings", key],
label: this.defaults.settings[key].description,
value: settings[key]
}));
2019-10-22 18:55:25 +02:00
settingsitems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelInner, {
2019-10-17 18:54:51 +02:00
title: "Change Servers in:",
2019-11-05 08:56:21 +01:00
first: settingsitems.length == 0,
2019-10-17 18:54:51 +02:00
children: inneritems
2019-10-17 11:36:34 +02:00
}));
2019-10-22 18:55:25 +02:00
settingsitems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
2019-10-21 12:11:46 +02:00
type: "Button",
2019-10-17 11:36:34 +02:00
className: BDFDB.disCN.marginbottom8,
color: BDFDB.LibraryComponents.Button.Colors.RED,
label: "Reset all Servers",
onClick: _ => {
2019-12-01 18:25:43 +01:00
BDFDB.ModalUtils.confirm(this, "Are you sure you want to reset all Servers?", () => {
2019-10-22 19:49:57 +02:00
BDFDB.DataUtils.remove(this, "servers");
2019-12-01 18:25:43 +01:00
BDFDB.ModuleUtils.forceAllUpdates(this);;
2019-10-17 11:36:34 +02:00
});
},
2019-10-19 11:41:39 +02:00
children: BDFDB.LanguageUtils.LanguageStrings.RESET
2019-10-17 11:36:34 +02:00
}));
2019-12-18 16:45:08 +01:00
return settingspanel = BDFDB.PluginUtils.createSettingsPanel(this, settingsitems);
2018-10-11 10:21:26 +02:00
}
//legacy
load () {}
start () {
2019-02-04 09:13:15 +01:00
if (!global.BDFDB) global.BDFDB = {myPlugins:{}};
if (global.BDFDB && global.BDFDB.myPlugins && typeof global.BDFDB.myPlugins == "object") global.BDFDB.myPlugins[this.getName()] = this;
2019-05-26 13:55:26 +02:00
var libraryScript = document.querySelector('head script#BDFDBLibraryScript');
if (!libraryScript || (performance.now() - libraryScript.getAttribute("date")) > 600000) {
2018-10-11 10:21:26 +02:00
if (libraryScript) libraryScript.remove();
libraryScript = document.createElement("script");
2019-05-26 13:55:26 +02:00
libraryScript.setAttribute("id", "BDFDBLibraryScript");
2018-10-11 10:21:26 +02:00
libraryScript.setAttribute("type", "text/javascript");
2019-10-18 10:56:41 +02:00
libraryScript.setAttribute("src", "https://mwittrien.github.io/BetterDiscordAddons/Plugins/BDFDB.min.js");
2019-01-17 23:48:29 +01:00
libraryScript.setAttribute("date", performance.now());
2019-05-26 13:55:26 +02:00
libraryScript.addEventListener("load", () => {this.initialize();});
2018-10-11 10:21:26 +02:00
document.head.appendChild(libraryScript);
2019-05-26 13:55:26 +02:00
}
else if (global.BDFDB && typeof BDFDB === "object" && BDFDB.loaded) this.initialize();
2019-11-01 10:27:07 +01:00
this.startTimeout = setTimeout(() => {
try {return this.initialize();}
catch (err) {console.error(`%c[${this.getName()}]%c`, "color: #3a71c1; font-weight: 700;", "", "Fatal Error: Could not initiate plugin! " + err);}
}, 30000);
2018-10-11 10:21:26 +02:00
}
initialize () {
2019-01-17 23:48:29 +01:00
if (global.BDFDB && typeof BDFDB === "object" && BDFDB.loaded) {
2019-01-22 11:05:54 +01:00
if (this.started) return;
2019-10-22 18:55:25 +02:00
BDFDB.PluginUtils.init(this);
2019-01-26 22:45:19 +01:00
2019-12-01 18:25:43 +01:00
BDFDB.ModuleUtils.patch(this, BDFDB.LibraryModules.IconUtils, "getGuildBannerURL", {instead:e => {
2019-09-11 12:14:43 +02:00
let guild = BDFDB.LibraryModules.GuildStore.getGuild(e.methodArguments[0].id);
2019-03-14 14:06:14 +01:00
if (guild) {
if (e.methodArguments[0].id == "410787888507256842") return guild.banner;
2019-10-22 20:16:05 +02:00
let data = BDFDB.DataUtils.load(this, "servers", guild.id);
2019-03-14 14:06:14 +01:00
if (data && data.banner && !data.removeBanner) return data.banner;
}
return e.callOriginalMethod();
}});
2019-12-01 18:25:43 +01:00
BDFDB.ModuleUtils.patch(this, BDFDB.LibraryComponents.GuildComponents.Guild.prototype, "render", {
before: e => {this.processGuild({instance:e.thisObject, returnvalue:e.returnValue, methodname:"render"});},
after: e => {this.processGuild({instance:e.thisObject, returnvalue:e.returnValue, methodname:"render"});}
});
BDFDB.ModuleUtils.patch(this, BDFDB.LibraryComponents.Connectors.Link.prototype, "render", {
after: e => {
if (e.thisObject.props.className && e.thisObject.props.className.indexOf(BDFDB.disCN.guildiconwrapper) > -1) this.processGuildAcronym({instance:e.thisObject, returnvalue:e.returnValue, methodname:"render"});
}
});
2019-10-17 11:36:34 +02:00
2019-12-01 18:25:43 +01:00
BDFDB.ModuleUtils.forceAllUpdates(this);;
2018-10-11 10:21:26 +02:00
}
2019-11-01 10:14:50 +01:00
else console.error(`%c[${this.getName()}]%c`, "color: #3a71c1; font-weight: 700;", "", "Fatal Error: Could not load BD functions!");
2018-10-11 10:21:26 +02:00
}
stop () {
2019-01-17 23:48:29 +01:00
if (global.BDFDB && typeof BDFDB === "object" && BDFDB.loaded) {
2019-10-22 11:37:23 +02:00
this.stopping = true;
2019-10-22 19:49:57 +02:00
let data = BDFDB.DataUtils.load(this, "servers");
BDFDB.DataUtils.remove(this, "servers");
2019-12-01 18:25:43 +01:00
try {BDFDB.ModuleUtils.forceAllUpdates(this);;} catch (err) {}
2019-10-22 19:49:57 +02:00
BDFDB.DataUtils.save(data, this, "servers");
2019-09-04 12:34:02 +02:00
2019-10-22 18:55:25 +02:00
for (let guildobj of BDFDB.GuildUtils.getAll()) if (guildobj.instance) {
2019-05-20 13:50:57 +02:00
delete guildobj.instance.props.guild.EditServersCachedBanner;
2019-03-14 14:06:14 +01:00
}
2019-01-26 22:45:19 +01:00
2019-10-22 18:55:25 +02:00
BDFDB.PluginUtils.clear(this);
2018-10-11 10:21:26 +02:00
}
}
// begin of own functions
2019-09-11 12:14:43 +02:00
2019-12-01 18:25:43 +01:00
onGuildContextMenu (e) {
if (e.instance.props.guild) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name:["FluxContainer(MessageDeveloperModeGroup)", "DeveloperModeGroup"]});
2019-12-05 09:10:14 +01:00
children.splice(index > -1 ? index : children.length, 0, BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ContextMenuItems.Group, {
2019-09-11 12:14:43 +02:00
children: [
2019-12-05 09:10:14 +01:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ContextMenuItems.Sub, {
2019-09-11 12:14:43 +02:00
label: this.labels.context_localserversettings_text,
2019-12-05 09:10:14 +01:00
render: [BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ContextMenuItems.Group, {
2019-09-11 12:14:43 +02:00
children: [
2019-12-05 09:10:14 +01:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ContextMenuItems.Item, {
2019-09-11 12:14:43 +02:00
label: this.labels.submenu_serversettings_text,
2019-11-21 11:38:04 +01:00
action: _ => {
2019-12-01 18:25:43 +01:00
BDFDB.ContextMenuUtils.close(e.instance);
2019-12-02 14:16:56 +01:00
this.showServerSettings(e.instance.props.guild.id);
2019-09-11 12:14:43 +02:00
}
}),
2019-12-05 09:10:14 +01:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ContextMenuItems.Item, {
2019-09-11 12:14:43 +02:00
label: this.labels.submenu_resetsettings_text,
2019-12-01 18:25:43 +01:00
disabled: !BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id),
2019-11-21 11:38:04 +01:00
action: _ => {
2019-12-01 18:25:43 +01:00
BDFDB.ContextMenuUtils.close(e.instance);
BDFDB.DataUtils.remove(this, "servers", e.instance.props.guild.id);
BDFDB.ModuleUtils.forceAllUpdates(this);;
2019-09-11 12:14:43 +02:00
}
})
]
})]
})
]
2019-12-01 18:25:43 +01:00
}));
2018-10-11 10:21:26 +02:00
}
}
2019-09-04 12:34:02 +02:00
2019-12-01 18:25:43 +01:00
processGuild (e) {
if (e.instance.props.guild && BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
2019-12-02 14:16:56 +01:00
e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
2019-12-01 18:25:43 +01:00
if (e.returnvalue) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
2019-12-02 13:07:58 +01:00
if (data && (data.color3 || data.color4)) {
2019-12-01 18:25:43 +01:00
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: ["GuildTooltip", "BDFDB_TooltipContainer"]});
if (index > -1) children[index] = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, {
tooltipConfig: {
type: "right",
guild: e.instance.props.guild,
list: true,
backgroundColor: data.color3,
fontColor: data.color4
},
children: children[index].props.children
});
}
}
2019-04-26 14:57:08 +02:00
}
}
2019-09-04 12:34:02 +02:00
2019-12-01 18:25:43 +01:00
processBlobMask (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: "NavItem"});
2019-12-02 14:16:56 +01:00
if (index > -1 && children[index].props.to && children[index].props.to.pathname) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild((children[index].props.to.pathname.split("/channels/")[1] || "").split("/")[0]);
if (guild) {
let data = BDFDB.DataUtils.load(this, "servers", guild.id);
if (data) {
if (data.shortName) children[index].props.name = data.shortName.split("").join(" ");
else if (data.name && data.ignoreCustomName) children[index].props.name = guild.name;
}
}
2019-12-01 18:25:43 +01:00
}
2019-04-26 14:57:08 +02:00
}
}
2019-12-01 18:25:43 +01:00
processGuildAcronym (e) {
if (typeof e.returnvalue.props.children == "function" && BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
2019-12-30 11:34:44 +01:00
let pathname = BDFDB.ReactUtils.getValue(e.instance, "props.to.pathname");
let data = pathname && BDFDB.DataUtils.load(this, "servers", (pathname.split("/channels/")[1] || "").split("/")[0]);
2019-12-01 18:25:43 +01:00
if (data) {
let renderChildren = e.returnvalue.props.children;
e.returnvalue.props.children = (...args) => {
let renderedChildren = renderChildren(...args);
let [children, index] = BDFDB.ReactUtils.findChildren(renderedChildren, {props:[["className", BDFDB.disCN.guildiconacronym]]});
if (index > -1) {
let fontGradient = BDFDB.ObjectUtils.is(data.color2);
children[index].props.style = Object.assign({}, children[index].props.style, {
background: BDFDB.ObjectUtils.is(data.color1) ? BDFDB.ColorUtils.createGradient(data.color1) : BDFDB.ColorUtils.convert(data.color1, "RGBA"),
color: !fontGradient && BDFDB.ColorUtils.convert(data.color2, "RGBA")
});
if (fontGradient) children[index].props.children = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextGradientElement, {
gradient: BDFDB.ColorUtils.createGradient(data.color2),
children: children[index].props.children
});
}
return renderedChildren;
};
}
}
}
processGuildIconWrapper (e) {
if (e.instance.props.guild) {
let settings = BDFDB.DataUtils.get(this, "settings");
2019-12-02 14:16:56 +01:00
if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.guildfolderguildicon) > -1) e.instance.props.guild = this.getGuildData(e.instance.props.guild.id, settings.changeInGuildList);
else if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.listavatar) > -1) e.instance.props.guild = this.getGuildData(e.instance.props.guild.id, settings.changeInMutualGuilds);
else e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
2019-12-01 18:25:43 +01:00
}
}
processGuildIcon (e) {
if (e.instance.props.guild && e.instance.props.style && (!e.instance.props.style.backgroundImage || e.instance.props.style.backgroundImage == "none")) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
if (data) {
let settings = BDFDB.DataUtils.get(this, "settings");
if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.guildfolderguildicon) > -1) this.changeGuildIcon(e, data, settings.changeInGuildList);
else if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.listavatar) > -1 || BDFDB.ReactUtils.findConstructor(e.instance, "MutualGuild", {up: true})) this.changeGuildIcon(e, data, settings.changeInMutualGuilds);
else this.changeGuildIcon(e, data);
}
2019-04-26 14:57:08 +02:00
}
}
2019-12-01 18:25:43 +01:00
processMutualGuilds (e) {
2019-12-02 14:16:56 +01:00
if (BDFDB.DataUtils.get(this, "settings", "changeInMutualGuilds")) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i].guild = this.getGuildData(e.instance.props.mutualGuilds[i].guild.id);
2019-12-01 18:25:43 +01:00
}
processFriendRow (e) {
2019-12-02 14:16:56 +01:00
if (BDFDB.DataUtils.get(this, "settings", "changeInMutualGuilds")) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i] = this.getGuildData(e.instance.props.mutualGuilds[i].id);
2019-12-01 18:25:43 +01:00
}
processQuickSwitcher (e) {
2019-12-02 14:16:56 +01:00
if (BDFDB.DataUtils.get(this, "settings", "changeInQuickSwitcher")) for (let i in e.instance.props.results) if (e.instance.props.results[i].type == "GUILD") e.instance.props.results[i].record = this.getGuildData(e.instance.props.results[i].record.id);
2019-12-01 18:25:43 +01:00
}
processQuickSwitchChannelResult (e) {
if (e.instance.props.channel && e.instance.props.channel.guild_id && BDFDB.DataUtils.get(this, "settings", "changeInQuickSwitcher")) {
2019-12-02 14:16:56 +01:00
e.instance.props.children.props.children = this.getGuildData(e.instance.props.channel.guild_id).name;
2019-12-01 18:25:43 +01:00
}
}
2019-12-30 11:34:44 +01:00
processMessagesPopout (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInRecentMentions")) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: "VerticalScroller"});
2019-12-30 11:43:07 +01:00
if (index > -1 && children[index].props.children && BDFDB.ArrayUtils.is(children[index].props.children[0])) for (let dividerAndMessage of children[index].props.children[0]) if (dividerAndMessage && dividerAndMessage[0] && dividerAndMessage[0].props.children && dividerAndMessage[0].props.children[1]) {
2019-12-30 11:34:44 +01:00
let channel = BDFDB.ReactUtils.getValue(dividerAndMessage[1], "props.children.props.children.props.channel");
if (channel && BDFDB.ChannelUtils.isTextChannel(channel)) dividerAndMessage[0].props.children[1].props.children = this.getGuildData(channel.guild_id).name;
}
}
}
2019-12-01 18:25:43 +01:00
processGuildSidebar (e) {
if (e.instance.props.guild) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
if (data && data.removeBanner) e.instance.props.guild = new BDFDB.DiscordObjects.Guild(Object.assign({}, e.instance.props.guild, {banner: null}));
}
}
processGuildHeader (e) {
if (e.instance.props.guild) {
let settings = BDFDB.DataUtils.get(this, "settings");
if (settings.changeInGuildHeader) {
2019-12-02 14:16:56 +01:00
e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
2019-12-01 18:25:43 +01:00
let oldName = (BDFDB.LibraryModules.GuildStore.getGuild(e.instance.props.guild.id) || {}).name;
if (e.returnvalue && settings.addOriginalTooltip && oldName != e.instance.props.guild.name) {
e.returnvalue.props.children[0] = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, {
text: oldName,
children: e.returnvalue.props.children[0],
tooltipConfig: {type: "right"}
});
}
2019-04-26 14:57:08 +02:00
}
}
2019-12-01 18:25:43 +01:00
}
2019-12-02 14:16:56 +01:00
getGuildData (guildId, change = true) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild(guildId);
2019-12-02 20:09:59 +01:00
if (!guild) return new BDFDB.DiscordObjects.Guild({});
2019-12-01 18:25:43 +01:00
let data = change && BDFDB.DataUtils.load(this, "servers", guild.id);
if (data) {
let newGuildObject = {}, nativeObject = new BDFDB.DiscordObjects.Guild(guild);
for (let key in nativeObject) newGuildObject[key] = nativeObject[key];
newGuildObject.name = data.name || nativeObject.name;
2019-12-02 14:16:56 +01:00
newGuildObject.acronym = data.shortName && data.shortName.replace(/\s/g, "") || BDFDB.LibraryModules.StringUtils.getAcronym(!data.ignoreCustomName && data.name || nativeObject.name);
2019-12-01 18:25:43 +01:00
if (data.removeIcon) {
newGuildObject.icon = null;
newGuildObject.getIconURL = _ => {return null;};
2019-04-26 14:57:08 +02:00
}
2019-12-01 18:25:43 +01:00
else if (data.url) newGuildObject.getIconURL = _ => {return data.url;};
if (data.removeBanner) newGuildObject.banner = null;
return newGuildObject;
2019-04-26 14:57:08 +02:00
}
2019-12-02 14:16:56 +01:00
return new BDFDB.DiscordObjects.Guild(guild);
2019-04-26 14:57:08 +02:00
}
2019-10-17 11:36:34 +02:00
2019-12-01 18:25:43 +01:00
changeGuildIcon (e, data, change = true) {
if (change) {
let fontGradient = BDFDB.ObjectUtils.is(data.color2);
e.returnvalue.props.style = Object.assign({}, e.returnvalue.props.style, {
background: BDFDB.ObjectUtils.is(data.color1) ? BDFDB.ColorUtils.createGradient(data.color1) : BDFDB.ColorUtils.convert(data.color1, "RGBA"),
color: !fontGradient && BDFDB.ColorUtils.convert(data.color2, "RGBA")
});
if (fontGradient) e.returnvalue.props.children[0] = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextGradientElement, {
gradient: BDFDB.ColorUtils.createGradient(data.color2),
children: e.returnvalue.props.children[0]
});
}
2019-10-17 11:36:34 +02:00
}
2019-09-04 12:34:02 +02:00
2019-12-02 14:16:56 +01:00
showServerSettings (guildId) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild(guildId);
if (!guild) return;
2019-12-01 18:25:43 +01:00
let data = BDFDB.DataUtils.load(this, "servers", guild.id) || {};
2019-10-17 11:36:34 +02:00
2019-12-02 14:16:56 +01:00
let currentIgnoreCustomNameState = data.ignoreCustomName;
2019-10-30 13:27:14 +01:00
BDFDB.ModalUtils.open(this, {
2019-10-17 11:36:34 +02:00
size: "MEDIUM",
header: this.labels.modal_header_text,
2019-12-01 18:25:43 +01:00
subheader: guild.name,
2019-10-17 11:36:34 +02:00
children: [
2019-10-24 10:48:18 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalTabContent, {
2019-10-17 11:36:34 +02:00
tab: this.labels.modal_tabheader1_text,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_guildname_text,
2019-12-02 14:16:56 +01:00
className: BDFDB.disCN.marginbottom8,
2019-12-30 11:34:44 +01:00
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextInput, {
inputClassName: "input-guildname",
value: data.name,
placeholder: guild.name,
autoFocus: true,
onChange: (value, instance) => {
if (!currentIgnoreCustomNameState) {
let acronyminputins = BDFDB.ReactUtils.findOwner(instance._reactInternalFiber.return.return.return, {props:[["inputId","GUILDACRONYM"]]});
if (acronyminputins) {
acronyminputins.props.placeholder = value && BDFDB.LibraryModules.StringUtils.getAcronym(value) || guild.acronym;
BDFDB.ReactUtils.forceUpdate(acronyminputins);
2019-12-02 14:16:56 +01:00
}
}
2019-12-30 11:34:44 +01:00
}
})
2019-10-17 11:36:34 +02:00
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_guildacronym_text,
2019-12-02 14:16:56 +01:00
className: BDFDB.disCN.marginbottom4,
2019-12-30 11:34:44 +01:00
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextInput, {
inputClassName: "input-guildacronym",
inputId: "GUILDACRONYM",
value: data.shortName,
placeholder: !data.ignoreCustomName && data.name && BDFDB.LibraryModules.StringUtils.getAcronym(data.name) || guild.acronym
})
2019-10-17 11:36:34 +02:00
}),
2019-12-02 14:16:56 +01:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
type: "Switch",
className: BDFDB.disCN.marginbottom8 + " input-ignorecustomname",
label: this.labels.modal_ignorecustomname_text,
value: data.ignoreCustomName,
onChange: (value, instance) => {
currentIgnoreCustomNameState = value;
let acronyminputins = BDFDB.ReactUtils.findOwner(instance._reactInternalFiber.return, {props:[["inputId","GUILDACRONYM"]]});
if (acronyminputins) {
acronyminputins.props.placeholder = !value && data.name && BDFDB.LibraryModules.StringUtils.getAcronym(data.name) || guild.acronym;
BDFDB.ReactUtils.forceUpdate(acronyminputins);
}
}
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_guildicon_text,
2019-12-02 14:16:56 +01:00
className: BDFDB.disCN.marginbottom4,
2019-12-30 11:34:44 +01:00
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextInput, {
inputClassName: "input-guildicon",
inputId: "GUILDICON",
success: !data.removeIcon && data.url,
value: data.url,
placeholder: BDFDB.GuildUtils.getIcon(guild.id),
disabled: data.removeIcon,
onChange: (value, instance) => {
this.checkUrl(value, instance);
}
})
2019-10-17 11:36:34 +02:00
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
2019-10-17 11:36:34 +02:00
type: "Switch",
2019-12-02 14:16:56 +01:00
className: BDFDB.disCN.marginbottom8 + " input-removeicon",
2019-10-17 11:36:34 +02:00
label: this.labels.modal_removeicon_text,
value: data.removeIcon,
onChange: (value, instance) => {
2019-10-21 12:59:51 +02:00
let iconinputins = BDFDB.ReactUtils.findOwner(instance._reactInternalFiber.return, {props:[["inputId","GUILDICON"]]});
2019-10-17 11:36:34 +02:00
if (iconinputins) {
2019-12-01 18:25:43 +01:00
delete iconinputins.props.success;
delete iconinputins.props.errorMessage;
2019-10-17 11:36:34 +02:00
iconinputins.props.disabled = value;
2019-12-02 14:16:56 +01:00
BDFDB.ReactUtils.forceUpdate(iconinputins);
2019-10-17 11:36:34 +02:00
}
}
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_guildbanner_text,
2019-12-02 14:16:56 +01:00
className: BDFDB.disCN.marginbottom4,
2019-12-30 11:34:44 +01:00
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TextInput, {
inputClassName: "input-guildbanner",
inputId: "GUILDBANNER",
success: !data.removeBanner && data.banner,
value: data.banner,
placeholder: BDFDB.GuildUtils.getBanner(guild.id),
disabled: data.removeBanner || guild.id == "410787888507256842",
onChange: (value, instance) => {
this.checkUrl(value, instance);
}
})
2019-10-17 11:36:34 +02:00
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
2019-10-17 11:36:34 +02:00
type: "Switch",
className: BDFDB.disCN.marginbottom20 + " input-removebanner",
label: this.labels.modal_removebanner_text,
value: data.removeBanner,
2019-12-01 18:25:43 +01:00
disabled: guild.id == "410787888507256842",
2019-10-17 11:36:34 +02:00
onChange: (value, instance) => {
2019-10-21 12:59:51 +02:00
let bannerinputins = BDFDB.ReactUtils.findOwner(instance._reactInternalFiber.return, {props:[["inputId","GUILDBANNER"]]});
2019-10-17 11:36:34 +02:00
if (bannerinputins) {
2019-12-01 18:25:43 +01:00
delete bannerinputins.props.success;
delete bannerinputins.props.errorMessage;
2019-10-17 11:36:34 +02:00
bannerinputins.props.disabled = value;
2019-12-02 14:16:56 +01:00
BDFDB.ReactUtils.forceUpdate(bannerinputins);
2019-10-17 11:36:34 +02:00
}
}
})
]
}),
2019-10-24 10:48:18 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalTabContent, {
2019-10-17 11:36:34 +02:00
tab: this.labels.modal_tabheader2_text,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_colorpicker1_text,
className: BDFDB.disCN.marginbottom20,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ColorSwatches, {
2019-10-17 11:36:34 +02:00
color: data.color1,
number: 1
})
]
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_colorpicker2_text,
className: BDFDB.disCN.marginbottom20,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ColorSwatches, {
2019-10-17 11:36:34 +02:00
color: data.color2,
number: 2
})
]
})
]
}),
2019-10-24 10:48:18 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalTabContent, {
2019-10-17 11:36:34 +02:00
tab: this.labels.modal_tabheader3_text,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_colorpicker3_text,
className: BDFDB.disCN.marginbottom20,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ColorSwatches, {
2019-10-17 11:36:34 +02:00
color: data.color3,
number: 3
})
]
}),
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FormComponents.FormItem, {
2019-10-17 11:36:34 +02:00
title: this.labels.modal_colorpicker4_text,
className: BDFDB.disCN.marginbottom20,
children: [
2019-10-22 18:55:25 +02:00
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ColorSwatches, {
2019-10-17 11:36:34 +02:00
color: data.color4,
number: 4
})
]
})
]
})
],
buttons: [{
2019-10-19 11:41:39 +02:00
contents: BDFDB.LanguageUtils.LanguageStrings.SAVE,
2019-10-17 11:36:34 +02:00
color: "BRAND",
close: true,
click: modal => {
let olddata = Object.assign({}, data);
2019-12-01 18:25:43 +01:00
let guildnameinput = modal.querySelector(".input-guildname");
let guildacronyminput = modal.querySelector(".input-guildacronym");
2019-12-02 14:16:56 +01:00
let ignorecustomnameinput = modal.querySelector(".input-ignorecustomname " + BDFDB.dotCN.switchinner);
2019-12-01 18:25:43 +01:00
let guildiconinput = modal.querySelector(".input-guildicon");
2019-10-17 11:36:34 +02:00
let removeiconinput = modal.querySelector(".input-removeicon " + BDFDB.dotCN.switchinner);
2019-12-01 18:25:43 +01:00
let guildbannerinput = modal.querySelector(".input-guildbanner");
2019-10-17 11:36:34 +02:00
let removebannerinput = modal.querySelector(".input-removebanner " + BDFDB.dotCN.switchinner);
data.name = guildnameinput.value.trim() || null;
data.shortName = guildacronyminput.value.trim() || null;
2019-12-02 14:16:56 +01:00
data.ignoreCustomName = ignorecustomnameinput.checked;
2019-10-23 11:10:01 +02:00
data.url = (!data.removeIcon && BDFDB.DOMUtils.containsClass(guildiconinput, BDFDB.disCN.inputsuccess) ? guildiconinput.value.trim() : null) || null;
2019-10-17 11:36:34 +02:00
data.removeIcon = removeiconinput.checked;
2019-10-23 11:10:01 +02:00
data.banner = (!data.removeBanner && BDFDB.DOMUtils.containsClass(guildbannerinput, BDFDB.disCN.inputsuccess) ? guildbannerinput.value.trim() : null) || null;
2019-12-01 18:25:43 +01:00
data.removeBanner = removebannerinput.checked && guild.id != "410787888507256842";
2019-03-14 14:06:14 +01:00
2019-10-23 11:10:01 +02:00
data.color1 = BDFDB.ColorUtils.getSwatchColor(modal, 1);
data.color2 = BDFDB.ColorUtils.getSwatchColor(modal, 2);
data.color3 = BDFDB.ColorUtils.getSwatchColor(modal, 3);
data.color4 = BDFDB.ColorUtils.getSwatchColor(modal, 4);
2019-01-26 22:45:19 +01:00
2019-10-17 11:36:34 +02:00
let changed = false;
2019-12-01 18:25:43 +01:00
if (Object.keys(data).every(key => !data[key]) && (changed = true)) BDFDB.DataUtils.remove(this, "servers", guild.id);
else if (!BDFDB.equals(olddata, data) && (changed = true)) BDFDB.DataUtils.save(data, this, "servers", guild.id);
if (changed) BDFDB.ModuleUtils.forceAllUpdates(this);;
2019-10-17 11:36:34 +02:00
}
}]
2019-01-17 23:48:29 +01:00
});
2018-10-11 10:21:26 +02:00
}
2019-10-17 11:36:34 +02:00
checkUrl (url, instance) {
2019-11-01 11:09:32 +01:00
BDFDB.TimeUtils.clear(instance.checkTimeout);
2019-10-17 11:36:34 +02:00
if (url == null || !url.trim()) {
2019-12-01 18:25:43 +01:00
delete instance.props.success;
delete instance.props.errorMessage;
2019-10-17 11:36:34 +02:00
instance.forceUpdate();
2018-10-11 10:21:26 +02:00
}
2019-11-01 11:09:32 +01:00
else instance.checkTimeout = BDFDB.TimeUtils.timeout(() => {
2019-10-17 11:36:34 +02:00
BDFDB.LibraryRequires.request(url.trim(), (error, response, result) => {
2018-10-11 10:21:26 +02:00
if (response && response.headers["content-type"] && response.headers["content-type"].indexOf("image") != -1) {
2019-12-01 18:25:43 +01:00
instance.props.success = true;
delete instance.props.errorMessage;
2018-10-11 10:21:26 +02:00
}
else {
2019-12-01 18:25:43 +01:00
delete instance.props.success;
instance.props.errorMessage = this.labels.modal_invalidurl_text;
2018-10-11 10:21:26 +02:00
}
2019-10-17 11:36:34 +02:00
delete instance.checkTimeout;
instance.forceUpdate();
2018-10-11 10:21:26 +02:00
});
2019-10-17 11:36:34 +02:00
}, 1000);
2018-10-11 10:21:26 +02:00
}
2019-01-26 22:45:19 +01:00
2019-05-20 13:50:57 +02:00
setBanner (id, data) {
2019-03-14 14:06:14 +01:00
data = data || {};
2019-09-11 12:14:43 +02:00
let guild = BDFDB.LibraryModules.GuildStore.getGuild(id);
2019-03-14 14:06:14 +01:00
if (!guild) return;
2019-05-20 13:50:57 +02:00
if (guild.EditServersCachedBanner === undefined) guild.EditServersCachedBanner = guild.banner;
guild.banner = data.removeBanner ? null : (data.banner || guild.EditServersCachedBanner);
2019-03-14 14:06:14 +01:00
}
2019-09-04 12:34:02 +02:00
2018-10-11 10:21:26 +02:00
setLabelsByLanguage () {
2019-10-22 19:38:25 +02:00
switch (BDFDB.LanguageUtils.getLanguage().id) {
2018-10-11 10:21:26 +02:00
case "hr": //croatian
return {
context_localserversettings_text: "Lokalne postavke poslužitelja",
submenu_serversettings_text: "Promijeni postavke",
submenu_resetsettings_text: "Ponovno postavite poslužitelj",
modal_header_text: "Lokalne postavke poslužitelja",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Naziv lokalnog poslužitelja",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Akronim lokalnog poslužitelja",
modal_ignorecustomname_text: "Koristite izvorno ime poslužitelja za akronim poslužitelja",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikona",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Ukloni ikonu",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Baner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Uklonite baner",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Poslužitelja",
modal_tabheader2_text: "Boja ikona",
modal_tabheader3_text: "Boja tooltip",
modal_colorpicker1_text: "Boja ikona",
modal_colorpicker2_text: "Boja fonta",
modal_colorpicker3_text: "Boja tooltip",
modal_colorpicker4_text: "Boja fonta",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Nevažeći URL"
2018-10-11 10:21:26 +02:00
};
case "da": //danish
return {
context_localserversettings_text: "Lokal serverindstillinger",
submenu_serversettings_text: "Skift indstillinger",
submenu_resetsettings_text: "Nulstil server",
modal_header_text: "Lokal serverindstillinger",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokalt servernavn",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Lokalt serverakronym",
modal_ignorecustomname_text: "Brug det originale servernavn til serverens akronym",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikon",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Fjern ikon",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Fjern banner",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Ikonfarve",
modal_tabheader3_text: "Tooltipfarve",
modal_colorpicker1_text: "Ikonfarve",
modal_colorpicker2_text: "Skriftfarve",
modal_colorpicker3_text: "Tooltipfarve",
modal_colorpicker4_text: "Skriftfarve",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Ugyldig URL"
2018-10-11 10:21:26 +02:00
};
case "de": //german
return {
context_localserversettings_text: "Lokale Servereinstellungen",
submenu_serversettings_text: "Einstellungen ändern",
submenu_resetsettings_text: "Server zurücksetzen",
modal_header_text: "Lokale Servereinstellungen",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokaler Servername",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Lokale Serverkürzel",
modal_ignorecustomname_text: "Benutze den ursprünglichen Servernamen für das Serverkürzel",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icon",
2019-03-14 14:06:14 +01:00
modal_removeicon_text: "Icon entfernen",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Banner entfernen",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Iconfarbe",
modal_tabheader3_text: "Tooltipfarbe",
modal_colorpicker1_text: "Iconfarbe",
modal_colorpicker2_text: "Schriftfarbe",
modal_colorpicker3_text: "Tooltipfarbe",
modal_colorpicker4_text: "Schriftfarbe",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Ungültige URL"
2018-10-11 10:21:26 +02:00
};
case "es": //spanish
return {
context_localserversettings_text: "Ajustes local de servidor",
submenu_serversettings_text: "Cambiar ajustes",
submenu_resetsettings_text: "Restablecer servidor",
modal_header_text: "Ajustes local de servidor",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Nombre local del servidor",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Acrónimo local del servidor",
modal_ignorecustomname_text: "Use el nombre del servidor original para el acrónimo del servidor",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icono",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Eliminar icono",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Bandera",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Eliminar bandera",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Servidor",
modal_tabheader2_text: "Color del icono",
modal_tabheader3_text: "Color de tooltip",
modal_colorpicker1_text: "Color del icono",
modal_colorpicker2_text: "Color de fuente",
modal_colorpicker3_text: "Color de tooltip",
modal_colorpicker4_text: "Color de fuente",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "URL inválida"
2018-10-11 10:21:26 +02:00
};
case "fr": //french
return {
context_localserversettings_text: "Paramètres locale du serveur",
submenu_serversettings_text: "Modifier les paramètres",
submenu_resetsettings_text: "Réinitialiser le serveur",
modal_header_text: "Paramètres locale du serveur",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Nom local du serveur",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Acronyme local de serveur",
modal_ignorecustomname_text: "Utilisez le nom de serveur d'origine pour l'acronyme de serveur",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icône",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Supprimer l'icône",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Bannière",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Supprimer la bannière",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Serveur",
modal_tabheader2_text: "Couleur de l'icône",
modal_tabheader3_text: "Couleur de tooltip",
modal_colorpicker1_text: "Couleur de l'icône",
modal_colorpicker2_text: "Couleur de la police",
modal_colorpicker3_text: "Couleur de tooltip",
modal_colorpicker4_text: "Couleur de la police",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "URL invalide"
2018-10-11 10:21:26 +02:00
};
case "it": //italian
return {
context_localserversettings_text: "Impostazioni locale server",
submenu_serversettings_text: "Cambia impostazioni",
submenu_resetsettings_text: "Ripristina server",
modal_header_text: "Impostazioni locale server",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Nome locale server",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Acronimo locale server",
modal_ignorecustomname_text: "Utilizzare il nome del server originale per l'acronimo del server",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icona",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Rimuova l'icona",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Bandiera",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Rimuovi bandiera",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Colore dell'icona",
modal_tabheader3_text: "Colore della tooltip",
modal_colorpicker1_text: "Colore dell'icona",
modal_colorpicker2_text: "Colore del carattere",
modal_colorpicker3_text: "Colore della tooltip",
modal_colorpicker4_text: "Colore del carattere",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "URL non valido"
2018-10-11 10:21:26 +02:00
};
case "nl": //dutch
return {
context_localserversettings_text: "Lokale serverinstellingen",
submenu_serversettings_text: "Verandere instellingen",
submenu_resetsettings_text: "Reset server",
modal_header_text: "Lokale serverinstellingen",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokale servernaam",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Lokale server acroniem",
modal_ignorecustomname_text: "Gebruik de oorspronkelijke servernaam voor het serveracrononiem",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icoon",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Verwijder icoon",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banier",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Verwijder banier",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Icoonkleur",
modal_tabheader3_text: "Tooltipkleur",
modal_colorpicker1_text: "Icoonkleur",
modal_colorpicker2_text: "Doopvontkleur",
modal_colorpicker3_text: "Tooltipkleur",
modal_colorpicker4_text: "Doopvontkleur",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Ongeldige URL"
2018-10-11 10:21:26 +02:00
};
case "no": //norwegian
return {
context_localserversettings_text: "Lokal serverinnstillinger",
submenu_serversettings_text: "Endre innstillinger",
submenu_resetsettings_text: "Tilbakestill server",
modal_header_text: "Lokal serverinnstillinger",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokalt servernavn",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Lokalt serverforkortelse",
modal_ignorecustomname_text: "Bruk det originale servernavnet til serverforkortelsen",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikon",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Fjern ikon",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Fjern banner",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Ikonfarge",
modal_tabheader3_text: "Tooltipfarge",
modal_colorpicker1_text: "Ikonfarge",
modal_colorpicker2_text: "Skriftfarge",
modal_colorpicker3_text: "Tooltipfarge",
modal_colorpicker4_text: "Skriftfarge",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Ugyldig URL"
2018-10-11 10:21:26 +02:00
};
case "pl": //polish
return {
context_localserversettings_text: "Lokalne ustawienia serwera",
submenu_serversettings_text: "Zmień ustawienia",
2019-03-14 14:06:14 +01:00
submenu_resetsettings_text: "Resetuj ustawienia",
2018-10-11 10:21:26 +02:00
modal_header_text: "Lokalne ustawienia serwera",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokalna nazwa serwera",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Akronim lokalnego serwera",
modal_ignorecustomname_text: "Użyj oryginalnej nazwy serwera dla akronimu serwera",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikona",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Usuń ikonę",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Baner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Usuń baner",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Serwer",
modal_tabheader2_text: "Kolor ikony",
modal_tabheader3_text: "Kolor podpowiedzi",
modal_colorpicker1_text: "Kolor ikony",
modal_colorpicker2_text: "Kolor czcionki",
modal_colorpicker3_text: "Kolor podpowiedzi",
modal_colorpicker4_text: "Kolor czcionki",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Nieprawidłowe URL"
2018-10-11 10:21:26 +02:00
};
case "pt-BR": //portuguese (brazil)
return {
context_localserversettings_text: "Configurações local do servidor",
submenu_serversettings_text: "Mudar configurações",
submenu_resetsettings_text: "Redefinir servidor",
modal_header_text: "Configurações local do servidor",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Nome local do servidor",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Acrônimo local de servidor",
modal_ignorecustomname_text: "Use o nome do servidor original para a sigla do servidor",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icone",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Remover ícone",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Bandeira",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Remover bandeira",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Servidor",
modal_tabheader2_text: "Cor do ícone",
modal_tabheader3_text: "Cor da tooltip",
modal_colorpicker1_text: "Cor do ícone",
modal_colorpicker2_text: "Cor da fonte",
modal_colorpicker3_text: "Cor da tooltip",
modal_colorpicker4_text: "Cor da fonte",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "URL inválida"
2018-10-11 10:21:26 +02:00
};
case "fi": //finnish
return {
context_localserversettings_text: "Paikallinen palvelimen asetukset",
submenu_serversettings_text: "Vaihda asetuksia",
submenu_resetsettings_text: "Nollaa palvelimen",
modal_header_text: "Paikallinen palvelimen asetukset",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Paikallinen palvelimenimi",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Paikallisen palvelimen lyhenne",
modal_ignorecustomname_text: "Käytä alkuperäistä palvelimen nimeä palvelimen lyhenteessä",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikonin",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Poista kuvake",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banneri",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Poista banneri",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Palvelimen",
modal_tabheader2_text: "Ikoninväri",
modal_tabheader3_text: "Tooltipväri",
modal_colorpicker1_text: "Ikoninväri",
modal_colorpicker2_text: "Fontinväri",
modal_colorpicker3_text: "Tooltipväri",
modal_colorpicker4_text: "Fontinväri",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Virheellinen URL"
2018-10-11 10:21:26 +02:00
};
case "sv": //swedish
return {
context_localserversettings_text: "Lokal serverinställningar",
submenu_serversettings_text: "Ändra inställningar",
submenu_resetsettings_text: "Återställ server",
modal_header_text: "Lokal serverinställningar",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Lokalt servernamn",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Lokal server förkortning",
modal_ignorecustomname_text: "Använd det ursprungliga servernamnet för serverförkortningen",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikon",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Ta bort ikonen",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banderoll",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Ta bort banderoll",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Ikonfärg",
modal_tabheader3_text: "Tooltipfärg",
modal_colorpicker1_text: "Ikonfärg",
modal_colorpicker2_text: "Fontfärg",
modal_colorpicker3_text: "Tooltipfärg",
modal_colorpicker4_text: "Fontfärg",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Ogiltig URL"
2018-10-11 10:21:26 +02:00
};
case "tr": //turkish
return {
context_localserversettings_text: "Yerel Sunucu Ayarları",
submenu_serversettings_text: "Ayarları Değiştir",
submenu_resetsettings_text: "Sunucu Sıfırla",
2019-12-02 14:16:56 +01:00
modal_header_text: "Yerel sunucu ayarları",
modal_guildname_text: "Yerel sunucu adı",
modal_guildacronym_text: "Yerel sunucu kısaltması",
modal_ignorecustomname_text: "Sunucu kısaltması için orijinal sunucu adını kullanın",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Simge",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Simge kaldır",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Afişi",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Afişi kaldır",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Sunucu",
modal_tabheader2_text: "Simge rengi",
modal_tabheader3_text: "Tooltip rengi",
modal_colorpicker1_text: "Simge rengi",
modal_colorpicker2_text: "Yazı rengi",
modal_colorpicker3_text: "Tooltip rengi",
modal_colorpicker4_text: "Yazı rengi",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Geçersiz URL"
2018-10-11 10:21:26 +02:00
};
case "cs": //czech
return {
context_localserversettings_text: "Místní nastavení serveru",
submenu_serversettings_text: "Změnit nastavení",
submenu_resetsettings_text: "Obnovit server",
modal_header_text: "Místní nastavení serveru",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Místní název serveru",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Zkratka místního serveru",
modal_ignorecustomname_text: "Pro zkratku serveru použijte původní název serveru",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Ikony",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Odstranit ikonu",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Prapor",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Odstraňte prapor",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Barva ikony",
modal_tabheader3_text: "Barva tooltip",
modal_colorpicker1_text: "Barva ikony",
modal_colorpicker2_text: "Barva fontu",
modal_colorpicker3_text: "Barva tooltip",
modal_colorpicker4_text: "Barva fontu",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Neplatná URL"
2018-10-11 10:21:26 +02:00
};
case "bg": //bulgarian
return {
context_localserversettings_text: "Настройки за локални cървър",
submenu_serversettings_text: "Промяна на настройките",
submenu_resetsettings_text: "Възстановяване на cървър",
modal_header_text: "Настройки за локални cървър",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Локално име на cървър",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Акроним на локалния сървър",
modal_ignorecustomname_text: "Използвайте оригиналното име на сървъра за съкращението на сървъра",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Икона",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Премахване на иконата",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Знаме",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Премахване на знаме",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Cървър",
modal_tabheader2_text: "Цвят на иконата",
modal_tabheader3_text: "Цвят на подсказка",
modal_colorpicker1_text: "Цвят на иконата",
modal_colorpicker2_text: "Цвят на шрифта",
modal_colorpicker3_text: "Цвят на подсказка",
modal_colorpicker4_text: "Цвят на шрифта",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Невалиден URL"
2018-10-11 10:21:26 +02:00
};
case "ru": //russian
return {
context_localserversettings_text: "Настройки локального cервер",
submenu_serversettings_text: "Изменить настройки",
submenu_resetsettings_text: "Сбросить cервер",
modal_header_text: "Настройки локального cервер",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Имя локального cервер",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Акроним локального сервера",
modal_ignorecustomname_text: "Используйте оригинальное имя сервера для сокращения сервера",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Значок",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Удалить значок",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Баннер",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Удалить баннер",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Cервер",
modal_tabheader2_text: "Цвет значков",
modal_tabheader3_text: "Цвет подсказка",
modal_colorpicker1_text: "Цвет значков",
modal_colorpicker2_text: "Цвет шрифта",
modal_colorpicker3_text: "Цвет подсказка",
modal_colorpicker4_text: "Цвет шрифта",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Неверная URL"
2018-10-11 10:21:26 +02:00
};
case "uk": //ukrainian
return {
context_localserversettings_text: "Налаштування локального cервер",
submenu_serversettings_text: "Змінити налаштування",
submenu_resetsettings_text: "Скидання cервер",
modal_header_text: "Налаштування локального cервер",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Локальне ім'я cервер",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Акронім локального сервера",
modal_ignorecustomname_text: "Використовуйте оригінальне ім'я сервера для абревіатури сервера",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Іконка",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Видалити піктограму",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Банер",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Видалити банер",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Cервер",
modal_tabheader2_text: "Колір ікони",
modal_tabheader3_text: "Колір підказка",
modal_colorpicker1_text: "Колір ікони",
modal_colorpicker2_text: "Колір шрифту",
modal_colorpicker3_text: "Колір підказка",
modal_colorpicker4_text: "Колір шрифту",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Недійсна URL"
2018-10-11 10:21:26 +02:00
};
case "ja": //japanese
return {
context_localserversettings_text: "ローカルサーバー設定",
submenu_serversettings_text: "設定を変更する",
submenu_resetsettings_text: "サーバーをリセットする",
modal_header_text: "ローカルサーバー設定",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "ローカルサーバー名",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "ローカルサーバーの頭字語",
modal_ignorecustomname_text: "サーバーの頭字語に元のサーバー名を使用する",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "アイコン",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "アイコンを削除",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "バナー",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "バナーを削除",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "サーバー",
modal_tabheader2_text: "アイコンの色",
modal_tabheader3_text: "ツールチップの色",
modal_colorpicker1_text: "アイコンの色",
modal_colorpicker2_text: "フォントの色",
modal_colorpicker3_text: "ツールチップの色",
modal_colorpicker4_text: "フォントの色",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "無効な URL"
2018-10-11 10:21:26 +02:00
};
case "zh-TW": //chinese (traditional)
return {
context_localserversettings_text: "本地服務器設置",
submenu_serversettings_text: "更改設置",
submenu_resetsettings_text: "重置服務器",
modal_header_text: "本地服務器設置",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "服務器名稱",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "本地服務器縮寫",
modal_ignorecustomname_text: "使用原始服務器名稱作為服務器首字母縮寫",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "圖標",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "刪除圖標",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "旗幟",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "刪除橫幅",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "服務器",
modal_tabheader2_text: "圖標顏色",
modal_tabheader3_text: "工具提示顏色",
modal_colorpicker1_text: "圖標顏色",
modal_colorpicker2_text: "字體顏色",
modal_colorpicker3_text: "工具提示顏色",
modal_colorpicker4_text: "字體顏色",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "無效的 URL"
2018-10-11 10:21:26 +02:00
};
case "ko": //korean
return {
context_localserversettings_text: "로컬 서버 설정",
submenu_serversettings_text: "설정 변경",
submenu_resetsettings_text: "서버 재설정",
modal_header_text: "로컬 서버 설정",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "로컬 서버 이름",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "로컬 서버 약어",
modal_ignorecustomname_text: "서버 약어에 원래 서버 이름을 사용하십시오",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "상",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "상 삭제",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "기치",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "배너 삭제",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "서버",
modal_tabheader2_text: "상 색깔",
modal_tabheader3_text: "툴팁 색깔",
modal_colorpicker1_text: "상 색깔",
modal_colorpicker2_text: "글꼴 색깔",
modal_colorpicker3_text: "툴팁 색깔",
modal_colorpicker4_text: "글꼴 색깔",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "잘못된 URL"
2018-10-11 10:21:26 +02:00
};
default: //default: english
return {
context_localserversettings_text: "Local Serversettings",
submenu_serversettings_text: "Change Settings",
submenu_resetsettings_text: "Reset Server",
modal_header_text: "Local Serversettings",
2019-10-17 11:36:34 +02:00
modal_guildname_text: "Local Servername",
2019-12-02 14:16:56 +01:00
modal_guildacronym_text: "Local Serveracronym",
modal_ignorecustomname_text: "Use the original Servername for the Serveracronym",
2019-10-17 11:36:34 +02:00
modal_guildicon_text: "Icon",
2018-10-11 10:21:26 +02:00
modal_removeicon_text: "Remove Icon",
2019-10-17 11:36:34 +02:00
modal_guildbanner_text: "Banner",
2019-03-14 14:06:14 +01:00
modal_removebanner_text: "Remove Banner",
2018-10-11 10:21:26 +02:00
modal_tabheader1_text: "Server",
modal_tabheader2_text: "Iconcolor",
modal_tabheader3_text: "Tooltipcolor",
modal_colorpicker1_text: "Iconcolor",
modal_colorpicker2_text: "Fontcolor",
modal_colorpicker3_text: "Tooltipcolor",
modal_colorpicker4_text: "Fontcolor",
2019-09-11 12:14:43 +02:00
modal_invalidurl_text: "Invalid URL"
2018-10-11 10:21:26 +02:00
};
}
}
}