Selaa lähdekoodia

v1.2.0 - `!wiki pause`

Markus-Rost 6 vuotta sitten
vanhempi
sitoutus
2e17f16507
4 muutettua tiedostoa jossa 220 lisäystä ja 166 poistoa
  1. 1 0
      README.md
  2. 78 36
      i18n.json
  3. 140 129
      main.js
  4. 1 1
      package.json

+ 1 - 0
README.md

@@ -39,6 +39,7 @@ For a full list with all administrator commands use `!wiki help admin`
 | `!wiki settings lang <language>` | **Wiki-Bot** will change the language for the server. |
 | `!wiki settings lang <language>` | **Wiki-Bot** will change the language for the server. |
 | `!wiki settings wiki <wiki>` | **Wiki-Bot** will change the default wiki for the server. |
 | `!wiki settings wiki <wiki>` | **Wiki-Bot** will change the default wiki for the server. |
 | `!wiki settings channel <wiki>` | **Wiki-Bot** will change the default wiki for the current channel. |
 | `!wiki settings channel <wiki>` | **Wiki-Bot** will change the default wiki for the current channel. |
+| `!wiki pause @Wiki-Bot` | **Wiki-Bot** will ignore all commands on this server, except a few admin commands. |
 | `!wiki poll <question as free text>` | **Wiki-Bot** will create a poll and react with `:support:` and `:oppose:`. |
 | `!wiki poll <question as free text>` | **Wiki-Bot** will create a poll and react with `:support:` and `:oppose:`. |
 | `!wiki poll <emoji> [<emoji> ...] <question as free text>` | **Wiki-Bot** will create a poll and react with the possible answers. |
 | `!wiki poll <emoji> [<emoji> ...] <question as free text>` | **Wiki-Bot** will create a poll and react with the possible answers. |
 | `!wiki say <message>` | **Wiki-Bot** will write the given message. |
 | `!wiki say <message>` | **Wiki-Bot** will write the given message. |

+ 78 - 36
i18n.json

@@ -60,6 +60,10 @@
 			"channel": "the default wiki for this channel is:",
 			"channel": "the default wiki for this channel is:",
 			"channelchanged": "you changed the default wiki for this channel to:"
 			"channelchanged": "you changed the default wiki for this channel to:"
 		},
 		},
+		"pause": {
+			"on": "I'm now paused on this server and will ignore most commands!",
+			"off": "I'm no longer paused on this server and will respond to all commands again!"
+		},
 		"voice": {
 		"voice": {
 			"text": "I try to give everyone in a voice channel a specific role:",
 			"text": "I try to give everyone in a voice channel a specific role:",
 			"name": "voice channel name",
 			"name": "voice channel name",
@@ -154,7 +158,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 10,
 			"random": 10,
-			"pause": "I'm currently inactive.",
+			"pause": "I'm currently paused on this server.",
 			"text": [
 			"text": [
 				"I'm still alive!",
 				"I'm still alive!",
 				"and believe me, I am still alive.",
 				"and believe me, I am still alive.",
@@ -168,6 +172,7 @@
 			"all": "So, you want to know what things I can do? Here is a list of all commands that I understand:",
 			"all": "So, you want to know what things I can do? Here is a list of all commands that I understand:",
 			"admin": "These commands can only be performed by administrators:",
 			"admin": "These commands can only be performed by administrators:",
 			"noadmin": "you need the `Manage Server` permission for these commands!",
 			"noadmin": "you need the `Manage Server` permission for these commands!",
+			"pause": "**I'm currently paused on this server!**\nOnly these commands can be performed:",
 			"list": [
 			"list": [
 				{ "cmd": "<search term>", "desc": "I will answer with a link to a matching article in the wiki.", "unsearchable": true },
 				{ "cmd": "<search term>", "desc": "I will answer with a link to a matching article in the wiki.", "unsearchable": true },
 				{ "cmd": "!<wiki> <search term>", "desc": "I will answer with a link to a matching article in the named Gamepedia wiki: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<wiki> <search term>", "desc": "I will answer with a link to a matching article in the named Gamepedia wiki: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
@@ -188,16 +193,18 @@
 				{ "cmd": "help <bot command>", "desc": "Wonder how a command works? Let me explain it to you!" },
 				{ "cmd": "help <bot command>", "desc": "Wonder how a command works? Let me explain it to you!" },
 				{ "cmd": "help admin", "desc": "I will list all administrator commands." },
 				{ "cmd": "help admin", "desc": "I will list all administrator commands." },
 				{ "cmd": "help admin", "desc": "I will list all administrator commands.", "unsearchable": true, "admin": true },
 				{ "cmd": "help admin", "desc": "I will list all administrator commands.", "unsearchable": true, "admin": true },
-				{ "cmd": "settings", "desc": "I will change the settings for this server.", "admin": true },
+				{ "cmd": "settings", "desc": "I will change the settings for this server.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <language>", "desc": "I will change the language for this server.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <language>", "desc": "I will change the language for this server.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "I will change the default wiki for this server.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "I will change the default wiki for this server.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "I will change the default wiki for the current channel.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "I will change the default wiki for the current channel.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "I will ignore all commands on this server, except a few admin commands.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "I will respond to all commands on this server again.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "poll <question as free text>", "desc": "I will create a poll and react with <:support:448222377009086465> and <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "poll <question as free text>", "desc": "I will create a poll and react with <:support:448222377009086465> and <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question as free text>", "desc": "I will create a poll and react with the possible answers.", "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question as free text>", "desc": "I will create a poll and react with the possible answers.", "admin": true },
-				{ "cmd": "test", "desc": "If I'm active, I'll answer! Otherwise not." },
-				{ "cmd": "say <message>", "desc": "I will write the given message.", "admin": true },
-				{ "cmd": "say alarm <message>", "desc": "I will write the given message already preformatted: 🚨 **<message>** 🚨", "admin": true },
-				{ "cmd": "delete <count>", "desc": "I will delete the recent messages in the channel, as long as they aren't older than 14 days.", "admin": true },
+				{ "cmd": "test", "desc": "If I'm active, I'll answer! Otherwise not.", "pause": true },
+				{ "cmd": "say <message>", "desc": "I will write the given message.", "admin": true, "pause": true },
+				{ "cmd": "say alarm <message>", "desc": "I will write the given message already preformatted: 🚨 **<message>** 🚨", "admin": true, "pause": true },
+				{ "cmd": "delete <count>", "desc": "I will delete the recent messages in the channel, as long as they aren't older than 14 days.", "admin": true, "pause": true },
 				{ "cmd": "purge <count>", "desc": "I will delete the recent messages in the channel, as long as they aren't older than 14 days.", "hide": true, "admin": true }
 				{ "cmd": "purge <count>", "desc": "I will delete the recent messages in the channel, as long as they aren't older than 14 days.", "hide": true, "admin": true }
 			]
 			]
 		}
 		}
@@ -234,6 +241,10 @@
 			"channel": "das Standard-Wiki für diesen Kanal ist:",
 			"channel": "das Standard-Wiki für diesen Kanal ist:",
 			"channelchanged": "du hast das Standard-Wiki für diesen Kanal geändert zu:"
 			"channelchanged": "du hast das Standard-Wiki für diesen Kanal geändert zu:"
 		},
 		},
+		"pause": {
+			"on": "ich bin auf diesem Server nun pausiert und werde die meisten Befehle ignorieren!",
+			"off": "ich bin auf diesem Server nicht länger pausiert und werde wieder auf alle Befehle reagieren!"
+		},
 		"voice": {
 		"voice": {
 			"text": "ich versuche allen in einem Sprachkanal eine bestimmte Rolle zu geben:",
 			"text": "ich versuche allen in einem Sprachkanal eine bestimmte Rolle zu geben:",
 			"name": "Name des Sprachkanals",
 			"name": "Name des Sprachkanals",
@@ -328,7 +339,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 10,
 			"random": 10,
-			"pause": "ich mache gerade eine Pause.",
+			"pause": "ich bin auf diesem Server derzeit pausiert.",
 			"text": [
 			"text": [
 				"ich bin ja schon wach!",
 				"ich bin ja schon wach!",
 				"du hast mich gerufen?",
 				"du hast mich gerufen?",
@@ -343,6 +354,7 @@
 			"all": "Du willst also wissen, was ich so drauf habe? Hier ist eine Liste aller Befehle, die ich verstehe:",
 			"all": "Du willst also wissen, was ich so drauf habe? Hier ist eine Liste aller Befehle, die ich verstehe:",
 			"admin": "Diese Befehle können nur Administratoren ausführen:",
 			"admin": "Diese Befehle können nur Administratoren ausführen:",
 			"noadmin": "du benötigst die `Server verwalten`-Berechtigung für diese Befehle!",
 			"noadmin": "du benötigst die `Server verwalten`-Berechtigung für diese Befehle!",
+			"pause": "**Ich bin auf diesem Server derzeit pausiert!**\nNur diese Befehle können ausgeführt werden:",
 			"list": [
 			"list": [
 				{ "cmd": "<Suchbegriff>", "desc": "Ich antworte mit einem Link auf einen passenden Artikel im Wiki.", "unsearchable": true },
 				{ "cmd": "<Suchbegriff>", "desc": "Ich antworte mit einem Link auf einen passenden Artikel im Wiki.", "unsearchable": true },
 				{ "cmd": "!<Wiki> <Suchbegriff>", "desc": "Ich antworte mit einem Link auf einen passenden Artikel im angegebenen Gamepedia-Wiki: `https://<Wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<Wiki> <Suchbegriff>", "desc": "Ich antworte mit einem Link auf einen passenden Artikel im angegebenen Gamepedia-Wiki: `https://<Wiki>.gamepedia.com/`", "unsearchable": true },
@@ -372,18 +384,20 @@
 				{ "cmd": "help", "desc": "Ich liste alle Befehle auf.", "hide": true },
 				{ "cmd": "help", "desc": "Ich liste alle Befehle auf.", "hide": true },
 				{ "cmd": "help <Bot-Befehl>", "desc": "Frage mich, wie ein Befehl funktioniert.", "hide": true },
 				{ "cmd": "help <Bot-Befehl>", "desc": "Frage mich, wie ein Befehl funktioniert.", "hide": true },
 				{ "cmd": "help admin", "desc": "Ich liste alle Befehle für Administratoren auf.", "hide": true },
 				{ "cmd": "help admin", "desc": "Ich liste alle Befehle für Administratoren auf.", "hide": true },
-				{ "cmd": "settings", "desc": "Ich ändere die Einstellungen für diesen Server.", "admin": true },
+				{ "cmd": "settings", "desc": "Ich ändere die Einstellungen für diesen Server.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <Sprache>", "desc": "Ich ändere die Sprache für diesen Server.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <Sprache>", "desc": "Ich ändere die Sprache für diesen Server.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <Wiki>", "desc": "Ich ändere das Standard-Wiki für diesen Server.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <Wiki>", "desc": "Ich ändere das Standard-Wiki für diesen Server.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <Wiki>", "desc": "Ich ändere das Standard-Wiki für den aktuellen Kanal.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <Wiki>", "desc": "Ich ändere das Standard-Wiki für den aktuellen Kanal.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "Ich werde auf diesem Server alle Befehle ignorieren, abgesehen von ein paar Befehlen für Administratoren.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "Ich werde auf diesem Server wieder auf alle Befehle reagieren.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "umfrage <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit <:support:448222377009086465> und <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "umfrage <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit <:support:448222377009086465> und <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "umfrage <Emoji> [<Emoji> ...] <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit den angegebenen Antworten.", "admin": true },
 				{ "cmd": "umfrage <Emoji> [<Emoji> ...] <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit den angegebenen Antworten.", "admin": true },
 				{ "cmd": "poll <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit <:support:448222377009086465> und <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit <:support:448222377009086465> und <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <Emoji> [<Emoji> ...] <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit den angegebenen Antworten.", "hide": true, "admin": true },
 				{ "cmd": "poll <Emoji> [<Emoji> ...] <Frage als Freitext>", "desc": "Ich erstelle eine Umfrage und reagiere mit den angegebenen Antworten.", "hide": true, "admin": true },
-				{ "cmd": "test", "desc": "Wenn ich gerade aktiv bin, werde ich antworten! Sonst nicht." },
-				{ "cmd": "say <Nachricht>", "desc": "Ich schreibe die angegebene Nachricht.", "admin": true },
-				{ "cmd": "say alarm <Nachricht>", "desc": "Ich schreibe die angegebene Nachricht bereits vorformatiert: 🚨 **<Nachricht>** 🚨", "admin": true },
-				{ "cmd": "delete <Anzahl>", "desc": "Ich lösche die letzten Nachrichten in dem Kanal, solange sie nicht älter als 14 Tage sind.", "admin": true },
+				{ "cmd": "test", "desc": "Wenn ich gerade aktiv bin, werde ich antworten! Sonst nicht.", "pause": true },
+				{ "cmd": "say <Nachricht>", "desc": "Ich schreibe die angegebene Nachricht.", "admin": true, "pause": true },
+				{ "cmd": "say alarm <Nachricht>", "desc": "Ich schreibe die angegebene Nachricht bereits vorformatiert: 🚨 **<Nachricht>** 🚨", "admin": true, "pause": true },
+				{ "cmd": "delete <Anzahl>", "desc": "Ich lösche die letzten Nachrichten in dem Kanal, solange sie nicht älter als 14 Tage sind.", "admin": true, "pause": true },
 				{ "cmd": "purge <Anzahl>", "desc": "Ich lösche die letzten Nachrichten in dem Kanal, solange sie nicht älter als 14 Tage sind.", "hide": true, "admin": true }
 				{ "cmd": "purge <Anzahl>", "desc": "Ich lösche die letzten Nachrichten in dem Kanal, solange sie nicht älter als 14 Tage sind.", "hide": true, "admin": true }
 			]
 			]
 		}
 		}
@@ -421,6 +435,10 @@
 			"channel": "le wiki défini pour ce salon est :",
 			"channel": "le wiki défini pour ce salon est :",
 			"channelchanged": "le wiki défini pour ce salon sera désormais :"
 			"channelchanged": "le wiki défini pour ce salon sera désormais :"
 		},
 		},
+		"pause": {
+			"on": "je sais maintenant en pause sur ce serveur et je ne répondrai pas à la majorité des commandes !",
+			"off": "je ne suis plus en pause, je peux à nouveau repondre à vos commandes !"
+		},
 		"voice": {
 		"voice": {
 			"text": "j'essaye de donner un rôle spécifique à tout le monde dans un salon vocal :",
 			"text": "j'essaye de donner un rôle spécifique à tout le monde dans un salon vocal :",
 			"name": "nom du salon vocal",
 			"name": "nom du salon vocal",
@@ -515,7 +533,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 30,
 			"random": 30,
-			"pause": "Je suis actuellement inactif.",
+			"pause": "je suis présentement en pause sur ce serveur.",
 			"text": [
 			"text": [
 				"Je suis toujours en vie !",
 				"Je suis toujours en vie !",
 				"et crois-moi, je suis toujours vivant.",
 				"et crois-moi, je suis toujours vivant.",
@@ -551,6 +569,7 @@
 			"all": "Donc, vous voulez savoir ce que je peux faire ? Voici une liste de toutes les commandes que je comprends :",
 			"all": "Donc, vous voulez savoir ce que je peux faire ? Voici une liste de toutes les commandes que je comprends :",
 			"admin": "Ces commandes ne peuvent être effectuées que par des administrateurs :",
 			"admin": "Ces commandes ne peuvent être effectuées que par des administrateurs :",
 			"noadmin": "vous devez avoir la permission `Gérer le serveur` pour utiliser ces commandes !",
 			"noadmin": "vous devez avoir la permission `Gérer le serveur` pour utiliser ces commandes !",
+			"pause": "**Je suis présentement en pause sur ce serveur!**\n Seuls ces commandes sont disponibles :",
 			"list": [
 			"list": [
 				{ "cmd": "<terme de recherche>", "desc": "Je vais répondre avec un lien vers un article correspondant sur Wiki.", "unsearchable": true },
 				{ "cmd": "<terme de recherche>", "desc": "Je vais répondre avec un lien vers un article correspondant sur Wiki.", "unsearchable": true },
 				{ "cmd": "!<wiki> <terme de recherche>", "desc": "Je vais répondre avec un lien vers un article correspondant sur wiki Gamepedia nommé : `https://<wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<wiki> <terme de recherche>", "desc": "Je vais répondre avec un lien vers un article correspondant sur wiki Gamepedia nommé : `https://<wiki>.gamepedia.com/`", "unsearchable": true },
@@ -576,18 +595,20 @@
 				{ "cmd": "help", "desc": "Je vais lister toutes les commandes que je comprends.", "hide": true },
 				{ "cmd": "help", "desc": "Je vais lister toutes les commandes que je comprends.", "hide": true },
 				{ "cmd": "help <commande de robot>", "desc": "Tu te demandes comment une commande fonctionne ? Laisse-moi te l'expliquer !", "hide": true },
 				{ "cmd": "help <commande de robot>", "desc": "Tu te demandes comment une commande fonctionne ? Laisse-moi te l'expliquer !", "hide": true },
 				{ "cmd": "help admin", "desc": "Je vais lister toutes les commandes d'administrateur.", "hide": true },
 				{ "cmd": "help admin", "desc": "Je vais lister toutes les commandes d'administrateur.", "hide": true },
-				{ "cmd": "settings", "desc": "Je vais modifier les paramètres de ce serveur.", "admin": true },
+				{ "cmd": "settings", "desc": "Je vais modifier les paramètres de ce serveur.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <langue>", "desc": "Je vais modifier la langue de ce serveur.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <langue>", "desc": "Je vais modifier la langue de ce serveur.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Je vais modifier le Wiki par défaut de ce serveur.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Je vais modifier le Wiki par défaut de ce serveur.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Je vais modifier le Wiki par défaut pour ce salon.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Je vais modifier le Wiki par défaut pour ce salon.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "Je vais ignorer toutes les commandes sur ce serveur, à l'exception de quelques commandes d'admin.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "Je vais répondre à nouveau à tous les commandes sur ce serveur.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "sondage <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec <:support:448222377009086465> et <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "sondage <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec <:support:448222377009086465> et <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "sondage <emoji> [<emoji> ...] <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec les réponses possibles.", "admin": true },
 				{ "cmd": "sondage <emoji> [<emoji> ...] <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec les réponses possibles.", "admin": true },
 				{ "cmd": "poll <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec <:support:448222377009086465> et <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec <:support:448222377009086465> et <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec les réponses possibles.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question en texte libre>", "desc": "Je vais créer un sondage et réagir avec les réponses possibles.", "hide": true, "admin": true },
-				{ "cmd": "test", "desc": "Si je suis actif, je répondrai ! Autrement non." },
-				{ "cmd": "say <message>", "desc": "Je vais écrire le message donné.", "admin": true },
-				{ "cmd": "say alarm <message>", "desc": "Je vais écrire le message donné déjà préformaté : 🚨 **<message>** 🚨", "admin": true },
-				{ "cmd": "delete <quantité>", "desc": "Je vais supprimer les messages récents dans le salon, tant qu'ils ne datent pas de plus de 14 jours.", "admin": true },
+				{ "cmd": "test", "desc": "Si je suis actif, je répondrai ! Autrement non.", "pause": true },
+				{ "cmd": "say <message>", "desc": "Je vais écrire le message donné.", "admin": true, "pause": true },
+				{ "cmd": "say alarm <message>", "desc": "Je vais écrire le message donné déjà préformaté : 🚨 **<message>** 🚨", "admin": true, "pause": true },
+				{ "cmd": "delete <quantité>", "desc": "Je vais supprimer les messages récents dans le salon, tant qu'ils ne datent pas de plus de 14 jours.", "admin": true, "pause": true },
 				{ "cmd": "purge <quantité>", "desc": "Je vais supprimer les messages récents dans le salon, tant qu'ils ne datent pas de plus de 14 jours.", "hide": true, "admin": true }
 				{ "cmd": "purge <quantité>", "desc": "Je vais supprimer les messages récents dans le salon, tant qu'ils ne datent pas de plus de 14 jours.", "hide": true, "admin": true }
 			]
 			]
 		}
 		}
@@ -625,6 +646,10 @@
 			"channel": "domyślną wiki tego kanału jest:",
 			"channel": "domyślną wiki tego kanału jest:",
 			"channelchanged": "zmieniono domyślną wiki dla tego kanału na:"
 			"channelchanged": "zmieniono domyślną wiki dla tego kanału na:"
 		},
 		},
+		"pause": {
+			"on": "Moje działanie jest obecnie wstrzymane na tym serwerze i będę ignorował większość komend!",
+			"off": "Ponawiam swoją pracę na tym serwerze, będę ponownie odpowiadał na wszystkie komendy!"
+		},
 		"voice": {
 		"voice": {
 			"text": "nadaję każdemu w kanale głosowym określoną rolę:",
 			"text": "nadaję każdemu w kanale głosowym określoną rolę:",
 			"name": "nazwa kanału głosowego",
 			"name": "nazwa kanału głosowego",
@@ -719,7 +744,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 10,
 			"random": 10,
-			"pause": "W tej chwili nie jestem aktywny.",
+			"pause": "Moje działanie jest obecnie wstrzymane na tym serwerze.",
 			"text": [
 			"text": [
 				"Wciąż tu jestem!",
 				"Wciąż tu jestem!",
 				"Wierz mi, nadal żyję.",
 				"Wierz mi, nadal żyję.",
@@ -733,6 +758,7 @@
 			"all": "A więc chcesz wiedzieć co potrafię? Tutaj jest lista komend, które rozumiem:",
 			"all": "A więc chcesz wiedzieć co potrafię? Tutaj jest lista komend, które rozumiem:",
 			"admin": "Te komendy mogą być wykonane jedynie przez administrację:",
 			"admin": "Te komendy mogą być wykonane jedynie przez administrację:",
 			"noadmin": "potrzebujesz uprawnienia `Zarządzanie serwerem` aby używać tych komend!",
 			"noadmin": "potrzebujesz uprawnienia `Zarządzanie serwerem` aby używać tych komend!",
+			"pause": "**Moja praca na tym serwerze została wstrzymana!**\nTylko następujące komendy mogą być używane:",
 			"list": [
 			"list": [
 				{ "cmd": "<wyszukiwana fraza>", "desc": "Odpowiem linkiem do pasujacego artykułu na Wiki.", "unsearchable": true },
 				{ "cmd": "<wyszukiwana fraza>", "desc": "Odpowiem linkiem do pasujacego artykułu na Wiki.", "unsearchable": true },
 				{ "cmd": "!<wiki> <wyszukiwana fraza>", "desc": "Odpowiem z pasującym linkiem do podanej wiki na Gamepedii: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<wiki> <wyszukiwana fraza>", "desc": "Odpowiem z pasującym linkiem do podanej wiki na Gamepedii: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
@@ -759,18 +785,20 @@
 				{ "cmd": "help", "desc": "Wylistuję wszystkie komendy, które rozumiem.", "hide": true },
 				{ "cmd": "help", "desc": "Wylistuję wszystkie komendy, które rozumiem.", "hide": true },
 				{ "cmd": "help <komenda bota>", "desc": "Wyłumaczę działanie komendy!", "hide": true },
 				{ "cmd": "help <komenda bota>", "desc": "Wyłumaczę działanie komendy!", "hide": true },
 				{ "cmd": "help admin", "desc": "Wylistuję wszystkie komendy administracyjne.", "hide": true },
 				{ "cmd": "help admin", "desc": "Wylistuję wszystkie komendy administracyjne.", "hide": true },
-				{ "cmd": "settings", "desc": "Zmienię ustawienia dla tego serwera.", "admin": true },
+				{ "cmd": "settings", "desc": "Zmienię ustawienia dla tego serwera.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <język>", "desc": "Zmienię język tego serwera.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <język>", "desc": "Zmienię język tego serwera.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Zmienię domyślną wiki tego serwera.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Zmienię domyślną wiki tego serwera.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Zmienię domyślną wiki dla tego obecnego kanału.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Zmienię domyślną wiki dla tego obecnego kanału.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "Od teraz będę ignorował większość komend na tym serwerze z wyjątkiem paru, administracyjnych komend.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "Ponownie będę odpowiadał na wszystkie komendy na tym serwerze.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "ankieta <pytanie>", "desc": "Utworzę ankietę i dodam do niej domyślne reakcje (<:support:448222377009086465> oraz <:oppose:448222455425794059>)", "admin": true },
 				{ "cmd": "ankieta <pytanie>", "desc": "Utworzę ankietę i dodam do niej domyślne reakcje (<:support:448222377009086465> oraz <:oppose:448222455425794059>)", "admin": true },
 				{ "cmd": "ankieta <emotka> [<emotka> ...] <pytanie>", "desc": "Utworzę ankietę i dodam do niej podane reakcje..", "admin": true },
 				{ "cmd": "ankieta <emotka> [<emotka> ...] <pytanie>", "desc": "Utworzę ankietę i dodam do niej podane reakcje..", "admin": true },
 				{ "cmd": "poll <pytanie>", "desc": "Utworzę ankietę i dodam do niej domyślne reakcje (<:support:448222377009086465> oraz <:oppose:448222455425794059>)", "hide": true, "admin": true },
 				{ "cmd": "poll <pytanie>", "desc": "Utworzę ankietę i dodam do niej domyślne reakcje (<:support:448222377009086465> oraz <:oppose:448222455425794059>)", "hide": true, "admin": true },
 				{ "cmd": "poll <emotka> [<emotka> ...] <pytanie>", "desc": "Utworzę ankietę i dodam do niej podane reakcje..", "hide": true, "admin": true },
 				{ "cmd": "poll <emotka> [<emotka> ...] <pytanie>", "desc": "Utworzę ankietę i dodam do niej podane reakcje..", "hide": true, "admin": true },
-				{ "cmd": "test", "desc": "Gdy jestem aktywny - odpowiem." },
-				{ "cmd": "say <wiadomość>", "desc": "Napiszę podaną wiadomość", "admin": true },
-				{ "cmd": "say alarm <wiadomość>", "desc": "Napiszę specjalnie sformatowaną wiadomość: 🚨 **<wiadomość>** 🚨", "admin": true },
-				{ "cmd": "usuń <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "admin": true },
+				{ "cmd": "test", "desc": "Gdy jestem aktywny - odpowiem.", "pause": true },
+				{ "cmd": "say <wiadomość>", "desc": "Napiszę podaną wiadomość", "admin": true, "pause": true },
+				{ "cmd": "say alarm <wiadomość>", "desc": "Napiszę specjalnie sformatowaną wiadomość: 🚨 **<wiadomość>** 🚨", "admin": true, "pause": true },
+				{ "cmd": "usuń <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "admin": true, "pause": true },
 				{ "cmd": "delete <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "hide": true, "admin": true },
 				{ "cmd": "delete <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "hide": true, "admin": true },
 				{ "cmd": "purge <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "hide": true, "admin": true }
 				{ "cmd": "purge <ilość>", "desc": "Usunę podaną ilość najnowszych wiadomości na kanale, jeżeli nie są starsze niż 14 dni.", "hide": true, "admin": true }
 			]
 			]
@@ -810,6 +838,10 @@
 			"channel": "bu kanalın varsayılan wikisi:",
 			"channel": "bu kanalın varsayılan wikisi:",
 			"channelchanged": "bu kanalın varsayılan wikisini şuna değiştirdiniz:"
 			"channelchanged": "bu kanalın varsayılan wikisini şuna değiştirdiniz:"
 		},
 		},
+		"pause": {
+			"on": "Şimdi bu sunucuda duraklatıldım ve çoğu komutu görmezden geleceğim!",
+			"off": "Artık bu sunucuda duraklatılmış durumda değilim ve tüm komutlara tekrar cevap vereceğim!"
+		},
 		"voice": {
 		"voice": {
 			"text": "Ses kanalındaki herkese belirli bir rol vermeye çalışıyorum:",
 			"text": "Ses kanalındaki herkese belirli bir rol vermeye çalışıyorum:",
 			"name": "ses kanalı adı",
 			"name": "ses kanalı adı",
@@ -904,7 +936,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 10,
 			"random": 10,
-			"pause": "Şu anda etkin değilim.",
+			"pause": "Şu anda bu sunucuda duraklatılmış durumdayım.",
 			"text": [
 			"text": [
 				"Hala hayattayım!",
 				"Hala hayattayım!",
 				"ve inan bana, ben hala hayattayım.",
 				"ve inan bana, ben hala hayattayım.",
@@ -918,6 +950,7 @@
 			"all": "Yapabileceklerimi öğrenmek mi istiyorsun? İşte anladığım tüm komutların bir listesi:",
 			"all": "Yapabileceklerimi öğrenmek mi istiyorsun? İşte anladığım tüm komutların bir listesi:",
 			"admin": "Bu komutlar sadece yöneticiler tarafından kullanılabilir:",
 			"admin": "Bu komutlar sadece yöneticiler tarafından kullanılabilir:",
 			"noadmin": "Bu komutlar için `Sunucuyu Yönetme` iznine ihtiyacınız var!",
 			"noadmin": "Bu komutlar için `Sunucuyu Yönetme` iznine ihtiyacınız var!",
+			"pause": "**Şu an bu sunucuda duraklatılmış durumdayım!**\nSadece bu komutlar gerçekleştirilebilir:",
 			"list": [
 			"list": [
 				{ "cmd": "<arama terimi>", "desc": "Wiki'deki eşleşen bir makale bağlantısıyla cevap vereceğim.", "unsearchable": true },
 				{ "cmd": "<arama terimi>", "desc": "Wiki'deki eşleşen bir makale bağlantısıyla cevap vereceğim.", "unsearchable": true },
 				{ "cmd": "!<wiki> <arama terimi>", "desc": "Belirtilen Gamepedia Wikideki eşleşen bir makale bağlantısıyla cevap vereceğim: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<wiki> <arama terimi>", "desc": "Belirtilen Gamepedia Wikideki eşleşen bir makale bağlantısıyla cevap vereceğim: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
@@ -944,18 +977,20 @@
 				{ "cmd": "help", "desc": "Anladığım tüm komutları listeleyeceğim.", "hide": true },
 				{ "cmd": "help", "desc": "Anladığım tüm komutları listeleyeceğim.", "hide": true },
 				{ "cmd": "help <bot komutu>", "desc": "Bir komut nasıl çalışıyor biliyor musun? Sana açıklayayım!", "hide": true },
 				{ "cmd": "help <bot komutu>", "desc": "Bir komut nasıl çalışıyor biliyor musun? Sana açıklayayım!", "hide": true },
 				{ "cmd": "help admin", "desc": "Tüm yönetici komutlarını listeleyeceğim.", "hide": true },
 				{ "cmd": "help admin", "desc": "Tüm yönetici komutlarını listeleyeceğim.", "hide": true },
-				{ "cmd": "settings", "desc": "Bu sunucunun ayarlarını değiştireceğim.", "admin": true },
+				{ "cmd": "settings", "desc": "Bu sunucunun ayarlarını değiştireceğim.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <dil>", "desc": "Bu sunucunun dilini değiştireceğim.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <dil>", "desc": "Bu sunucunun dilini değiştireceğim.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Bu sunucunun varsayılan wikisini değiştireceğim.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Bu sunucunun varsayılan wikisini değiştireceğim.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Geçerli kanalın varsayılan wikisini değiştireceğim.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Geçerli kanalın varsayılan wikisini değiştireceğim.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "Birkaç admin komutu haricinde, bu sunucudaki bütün komutları yok sayacağım.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "Bu sunucudaki tüm komutlara tekrar cevap vereceğim.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "anket <serbest metin olarak soru>", "desc": "Anket yaratacağım ve şu tepkileri vereceğim: <:support:448222377009086465> ve <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "anket <serbest metin olarak soru>", "desc": "Anket yaratacağım ve şu tepkileri vereceğim: <:support:448222377009086465> ve <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "anket <emoji> [<emoji> ...] <question as free text>", "desc": "Bir anket yaratacağım ve olası cevaplarla tepki ekleyeceğim.", "admin": true },
 				{ "cmd": "anket <emoji> [<emoji> ...] <question as free text>", "desc": "Bir anket yaratacağım ve olası cevaplarla tepki ekleyeceğim.", "admin": true },
 				{ "cmd": "poll <serbest metin olarak soru>", "desc": "Anket yaratacağım ve şu tepkileri vereceğim: <:support:448222377009086465> ve <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <serbest metin olarak soru>", "desc": "Anket yaratacağım ve şu tepkileri vereceğim: <:support:448222377009086465> ve <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question as free text>", "desc": "Bir anket yaratacağım ve olası cevaplarla tepki ekleyeceğim.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <question as free text>", "desc": "Bir anket yaratacağım ve olası cevaplarla tepki ekleyeceğim.", "hide": true, "admin": true },
-				{ "cmd": "test", "desc": "Eğer aktifsem, cevap veririm! Aksi takdirde vermem." },
-				{ "cmd": "say <mesaj>", "desc": "Verilen mesajı yazacağım.", "admin": true },
-				{ "cmd": "say alarm <mesaj>", "desc": "Verilen mesajı biçimlendirilmiş olarak bu şekilde yazacağım: 🚨 **<mesaj>** 🚨", "admin": true },
-				{ "cmd": "temizleme <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "admin": true },
+				{ "cmd": "test", "desc": "Eğer aktifsem, cevap veririm! Aksi takdirde vermem.", "pause": true },
+				{ "cmd": "say <mesaj>", "desc": "Verilen mesajı yazacağım.", "admin": true, "pause": true },
+				{ "cmd": "say alarm <mesaj>", "desc": "Verilen mesajı biçimlendirilmiş olarak bu şekilde yazacağım: 🚨 **<mesaj>** 🚨", "admin": true, "pause": true },
+				{ "cmd": "temizleme <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "admin": true, "pause": true },
 				{ "cmd": "delete <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "hide": true, "admin": true },
 				{ "cmd": "delete <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "hide": true, "admin": true },
 				{ "cmd": "purge <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "hide": true, "admin": true }
 				{ "cmd": "purge <adet>", "desc": "Kanaldaki son mesajları 14 günden daha eski olmadıkları sürece silerim.", "hide": true, "admin": true }
 			]
 			]
@@ -1000,6 +1035,10 @@
 			"channel": "a wiki padrão para este canal é:",
 			"channel": "a wiki padrão para este canal é:",
 			"channelchanged": "você mudou a wiki padrão para este canal para:"
 			"channelchanged": "você mudou a wiki padrão para este canal para:"
 		},
 		},
+		"pause": {
+			"on": "Agora estou pausado neste servidor e ignorarei a maioria dos comandos!",
+			"off": "Não estou mais pausado neste servidor e responderei a todos os comandos novamente!"
+		},
 		"voice": {
 		"voice": {
 			"text": "Eu tento dar a todos em um canal de voz um papel específico:",
 			"text": "Eu tento dar a todos em um canal de voz um papel específico:",
 			"name": "nome do canal de voz",
 			"name": "nome do canal de voz",
@@ -1094,7 +1133,7 @@
 		},
 		},
 		"test": {
 		"test": {
 			"random": 10,
 			"random": 10,
-			"pause": "estou atualmente inativo.",
+			"pause": "eu estou atualmente em pausa neste servidor.",
 			"text": [
 			"text": [
 				"eu ainda estou vivo!",
 				"eu ainda estou vivo!",
 				"e acredite em mim, eu ainda estou vivo.",
 				"e acredite em mim, eu ainda estou vivo.",
@@ -1108,6 +1147,7 @@
 			"all": "Então, você quer saber o que eu posso fazer? Aqui está uma lista de todos os comandos que eu entendo:",
 			"all": "Então, você quer saber o que eu posso fazer? Aqui está uma lista de todos os comandos que eu entendo:",
 			"admin": "Esses comandos só podem ser executados por administradores:",
 			"admin": "Esses comandos só podem ser executados por administradores:",
 			"noadmin": "você precisa da permissão de `Gerenciar servidor` para esses comandos!",
 			"noadmin": "você precisa da permissão de `Gerenciar servidor` para esses comandos!",
+			"pause": "**Estou atualmente em pausa neste servidor!**\nSom estes comandos podem ser executados:",
 			"list": [
 			"list": [
 				{ "cmd": "<termo de pesquisa>", "desc": "Eu vou responder com um link para um artigo correspondente no wiki.", "unsearchable": true },
 				{ "cmd": "<termo de pesquisa>", "desc": "Eu vou responder com um link para um artigo correspondente no wiki.", "unsearchable": true },
 				{ "cmd": "!<wiki> <termo de pesquisa>", "desc": "Vou responder com um link para um artigo correspondente na wiki da Gamepedia: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
 				{ "cmd": "!<wiki> <termo de pesquisa>", "desc": "Vou responder com um link para um artigo correspondente na wiki da Gamepedia: `https://<wiki>.gamepedia.com/`", "unsearchable": true },
@@ -1135,21 +1175,23 @@
 				{ "cmd": "help", "desc": "Vou listar todos os comandos que entendo.", "hide": true },
 				{ "cmd": "help", "desc": "Vou listar todos os comandos que entendo.", "hide": true },
 				{ "cmd": "help <comando do robô>", "desc": "Quer saber como funciona um comando? Deixe-me explicar isso para você!", "hide": true },
 				{ "cmd": "help <comando do robô>", "desc": "Quer saber como funciona um comando? Deixe-me explicar isso para você!", "hide": true },
 				{ "cmd": "help admin", "desc": "Vou listar todos os comandos do administrador.", "hide": true },
 				{ "cmd": "help admin", "desc": "Vou listar todos os comandos do administrador.", "hide": true },
-				{ "cmd": "settings", "desc": "Vou mudar as configurações deste servidor.", "admin": true },
+				{ "cmd": "settings", "desc": "Vou mudar as configurações deste servidor.", "admin": true, "pause": true },
 				{ "cmd": "settings lang <idioma>", "desc": "Vou mudar o idioma deste servidor.", "hide": true, "admin": true },
 				{ "cmd": "settings lang <idioma>", "desc": "Vou mudar o idioma deste servidor.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Vou mudar a wiki padrão para esse servidor.", "hide": true, "admin": true },
 				{ "cmd": "settings wiki <wiki>", "desc": "Vou mudar a wiki padrão para esse servidor.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Vou mudar a wiki padrão para o canal atual.", "hide": true, "admin": true },
 				{ "cmd": "settings channel <wiki>", "desc": "Vou mudar a wiki padrão para o canal atual.", "hide": true, "admin": true },
+				{ "cmd": "pause @mention", "desc": "Eu vou ignorar todos os comandos neste servidor, exceto alguns comandos de administração.", "admin": true },
+				{ "cmd": "pause @mention", "desc": "Eu responderei a todos os comandos neste servidor novamente.", "unsearchable": true, "hide": true, "pause": true },
 				{ "cmd": "enquete <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com <:support:448222377009086465> e <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "enquete <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com <:support:448222377009086465> e <:oppose:448222455425794059>.", "admin": true },
 				{ "cmd": "enquete <emoji> [<emoji> ...] <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com as respostas possíveis.", "admin": true },
 				{ "cmd": "enquete <emoji> [<emoji> ...] <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com as respostas possíveis.", "admin": true },
 				{ "cmd": "poll <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com <:support:448222377009086465> e <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com <:support:448222377009086465> e <:oppose:448222455425794059>.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com as respostas possíveis.", "hide": true, "admin": true },
 				{ "cmd": "poll <emoji> [<emoji> ...] <pergunta como texto livre>", "desc": "Vou criar uma enquete e reagir com as respostas possíveis.", "hide": true, "admin": true },
-				{ "cmd": "teste", "desc": "Se estou ativo, respondo! Caso contrário, não." },
+				{ "cmd": "teste", "desc": "Se estou ativo, respondo! Caso contrário, não.", "pause": true },
 				{ "cmd": "test", "desc": "Se estou ativo, respondo! Caso contrário, não.", "hide": true },
 				{ "cmd": "test", "desc": "Se estou ativo, respondo! Caso contrário, não.", "hide": true },
-				{ "cmd": "dizer <mensagem>", "desc": "Vou escrever a mensagem dada.", "admin": true },
-				{ "cmd": "dizer alarm <mensagem>", "desc": "Vou escrever a mensagem já pré-formatada: 🚨 **<mensagem>** 🚨", "admin": true },
+				{ "cmd": "dizer <mensagem>", "desc": "Vou escrever a mensagem dada.", "admin": true, "pause": true },
+				{ "cmd": "dizer alarm <mensagem>", "desc": "Vou escrever a mensagem já pré-formatada: 🚨 **<mensagem>** 🚨", "admin": true, "pause": true },
 				{ "cmd": "say <mensagem>", "desc": "Vou escrever a mensagem dada.", "hide": true, "admin": true },
 				{ "cmd": "say <mensagem>", "desc": "Vou escrever a mensagem dada.", "hide": true, "admin": true },
 				{ "cmd": "say alarm <mensagem>", "desc": "Vou escrever a mensagem já pré-formatada: 🚨 **<mensagem>** 🚨", "hide": true, "admin": true },
 				{ "cmd": "say alarm <mensagem>", "desc": "Vou escrever a mensagem já pré-formatada: 🚨 **<mensagem>** 🚨", "hide": true, "admin": true },
-				{ "cmd": "excluir <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "admin": true },
+				{ "cmd": "excluir <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "admin": true, "pause": true },
 				{ "cmd": "purgue <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },
 				{ "cmd": "purgue <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },
 				{ "cmd": "purgar <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },
 				{ "cmd": "purgar <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },
 				{ "cmd": "limpar <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },
 				{ "cmd": "limpar <contagem>", "desc": "Excluirei as mensagens recentes no canal, desde que não tenham mais de 14 dias.", "hide": true, "admin": true },

+ 140 - 129
main.js

@@ -116,6 +116,7 @@ var timeoptions = {
 var cmdmap = {
 var cmdmap = {
 	help: cmd_help,
 	help: cmd_help,
 	test: cmd_test,
 	test: cmd_test,
+	pause: cmd_pause,
 	invite: cmd_invite,
 	invite: cmd_invite,
 	say: cmd_multiline,
 	say: cmd_multiline,
 	delete: cmd_multiline,
 	delete: cmd_multiline,
@@ -139,7 +140,9 @@ var ownercmdmap = {
 }
 }
 
 
 var pausecmdmap = {
 var pausecmdmap = {
+	help: cmd_help,
 	test: cmd_test,
 	test: cmd_test,
+	pause: cmd_pause,
 	say: cmd_multiline,
 	say: cmd_multiline,
 	delete: cmd_multiline,
 	delete: cmd_multiline,
 	settings: cmd_settings
 	settings: cmd_settings
@@ -179,35 +182,35 @@ function cmd_settings(lang, msg, args, line) {
 				if ( args[0] === 'lang' ) {
 				if ( args[0] === 'lang' ) {
 					if ( args[1] ) {
 					if ( args[1] ) {
 						if ( args[1] in i18n.allLangs[0] ) edit_settings(lang, msg, 'lang', i18n.allLangs[0][args[1]]);
 						if ( args[1] in i18n.allLangs[0] ) edit_settings(lang, msg, 'lang', i18n.allLangs[0][args[1]]);
-						else msg.replyMsg( nolangs );
-					} else msg.replyMsg( lang.settings[current] + langs );
+						else msg.replyMsg( nolangs, {}, true );
+					} else msg.replyMsg( lang.settings[current] + langs, {}, true );
 				} else if ( args[0] === 'wiki' ) {
 				} else if ( args[0] === 'wiki' ) {
 					if ( args[1] ) {
 					if ( args[1] ) {
 						if ( regex !== null ) edit_settings(lang, msg, 'wiki', regex[1]);
 						if ( regex !== null ) edit_settings(lang, msg, 'wiki', regex[1]);
 						else find_wikis(lang, msg, 'wiki', args[1].split(' '), nowikis);
 						else find_wikis(lang, msg, 'wiki', args[1].split(' '), nowikis);
-					} else msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].wiki + '.gamepedia.com/' + wikis );
+					} else msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].wiki + '.gamepedia.com/' + wikis, {}, true );
 				} else if ( args[0] === 'channel' ) {
 				} else if ( args[0] === 'channel' ) {
 					if ( args[1] ) {
 					if ( args[1] ) {
 						if ( regex !== null ) edit_settings(lang, msg, 'channel', regex[1]);
 						if ( regex !== null ) edit_settings(lang, msg, 'channel', regex[1]);
 						else find_wikis(lang, msg, 'channel', args[1].split(' '), nochannels);
 						else find_wikis(lang, msg, 'channel', args[1].split(' '), nochannels);
 					} else if ( settings[msg.guild.id].channels && msg.channel.id in settings[msg.guild.id].channels ) {
 					} else if ( settings[msg.guild.id].channels && msg.channel.id in settings[msg.guild.id].channels ) {
-						msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].channels[msg.channel.id] + '.gamepedia.com/' + channels );
-					} else msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].wiki + '.gamepedia.com/' + channels );
-				} else msg.replyMsg( text );
+						msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].channels[msg.channel.id] + '.gamepedia.com/' + channels, {}, true );
+					} else msg.replyMsg( lang.settings[current] + ' https://' + settings[msg.guild.id].wiki + '.gamepedia.com/' + channels, {}, true );
+				} else msg.replyMsg( text, {}, true );
 			} else {
 			} else {
 				if ( args[0] === 'lang' ) {
 				if ( args[0] === 'lang' ) {
 					if ( args[1] ) {
 					if ( args[1] ) {
 						if ( args[1] in i18n.allLangs[0] ) edit_settings(lang, msg, 'lang', i18n.allLangs[0][args[1]]);
 						if ( args[1] in i18n.allLangs[0] ) edit_settings(lang, msg, 'lang', i18n.allLangs[0][args[1]]);
-						else msg.replyMsg( nolangs );
-					} else msg.replyMsg( lang.settings.lang + langs );
+						else msg.replyMsg( nolangs, {}, true );
+					} else msg.replyMsg( lang.settings.lang + langs, {}, true );
 				} else if ( args[0] === 'wiki' || args[0] === 'channel' ) {
 				} else if ( args[0] === 'wiki' || args[0] === 'channel' ) {
 					if ( args[1] ) {
 					if ( args[1] ) {
 						if ( regex !== null ) edit_settings(lang, msg, 'wiki', regex[1]);
 						if ( regex !== null ) edit_settings(lang, msg, 'wiki', regex[1]);
 						else find_wikis(lang, msg, 'wiki', args[1].split(' '), nowikis);
 						else find_wikis(lang, msg, 'wiki', args[1].split(' '), nowikis);
-					} else msg.replyMsg( lang.settings.wikimissing + wikis );
-				} else msg.replyMsg( text );
+					} else msg.replyMsg( lang.settings.wikimissing + wikis, {}, true );
+				} else msg.replyMsg( text, {}, true );
 			}
 			}
-		} else msg.replyMsg( text );
+		} else msg.replyMsg( text, {}, true );
 	} else {
 	} else {
 		msg.reactEmoji('❌');
 		msg.reactEmoji('❌');
 	}
 	}
@@ -220,15 +223,15 @@ function find_wikis(lang, msg, key, value, text) {
 		if ( 0 < sites.length && sites.length < 21 ) {
 		if ( 0 < sites.length && sites.length < 21 ) {
 			text += '\n\n' + lang.settings.foundwikis + '\n' + sites.map( site => site.wiki_display_name + ': `' + site.wiki_domain + '`' ).join('\n');
 			text += '\n\n' + lang.settings.foundwikis + '\n' + sites.map( site => site.wiki_display_name + ': `' + site.wiki_domain + '`' ).join('\n');
 		}
 		}
-		msg.replyMsg( text, {split:true} );
+		msg.replyMsg( text, {split:true}, true );
 	}
 	}
 }
 }
 
 
 function edit_settings(lang, msg, key, value) {
 function edit_settings(lang, msg, key, value) {
-	msg.reactEmoji('⏳').then( function( reaction ) {
+	msg.reactEmoji('⏳', true).then( function( reaction ) {
 		if ( settings === defaultSettings ) {
 		if ( settings === defaultSettings ) {
 			console.log( '- Fehler beim Erhalten bestehender Einstellungen.' );
 			console.log( '- Fehler beim Erhalten bestehender Einstellungen.' );
-			msg.replyMsg( lang.settings.save_failed );
+			msg.replyMsg( lang.settings.save_failed, {}, true );
 			if ( reaction ) reaction.removeEmoji();
 			if ( reaction ) reaction.removeEmoji();
 		}
 		}
 		else {
 		else {
@@ -268,8 +271,8 @@ function edit_settings(lang, msg, key, value) {
 				json: true
 				json: true
 			}, function( error, response, body ) {
 			}, function( error, response, body ) {
 				if ( error || !response || response.statusCode !== 201 || !body || body.error ) {
 				if ( error || !response || response.statusCode !== 201 || !body || body.error ) {
-					console.log( '- Fehler beim Bearbeiten' + ( error ? ': ' + error : ( body ? ( body.message ? ': ' + body.message : ( body.error ? ': ' + body.error : '.' ) ) : '.' ) ) );
-					msg.replyMsg( lang.settings.save_failed );
+					console.log( '- Fehler beim Bearbeiten der Einstellungen' + ( error ? ': ' + error : ( body ? ( body.message ? ': ' + body.message : ( body.error ? ': ' + body.error : '.' ) ) : '.' ) ) );
+					msg.replyMsg( lang.settings.save_failed, {}, true );
 				}
 				}
 				else {
 				else {
 					settings = Object.assign({}, temp_settings);
 					settings = Object.assign({}, temp_settings);
@@ -289,61 +292,53 @@ function cmd_info(lang, msg, args, line) {
 	else {
 	else {
 		var owner = '*MarkusRost*';
 		var owner = '*MarkusRost*';
 		if ( msg.channel.type === 'text' && msg.guild.members.has(process.env.owner) ) owner = '<@' + process.env.owner + '>';
 		if ( msg.channel.type === 'text' && msg.guild.members.has(process.env.owner) ) owner = '<@' + process.env.owner + '>';
-		msg.channel.sendMsg( lang.disclaimer.replace( '%s', owner ) );
+		msg.sendChannel( lang.disclaimer.replace( '%s', owner ) );
 		cmd_helpserver(lang, msg);
 		cmd_helpserver(lang, msg);
 		cmd_invite(lang, msg, args, line);
 		cmd_invite(lang, msg, args, line);
 	}
 	}
 }
 }
 
 
 function cmd_helpserver(lang, msg) {
 function cmd_helpserver(lang, msg) {
-	msg.channel.sendMsg( lang.helpserver + '\n' + process.env.invite );
+	msg.sendChannel( lang.helpserver + '\n' + process.env.invite );
 }
 }
 
 
 function cmd_help(lang, msg, args, line) {
 function cmd_help(lang, msg, args, line) {
+	if ( msg.channel.type === 'text' && pause[msg.guild.id] && ( args.join('') || !msg.isAdmin() ) ) return;
 	if ( msg.isAdmin() && !( msg.guild.id in settings ) && settings !== defaultSettings ) {
 	if ( msg.isAdmin() && !( msg.guild.id in settings ) && settings !== defaultSettings ) {
 		cmd_settings(lang, msg, [], line);
 		cmd_settings(lang, msg, [], line);
 		cmd_helpserver(lang, msg);
 		cmd_helpserver(lang, msg);
 	}
 	}
 	var cmds = lang.help.list;
 	var cmds = lang.help.list;
 	var isMinecraft = ( lang.link === minecraft[lang.lang].link );
 	var isMinecraft = ( lang.link === minecraft[lang.lang].link );
+	var cmdintro = '🔹 `' + process.env.prefix + ' ';
 	if ( args.join('') ) {
 	if ( args.join('') ) {
 		if ( args.join(' ').isMention(msg.guild) ) cmd_helpserver(lang, msg);
 		if ( args.join(' ').isMention(msg.guild) ) cmd_helpserver(lang, msg);
 		else if ( args[0].toLowerCase() === 'admin' ) {
 		else if ( args[0].toLowerCase() === 'admin' ) {
 			if ( msg.channel.type !== 'text' || msg.isAdmin() ) {
 			if ( msg.channel.type !== 'text' || msg.isAdmin() ) {
-				var cmdlist = lang.help.admin + '\n';
-				for ( var i = 0; i < cmds.length; i++ ) {
-					if ( cmds[i].admin && !cmds[i].hide ) {
-						cmdlist += '🔹 `' + process.env.prefix + ' ' + cmds[i].cmd + '`\n\t' + cmds[i].desc + '\n';
-					}
-				}
-				
-				msg.channel.sendMsg( cmdlist, {split:true} );
+				var cmdlist = lang.help.admin + '\n' + cmds.filter( cmd => cmd.admin && !cmd.hide ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
+				cmdlist = cmdlist.replace( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : client.user.username ) );
+				msg.sendChannel( cmdlist, {split:true} );
 			}
 			}
 			else {
 			else {
 				msg.replyMsg( lang.help.noadmin );
 				msg.replyMsg( lang.help.noadmin );
 			}
 			}
 		}
 		}
 		else {
 		else {
-			var cmdlist = '';
-			for ( var i = 0; i < cmds.length; i++ ) {
-				if ( cmds[i].cmd.split(' ')[0] === args[0].toLowerCase() && !cmds[i].unsearchable && ( msg.channel.type !== 'text' || !cmds[i].admin || msg.isAdmin() ) && ( !cmds[i].minecraft || isMinecraft ) ) {
-					cmdlist += '🔹 `' + process.env.prefix + ' ' + cmds[i].cmd + '`\n\t' + cmds[i].desc + '\n';
-				}
-			}
-			
+			var cmdlist = cmds.filter( cmd => cmd.cmd.split(' ')[0] === args[0].toLowerCase() && !cmd.unsearchable && ( msg.channel.type !== 'text' || !cmd.admin || msg.isAdmin() ) && ( !cmd.minecraft || isMinecraft ) ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
+			cmdlist = cmdlist.replace( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : client.user.username ) );
 			if ( cmdlist === '' ) msg.reactEmoji('❓');
 			if ( cmdlist === '' ) msg.reactEmoji('❓');
-			else msg.channel.sendMsg( cmdlist, {split:true} );
+			else msg.sendChannel( cmdlist, {split:true} );
 		}
 		}
 	}
 	}
+	else if ( msg.isAdmin() && pause[msg.guild.id] ) {
+		var cmdlist = lang.help.pause + '\n' + cmds.filter( cmd => cmd.pause ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
+		cmdlist = cmdlist.replace( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : client.user.username ) );
+		msg.sendChannel( cmdlist, {split:true}, true );
+	}
 	else {
 	else {
-		var cmdlist = lang.help.all + '\n';
-		for ( var i = 0; i < cmds.length; i++ ) {
-			if ( !cmds[i].hide && !cmds[i].admin && ( !cmds[i].minecraft || isMinecraft ) ) {
-				cmdlist += '🔹 `' + process.env.prefix + ' ' + cmds[i].cmd + '`\n\t' + cmds[i].desc + '\n';
-			}
-		}
-		
-		msg.channel.sendMsg( cmdlist, {split:true} );
+		var cmdlist = lang.help.all + '\n' + cmds.filter( cmd => !cmd.hide && !cmd.admin && ( !cmd.minecraft || isMinecraft ) ).map( cmd => cmdintro + cmd.cmd + '`\n\t' + cmd.desc ).join('\n');
+		cmdlist = cmdlist.replace( /@mention/g, '@' + ( msg.channel.type === 'text' ? msg.guild.me.displayName : client.user.username ) );
+		msg.sendChannel( cmdlist, {split:true} );
 	}
 	}
 }
 }
 
 
@@ -364,7 +359,7 @@ function cmd_say(lang, msg, args, line) {
 	if ( text || imgs.length ) {
 	if ( text || imgs.length ) {
 		msg.channel.send( text, {disableEveryone:!msg.member.hasPermission(['MENTION_EVERYONE']),files:imgs} ).then( () => msg.deleteMsg(), error => {
 		msg.channel.send( text, {disableEveryone:!msg.member.hasPermission(['MENTION_EVERYONE']),files:imgs} ).then( () => msg.deleteMsg(), error => {
 			log_error(error);
 			log_error(error);
-			msg.reactEmoji('error');
+			msg.reactEmoji('error', true);
 		} );
 		} );
 	} else {
 	} else {
 		args[0] = line.split(' ')[1];
 		args[0] = line.split(' ')[1];
@@ -381,7 +376,7 @@ function cmd_test(lang, msg, args, line) {
 		if ( x < lang.test.text.length ) text = lang.test.text[x];
 		if ( x < lang.test.text.length ) text = lang.test.text[x];
 		console.log( '- Test: Voll funktionsfähig!' );
 		console.log( '- Test: Voll funktionsfähig!' );
 		var now = Date.now();
 		var now = Date.now();
-		msg.replyMsg( text ).then( edit => {
+		if ( msg.showEmbed() ) msg.replyMsg( text ).then( edit => {
 			var then = Date.now();
 			var then = Date.now();
 			var embed = new Discord.RichEmbed().setTitle( lang.test.time ).addField( 'Discord', ( then - now ) + 'ms' );
 			var embed = new Discord.RichEmbed().setTitle( lang.test.time ).addField( 'Discord', ( then - now ) + 'ms' );
 			now = Date.now();
 			now = Date.now();
@@ -403,12 +398,12 @@ function cmd_test(lang, msg, args, line) {
 					}
 					}
 				}
 				}
 				embed.addField( 'https://' + lang.link + '.gamepedia.com/', ping );
 				embed.addField( 'https://' + lang.link + '.gamepedia.com/', ping );
-				edit.edit( edit.content, embed );
+				if ( edit ) edit.edit( edit.content, embed ).catch(log_error);
 			} );
 			} );
 		} );
 		} );
 	} else {
 	} else {
 		console.log( '- Test: Pausiert!' );
 		console.log( '- Test: Pausiert!' );
-		msg.replyMsg( lang.test.pause );
+		msg.replyMsg( lang.test.pause, {}, true );
 	}
 	}
 }
 }
 
 
@@ -416,7 +411,7 @@ function cmd_invite(lang, msg, args, line) {
 	if ( args.join('') ) {
 	if ( args.join('') ) {
 		cmd_link(lang, msg, line.split(' ').slice(1).join(' '));
 		cmd_link(lang, msg, line.split(' ').slice(1).join(' '));
 	} else {
 	} else {
-		client.generateInvite(defaultPermissions).then( invite => msg.channel.sendMsg( lang.invite.bot + '\n<' + invite + '>' ), log_error );
+		client.generateInvite(defaultPermissions).then( invite => msg.sendChannel( lang.invite.bot + '\n<' + invite + '>' ), log_error );
 	}
 	}
 }
 }
 
 
@@ -426,14 +421,14 @@ async function cmd_eval(lang, msg, args, line) {
 	} catch ( error ) {
 	} catch ( error ) {
 		var text = error.name + ': ' + error.message;
 		var text = error.name + ': ' + error.message;
 	}
 	}
-	if ( text.length > 2000 ) msg.reactEmoji('✅');
-	else msg.channel.sendMsg( '```js\n' + text + '\n```', {split:{prepend:'```js\n',append:'\n```'}} );
+	if ( text.length > 2000 ) msg.reactEmoji('✅', true);
+	else msg.sendChannel( '```js\n' + text + '\n```', {split:{prepend:'```js\n',append:'\n```'}}, true );
 	if ( isDebug ) console.log( '--- EVAL START ---\n\u200b' + text.replace( /\n/g, '\n\u200b' ) + '\n--- EVAL END ---' );
 	if ( isDebug ) console.log( '--- EVAL START ---\n\u200b' + text.replace( /\n/g, '\n\u200b' ) + '\n--- EVAL END ---' );
 }
 }
 
 
 async function cmd_stop(lang, msg, args, line) {
 async function cmd_stop(lang, msg, args, line) {
 	if ( args.join(' ').split('\n')[0].isMention(msg.guild) ) {
 	if ( args.join(' ').split('\n')[0].isMention(msg.guild) ) {
-		await msg.replyMsg( 'I\'ll destroy myself now!' );
+		await msg.replyMsg( 'I\'ll destroy myself now!', {}, true );
 		await client.destroy();
 		await client.destroy();
 		console.log( '- Ich schalte mich nun aus!' );
 		console.log( '- Ich schalte mich nun aus!' );
 		setTimeout( async () => {
 		setTimeout( async () => {
@@ -446,14 +441,14 @@ async function cmd_stop(lang, msg, args, line) {
 }
 }
 
 
 function cmd_pause(lang, msg, args, line) {
 function cmd_pause(lang, msg, args, line) {
-	if ( msg.channel.type === 'text' && args.join(' ').split('\n')[0].isMention(msg.guild) ) {
+	if ( msg.channel.type === 'text' && args.join(' ').split('\n')[0].isMention(msg.guild) && ( msg.isAdmin() || msg.isOwner() ) ) {
 		if ( pause[msg.guild.id] ) {
 		if ( pause[msg.guild.id] ) {
 			delete pause[msg.guild.id];
 			delete pause[msg.guild.id];
-			console.log( '- Ich bin wieder wach!' );
-			msg.replyMsg( 'I\'m up again!' );
+			console.log( '- Pause beendet.' );
+			msg.replyMsg( lang.pause.off, {}, true );
 		} else {
 		} else {
-			msg.replyMsg( 'I\'m going to sleep now!' );
-			console.log( '- Ich lege mich nun schlafen!' );
+			msg.replyMsg( lang.pause.on, {}, true );
+			console.log( '- Pause aktiviert.' );
 			pause[msg.guild.id] = true;
 			pause[msg.guild.id] = true;
 		}
 		}
 	} else if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) {
 	} else if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) {
@@ -465,7 +460,7 @@ function cmd_delete(lang, msg, args, line) {
 	if ( msg.channel.memberPermissions(msg.member).has('MANAGE_MESSAGES') ) {
 	if ( msg.channel.memberPermissions(msg.member).has('MANAGE_MESSAGES') ) {
 		if ( /^\d+$/.test(args[0]) && parseInt(args[0], 10) + 1 > 0 ) {
 		if ( /^\d+$/.test(args[0]) && parseInt(args[0], 10) + 1 > 0 ) {
 			if ( parseInt(args[0], 10) > 99 ) {
 			if ( parseInt(args[0], 10) > 99 ) {
-				msg.replyMsg( lang.delete.big.replace( '%s', '`99`' ) );
+				msg.replyMsg( lang.delete.big.replace( '%s', '`99`' ), {}, true );
 			}
 			}
 			else {
 			else {
 				msg.channel.bulkDelete(parseInt(args[0], 10) + 1, true).then( messages => {
 				msg.channel.bulkDelete(parseInt(args[0], 10) + 1, true).then( messages => {
@@ -475,7 +470,7 @@ function cmd_delete(lang, msg, args, line) {
 			}
 			}
 		}
 		}
 		else {
 		else {
-			msg.replyMsg( lang.delete.invalid );
+			msg.replyMsg( lang.delete.invalid, {}, true );
 		}
 		}
 	}
 	}
 	else {
 	else {
@@ -512,8 +507,8 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 	}
 	}
 	else if ( ( invoke === 'random' || invoke === '🎲' || invoke === lang.search.random ) && !args.join('') && !linksuffix ) cmd_random(lang, msg, wiki);
 	else if ( ( invoke === 'random' || invoke === '🎲' || invoke === lang.search.random ) && !args.join('') && !linksuffix ) cmd_random(lang, msg, wiki);
 	else if ( ( invoke === 'overview' || invoke === lang.search.overview ) && !args.join('') && !linksuffix ) cmd_overview(lang, msg, wiki);
 	else if ( ( invoke === 'overview' || invoke === lang.search.overview ) && !args.join('') && !linksuffix ) cmd_overview(lang, msg, wiki);
-	else if ( invoke === 'page' || invoke === lang.search.page ) msg.channel.sendMsg( '<https://' + wiki + '.gamepedia.com/' + args.join('_').toTitle() + linksuffix + '>' );
-	else if ( invoke === 'search' || invoke === lang.search.search ) msg.channel.sendMsg( '<https://' + wiki + '.gamepedia.com/Special:Search/' + args.join('_').toTitle() + linksuffix + '>' );
+	else if ( invoke === 'page' || invoke === lang.search.page ) msg.sendChannel( '<https://' + wiki + '.gamepedia.com/' + args.join('_').toTitle() + linksuffix + '>' );
+	else if ( invoke === 'search' || invoke === lang.search.search ) msg.sendChannel( '<https://' + wiki + '.gamepedia.com/Special:Search/' + args.join('_').toTitle() + linksuffix + '>' );
 	else if ( invoke === 'diff' && args.join('') ) cmd_diff(lang, msg, args, wiki);
 	else if ( invoke === 'diff' && args.join('') ) cmd_diff(lang, msg, args, wiki);
 	else {
 	else {
 		msg.reactEmoji('⏳').then( function( reaction ) {
 		msg.reactEmoji('⏳').then( function( reaction ) {
@@ -529,7 +524,7 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 					}
 					}
 					else {
 					else {
 						console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 						console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-						msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/' + ( linksuffix ? title.toTitle() + linksuffix : 'Special:Search/' + title.toTitle() ) + '>' );
+						msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/' + ( linksuffix ? title.toTitle() + linksuffix : 'Special:Search/' + title.toTitle() ) + '>' );
 					}
 					}
 					
 					
 					if ( reaction ) reaction.removeEmoji();
 					if ( reaction ) reaction.removeEmoji();
@@ -556,7 +551,7 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 								if ( srbody && srbody.warnings ) log_warn(srbody.warnings);
 								if ( srbody && srbody.warnings ) log_warn(srbody.warnings);
 								if ( srerror || !srresponse || srresponse.statusCode !== 200 || !srbody || srbody.batchcomplete === undefined ) {
 								if ( srerror || !srresponse || srresponse.statusCode !== 200 || !srbody || srbody.batchcomplete === undefined ) {
 									console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( srerror ? ': ' + srerror : ( srbody ? ( srbody.error ? ': ' + srbody.error.info : '.' ) : '.' ) ) );
 									console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( srerror ? ': ' + srerror : ( srbody ? ( srbody.error ? ': ' + srbody.error.info : '.' ) : '.' ) ) );
-									msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Search/' + title.toTitle() + '>' );
+									msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Search/' + title.toTitle() + '>' );
 								}
 								}
 								else {
 								else {
 									if ( !srbody.query ) {
 									if ( !srbody.query ) {
@@ -578,13 +573,13 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 										} else embed.setThumbnail( body.query.general.logo );
 										} else embed.setThumbnail( body.query.general.logo );
 										
 										
 										if ( title.replace( /\-/g, ' ' ).toTitle().toLowerCase() === querypage.title.replace( /\-/g, ' ' ).toTitle().toLowerCase() ) {
 										if ( title.replace( /\-/g, ' ' ).toTitle().toLowerCase() === querypage.title.replace( /\-/g, ' ' ).toTitle().toLowerCase() ) {
-											msg.channel.sendMsg( pagelink, embed );
+											msg.sendChannel( pagelink, embed );
 										}
 										}
 										else if ( !srbody.continue ) {
 										else if ( !srbody.continue ) {
-											msg.channel.sendMsg( pagelink + '\n' + lang.search.infopage.replace( '%s', '`' + process.env.prefix + cmd + lang.search.page + ' ' + title + '`' ), embed );
+											msg.sendChannel( pagelink + '\n' + lang.search.infopage.replace( '%s', '`' + process.env.prefix + cmd + lang.search.page + ' ' + title + '`' ), embed );
 										}
 										}
 										else {
 										else {
-											msg.channel.sendMsg( pagelink + '\n' + lang.search.infosearch.replace( '%1$s', '`' + process.env.prefix + cmd + lang.search.page + ' ' + title + '`' ).replace( '%2$s', '`' + process.env.prefix + cmd + lang.search.search + ' ' + title + '`' ), embed );
+											msg.sendChannel( pagelink + '\n' + lang.search.infosearch.replace( '%1$s', '`' + process.env.prefix + cmd + lang.search.page + ' ' + title + '`' ).replace( '%2$s', '`' + process.env.prefix + cmd + lang.search.search + ' ' + title + '`' ), embed );
 										}
 										}
 									}
 									}
 								}
 								}
@@ -606,7 +601,7 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 								else embed.setThumbnail( pageimage );
 								else embed.setThumbnail( pageimage );
 							} else embed.setThumbnail( body.query.general.logo );
 							} else embed.setThumbnail( body.query.general.logo );
 							
 							
-							msg.channel.sendMsg( pagelink, embed );
+							msg.sendChannel( pagelink, embed );
 							
 							
 							if ( reaction ) reaction.removeEmoji();
 							if ( reaction ) reaction.removeEmoji();
 						}
 						}
@@ -616,11 +611,16 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 						var intertitle = inter.title.substr(inter.iw.length + 1);
 						var intertitle = inter.title.substr(inter.iw.length + 1);
 						var regex = inter.url.match( /^(?:https?:)?\/\/([a-z\d-]{1,30})\.gamepedia\.com\// );
 						var regex = inter.url.match( /^(?:https?:)?\/\/([a-z\d-]{1,30})\.gamepedia\.com\// );
 						if ( regex !== null && selfcall < 3 ) {
 						if ( regex !== null && selfcall < 3 ) {
-							var iwtitle = decodeURIComponent( inter.url.replace( regex[0], '' ) ).replace( /\_/g, ' ' ).replace( intertitle.replace( /\_/g, ' ' ), intertitle );
-							selfcall++;
-							cmd_link(lang, msg, iwtitle, regex[1], ' !' + regex[1] + ' ', querystring, fragment, selfcall);
+							if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) {
+								var iwtitle = decodeURIComponent( inter.url.replace( regex[0], '' ) ).replace( /\_/g, ' ' ).replace( intertitle.replace( /\_/g, ' ' ), intertitle );
+								selfcall++;
+								cmd_link(lang, msg, iwtitle, regex[1], ' !' + regex[1] + ' ', querystring, fragment, selfcall);
+							} else {
+								if ( reaction ) reaction.removeEmoji();
+								console.log( '- Abgebrochen, pausiert.' );
+							}
 						} else {
 						} else {
-							msg.channel.sendMsg( inter.url.replace( /@(here|everyone)/g, '%40$1' ) + linksuffix ).then( message => {
+							msg.sendChannel( inter.url.replace( /@(here|everyone)/g, '%40$1' ) + linksuffix ).then( message => {
 								if ( message && selfcall === 3 ) message.reactEmoji('⚠');
 								if ( message && selfcall === 3 ) message.reactEmoji('⚠');
 							} );
 							} );
 							if ( reaction ) reaction.removeEmoji();
 							if ( reaction ) reaction.removeEmoji();
@@ -639,7 +639,7 @@ function cmd_link(lang, msg, title, wiki = lang.link, cmd = ' ', querystring = '
 								if ( match !== null ) embed.setDescription( match[1].escapeFormatting().substr(0, 2000) );
 								if ( match !== null ) embed.setDescription( match[1].escapeFormatting().substr(0, 2000) );
 							}
 							}
 							
 							
-							msg.channel.sendMsg( pagelink, embed );
+							msg.sendChannel( pagelink, embed );
 						
 						
 							if ( reaction ) reaction.removeEmoji();
 							if ( reaction ) reaction.removeEmoji();
 						} );
 						} );
@@ -719,7 +719,7 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, reaction) {
 				}
 				}
 				else {
 				else {
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-					msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Contributions/' + username.toTitle() + '>' );
+					msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Contributions/' + username.toTitle() + '>' );
 				}
 				}
 				
 				
 				if ( reaction ) reaction.removeEmoji();
 				if ( reaction ) reaction.removeEmoji();
@@ -756,7 +756,7 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, reaction) {
 						}
 						}
 						else {
 						else {
 							console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( ucerror ? ': ' + ucerror : ( ucbody ? ( ucbody.error ? ': ' + ucbody.error.info : '.' ) : '.' ) ) );
 							console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( ucerror ? ': ' + ucerror : ( ucbody ? ( ucbody.error ? ': ' + ucbody.error.info : '.' ) : '.' ) ) );
-							msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Contributions/' + username.toTitle() + '>' );
+							msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Contributions/' + username.toTitle() + '>' );
 						}
 						}
 					}
 					}
 					else {
 					else {
@@ -774,7 +774,7 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, reaction) {
 							if ( blocks.length ) blocks.forEach( block => text += '\n\n**' + block[0] + '**\n' + block[1].toPlaintext() );
 							if ( blocks.length ) blocks.forEach( block => text += '\n\n**' + block[0] + '**\n' + block[1].toPlaintext() );
 						}
 						}
 						
 						
-						msg.channel.sendMsg( text, embed );
+						msg.sendChannel( text, embed );
 					}
 					}
 					
 					
 					if ( reaction ) reaction.removeEmoji();
 					if ( reaction ) reaction.removeEmoji();
@@ -794,7 +794,7 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, reaction) {
 				}
 				}
 				else {
 				else {
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-					msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/' + namespace + username.toTitle() + linksuffix + '>' );
+					msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/' + namespace + username.toTitle() + linksuffix + '>' );
 				}
 				}
 			}
 			}
 			else {
 			else {
@@ -853,7 +853,7 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, reaction) {
 						if ( isBlocked ) text += '\n\n**' + block[0] + '**\n' + block[1].toPlaintext();
 						if ( isBlocked ) text += '\n\n**' + block[0] + '**\n' + block[1].toPlaintext();
 					}
 					}
 					
 					
-					msg.channel.sendMsg( text, embed );
+					msg.sendChannel( text, embed );
 				}
 				}
 			}
 			}
 			
 			
@@ -936,7 +936,7 @@ function cmd_diff(lang, msg, args, wiki) {
 						}
 						}
 						else {
 						else {
 							console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 							console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-							msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/' + title.toTitle() + '?diff=' + relative + ( title ? '' : '&oldid=' + revision ) + '>' );
+							msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/' + title.toTitle() + '?diff=' + relative + ( title ? '' : '&oldid=' + revision ) + '>' );
 						}
 						}
 						
 						
 						if ( reaction ) reaction.removeEmoji();
 						if ( reaction ) reaction.removeEmoji();
@@ -977,14 +977,14 @@ function cmd_diffsend(lang, msg, args, wiki, reaction) {
 			}
 			}
 			else {
 			else {
 				console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 				console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-				msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Diff/' + ( args[1] ? args[1] + '/' : '' ) + args[0] + '>' );
+				msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Diff/' + ( args[1] ? args[1] + '/' : '' ) + args[0] + '>' );
 			}
 			}
 		}
 		}
 		else {
 		else {
 			if ( body.query.badrevids ) msg.replyMsg( lang.diff.badrev );
 			if ( body.query.badrevids ) msg.replyMsg( lang.diff.badrev );
 			else if ( body.query.pages && !body.query.pages['-1'] ) {
 			else if ( body.query.pages && !body.query.pages['-1'] ) {
 				var pages = Object.values(body.query.pages);
 				var pages = Object.values(body.query.pages);
-				if ( pages.length !== 1 ) msg.channel.sendMsg( '<https://' + wiki + '.gamepedia.com/Special:Diff/' + ( args[1] ? args[1] + '/' : '' ) + args[0] + '>' );
+				if ( pages.length !== 1 ) msg.sendChannel( '<https://' + wiki + '.gamepedia.com/Special:Diff/' + ( args[1] ? args[1] + '/' : '' ) + args[0] + '>' );
 				else {
 				else {
 					var title = pages[0].title;
 					var title = pages[0].title;
 					var revisions = [];
 					var revisions = [];
@@ -1018,7 +1018,7 @@ function cmd_diffsend(lang, msg, args, wiki, reaction) {
 						var text = '<' + pagelink + '>\n\n' + editor.join(' ') + '\n' + timestamp.join(' ') + '\n' + size.join(' ') + '\n' + comment.join(' ') + ( tags ? '\n' + tags.join(' ').replace( tagregex, '$2' ) : '' );
 						var text = '<' + pagelink + '>\n\n' + editor.join(' ') + '\n' + timestamp.join(' ') + '\n' + size.join(' ') + '\n' + comment.join(' ') + ( tags ? '\n' + tags.join(' ').replace( tagregex, '$2' ) : '' );
 					}
 					}
 					
 					
-					msg.channel.sendMsg( text, embed );
+					msg.sendChannel( text, embed );
 				}
 				}
 			}
 			}
 			else msg.reactEmoji('error');
 			else msg.reactEmoji('error');
@@ -1042,7 +1042,7 @@ function cmd_random(lang, msg, wiki) {
 				}
 				}
 				else {
 				else {
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-					msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Random>' );
+					msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Random>' );
 				}
 				}
 			}
 			}
 			else {
 			else {
@@ -1060,7 +1060,7 @@ function cmd_random(lang, msg, wiki) {
 					else embed.setThumbnail( pageimage );
 					else embed.setThumbnail( pageimage );
 				} else embed.setThumbnail( body.query.general.logo );
 				} else embed.setThumbnail( body.query.general.logo );
 				
 				
-				msg.channel.sendMsg( '🎲 ' + pagelink, embed );
+				msg.sendChannel( '🎲 ' + pagelink, embed );
 			}
 			}
 			
 			
 			if ( reaction ) reaction.removeEmoji();
 			if ( reaction ) reaction.removeEmoji();
@@ -1082,7 +1082,7 @@ function cmd_overview(lang, msg, wiki) {
 				}
 				}
 				else {
 				else {
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
 					console.log( '- Fehler beim Erhalten der Suchergebnisse' + ( error ? ': ' + error : ( body ? ( body.error ? ': ' + body.error.info : '.' ) : '.' ) ) );
-					msg.channel.sendErrorMsg( '<https://' + wiki + '.gamepedia.com/Special:Statistics>' );
+					msg.sendChannelError( '<https://' + wiki + '.gamepedia.com/Special:Statistics>' );
 				}
 				}
 			}
 			}
 			else if ( allSites.some( site => site.wiki_domain === body.query.general.servername ) ) {
 			else if ( allSites.some( site => site.wiki_domain === body.query.general.servername ) ) {
@@ -1109,7 +1109,7 @@ function cmd_overview(lang, msg, wiki) {
 					var text = '<' + pagelink + '>\n\n' + name.join(' ') + '\n' + created.join(' ') + '\n' + manager[0] + ' ' + manager[1].join(', ') + '\n' + official.join(' ') + '\n' + articles.join(' ') + '\n' + pages.join(' ') + '\n' + edits.join(' ') + '\n' + users.join(' ') + '\n\n*' + lang.overview.inaccurate + '*';
 					var text = '<' + pagelink + '>\n\n' + name.join(' ') + '\n' + created.join(' ') + '\n' + manager[0] + ' ' + manager[1].join(', ') + '\n' + official.join(' ') + '\n' + articles.join(' ') + '\n' + pages.join(' ') + '\n' + edits.join(' ') + '\n' + users.join(' ') + '\n\n*' + lang.overview.inaccurate + '*';
 				}
 				}
 				
 				
-				msg.channel.sendMsg( text, embed );
+				msg.sendChannel( text, embed );
 			}
 			}
 			else {
 			else {
 				console.log( '- Dieses Wiki ist nicht gelistet: ' + wiki + '.gamepedia.com' )
 				console.log( '- Dieses Wiki ist nicht gelistet: ' + wiki + '.gamepedia.com' )
@@ -1137,7 +1137,7 @@ function cmd_bug(lang, mclang, msg, args, title, cmd, querystring, fragment) {
 								msg.reactEmoji('🤷');
 								msg.reactEmoji('🤷');
 							}
 							}
 							else if ( body.errorMessages.includes( 'You do not have the permission to see the specified issue.' ) ) {
 							else if ( body.errorMessages.includes( 'You do not have the permission to see the specified issue.' ) ) {
-								msg.channel.sendMsg( mclang.bug.private + '\nhttps://bugs.mojang.com/browse/' + project + args[0] );
+								msg.sendChannel( mclang.bug.private + '\nhttps://bugs.mojang.com/browse/' + project + args[0] );
 							}
 							}
 							else {
 							else {
 								console.log( '- Fehler beim Erhalten der Zusammenfassung' + ( error ? ': ' + error : ( body ? ( body.errorMessages ? ': ' + body.errorMessages.join(' - ') : '.' ) : '.' ) ) );
 								console.log( '- Fehler beim Erhalten der Zusammenfassung' + ( error ? ': ' + error : ( body ? ( body.errorMessages ? ': ' + body.errorMessages.join(' - ') : '.' ) : '.' ) ) );
@@ -1149,7 +1149,7 @@ function cmd_bug(lang, mclang, msg, args, title, cmd, querystring, fragment) {
 					else {
 					else {
 						console.log( '- Fehler beim Erhalten der Zusammenfassung' + ( error ? ': ' + error : ( body ? ': ' + body.message : '.' ) ) );
 						console.log( '- Fehler beim Erhalten der Zusammenfassung' + ( error ? ': ' + error : ( body ? ': ' + body.message : '.' ) ) );
 						if ( body && body['status-code'] === 404 ) msg.reactEmoji('error');
 						if ( body && body['status-code'] === 404 ) msg.reactEmoji('error');
-						else msg.channel.sendErrorMsg( 'https://bugs.mojang.com/browse/' + project + args[0] );
+						else msg.sendChannelError( 'https://bugs.mojang.com/browse/' + project + args[0] );
 					}
 					}
 				}
 				}
 				else {
 				else {
@@ -1159,7 +1159,7 @@ function cmd_bug(lang, mclang, msg, args, title, cmd, querystring, fragment) {
 					else {
 					else {
 						var status = '**' + ( body.fields.resolution ? body.fields.resolution.name : body.fields.status.name ) + ':** ';
 						var status = '**' + ( body.fields.resolution ? body.fields.resolution.name : body.fields.status.name ) + ':** ';
 						var fixed = ( body.fields.resolution && body.fields.fixVersions.length ? mclang.bug.fixed + ' ' + body.fields.fixVersions.map( v => v.name ).join(', ') : '' );
 						var fixed = ( body.fields.resolution && body.fields.fixVersions.length ? mclang.bug.fixed + ' ' + body.fields.fixVersions.map( v => v.name ).join(', ') : '' );
-						msg.channel.sendMsg( status + body.fields.summary.replace( /@(here|everyone)/g, '%40$1' ) + '\n<https://bugs.mojang.com/browse/' + body.key + '>\n' + fixed );
+						msg.sendChannel( status + body.fields.summary.replace( /@(here|everyone)/g, '%40$1' ) + '\n<https://bugs.mojang.com/browse/' + body.key + '>\n' + fixed );
 					}
 					}
 				}
 				}
 				
 				
@@ -1179,7 +1179,7 @@ function cmd_befehl(lang, mclang, msg, befehl, args, title, cmd, querystring, fr
 	if ( aliasCmd in mclang.cmd.list ) {
 	if ( aliasCmd in mclang.cmd.list ) {
 		var regex = new RegExp('/' + aliasCmd, 'g');
 		var regex = new RegExp('/' + aliasCmd, 'g');
 		var cmdSyntax = mclang.cmd.list[aliasCmd].join( '\n' ).replace( regex, '/' + befehl );
 		var cmdSyntax = mclang.cmd.list[aliasCmd].join( '\n' ).replace( regex, '/' + befehl );
-		msg.channel.sendMsg( '```md\n' + cmdSyntax + '```<https://' + mclang.link + '.gamepedia.com/' + mclang.cmd.page + aliasCmd + '>', {split:{maxLength:2000,prepend:'```md\n',append:'```'}} );
+		msg.sendChannel( '```md\n' + cmdSyntax + '```<https://' + mclang.link + '.gamepedia.com/' + mclang.cmd.page + aliasCmd + '>', {split:{maxLength:2000,prepend:'```md\n',append:'```'}} );
 	}
 	}
 	else {
 	else {
 		msg.reactEmoji('❓');
 		msg.reactEmoji('❓');
@@ -1201,7 +1201,7 @@ function cmd_befehl2(lang, mclang, msg, args, title, cmd, querystring, fragment)
 
 
 function cmd_multiline(lang, msg, args, line) {
 function cmd_multiline(lang, msg, args, line) {
 	if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) {
 	if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) {
-		if ( msg.isAdmin() ) msg.reactEmoji('error');
+		if ( msg.isAdmin() ) msg.reactEmoji('error', true);
 		else msg.reactEmoji('❌');
 		else msg.reactEmoji('❌');
 	}
 	}
 }
 }
@@ -1216,8 +1216,8 @@ function cmd_get(lang, msg, args, line) {
 	if ( /^\d+$/.test(id) ) {
 	if ( /^\d+$/.test(id) ) {
 		if ( client.guilds.has(id) ) {
 		if ( client.guilds.has(id) ) {
 			var guild = client.guilds.get(id);
 			var guild = client.guilds.get(id);
-			var guildname = ['Guild:', guild.name + ' `' + guild.id + '`'];
-			var guildowner = ['Owner:', guild.owner.user.tag + ' `' + guild.ownerID + '` ' + guild.owner.toString()];
+			var guildname = ['Guild:', guild.name.escapeFormatting() + ' `' + guild.id + '`' + ( pause[guild.id] ? '\\*' : '' )];
+			var guildowner = ['Owner:', guild.owner.user.tag.escapeFormatting() + ' `' + guild.ownerID + '` ' + guild.owner.toString()];
 			var guildpermissions = ['Missing permissions:', ( guild.me.permissions.has(defaultPermissions) ? '*none*' : '`' + guild.me.permissions.missing(defaultPermissions).join('`, `') + '`' )];
 			var guildpermissions = ['Missing permissions:', ( guild.me.permissions.has(defaultPermissions) ? '*none*' : '`' + guild.me.permissions.missing(defaultPermissions).join('`, `') + '`' )];
 			var guildsettings = ['Settings:', ( guild.id in settings ? '```json\n' + JSON.stringify( settings[guild.id], null, '\t' ) + '\n```' : '*default*' )];
 			var guildsettings = ['Settings:', ( guild.id in settings ? '```json\n' + JSON.stringify( settings[guild.id], null, '\t' ) + '\n```' : '*default*' )];
 			if ( msg.showEmbed() ) {
 			if ( msg.showEmbed() ) {
@@ -1228,15 +1228,15 @@ function cmd_get(lang, msg, args, line) {
 				var embed = {};
 				var embed = {};
 				var text = guildname.join(' ') + '\n' + guildowner.join(' ') + '\n' + guildpermissions.join(' ') + '\n' + guildsettings.join(' ');
 				var text = guildname.join(' ') + '\n' + guildowner.join(' ') + '\n' + guildpermissions.join(' ') + '\n' + guildsettings.join(' ');
 			}
 			}
-			msg.channel.sendMsg( text, embed );
+			msg.sendChannel( text, embed, true );
 		} else if ( client.guilds.some( guild => guild.members.has(id) ) ) {
 		} else if ( client.guilds.some( guild => guild.members.has(id) ) ) {
 			var username = [];
 			var username = [];
 			var guildlist = ['Guilds:'];
 			var guildlist = ['Guilds:'];
 			var guilds = client.guilds.filter( guild => guild.members.has(id) )
 			var guilds = client.guilds.filter( guild => guild.members.has(id) )
 			guildlist.push('\n' + guilds.map( function(guild) {
 			guildlist.push('\n' + guilds.map( function(guild) {
 				var member = guild.members.get(id);
 				var member = guild.members.get(id);
-				if ( !username.length ) username.push('User:', member.user.tag + ' `' + member.id + '` ' + member.toString());
-				return guild.name + ' `' + guild.id + '`' + ( member.permissions.has('MANAGE_GUILD') ? '\\*' : '' );
+				if ( !username.length ) username.push('User:', member.user.tag.escapeFormatting() + ' `' + member.id + '` ' + member.toString());
+				return guild.name.escapeFormatting() + ' `' + guild.id + '`' + ( member.permissions.has('MANAGE_GUILD') ? '\\*' : '' );
 			} ).join('\n'));
 			} ).join('\n'));
 			if ( guildlist[1].length > 1000 ) guildlist[1] = guilds.size;
 			if ( guildlist[1].length > 1000 ) guildlist[1] = guilds.size;
 			if ( msg.showEmbed() ) {
 			if ( msg.showEmbed() ) {
@@ -1247,11 +1247,11 @@ function cmd_get(lang, msg, args, line) {
 				var embed = {};
 				var embed = {};
 				var text = username.join(' ') + '\n' + guildlist.join(' ');
 				var text = username.join(' ') + '\n' + guildlist.join(' ');
 			}
 			}
-			msg.channel.sendMsg( text, embed );
+			msg.sendChannel( text, embed, true );
 		} else if ( client.guilds.some( guild => guild.channels.filter( chat => chat.type === 'text' ).has(id) ) ) {
 		} else if ( client.guilds.some( guild => guild.channels.filter( chat => chat.type === 'text' ).has(id) ) ) {
 			var channel = client.guilds.find( guild => guild.channels.filter( chat => chat.type === 'text' ).has(id) ).channels.get(id);
 			var channel = client.guilds.find( guild => guild.channels.filter( chat => chat.type === 'text' ).has(id) ).channels.get(id);
-			var channelguild = ['Guild:', channel.guild.name + ' `' + channel.guild.id + '`'];
-			var channelname = ['Channel:', '#' + channel.name + ' `' + channel.id + '` ' + channel.toString()];
+			var channelguild = ['Guild:', channel.guild.name.escapeFormatting() + ' `' + channel.guild.id + '`' + ( pause[channel.guild.id] ? '\\*' : '' )];
+			var channelname = ['Channel:', '#' + channel.name.escapeFormatting() + ' `' + channel.id + '` ' + channel.toString()];
 			var channelpermissions = ['Missing permissions:', ( channel.memberPermissions(channel.guild.me).has(defaultPermissions) ? '*none*' : '`' + channel.memberPermissions(channel.guild.me).missing(defaultPermissions).join('`, `') + '`' )];
 			var channelpermissions = ['Missing permissions:', ( channel.memberPermissions(channel.guild.me).has(defaultPermissions) ? '*none*' : '`' + channel.memberPermissions(channel.guild.me).missing(defaultPermissions).join('`, `') + '`' )];
 			var channelwiki = ['Default Wiki:', 'https://' + ( channel.guild.id in settings ? ( settings[channel.guild.id].channels && channel.id in settings[channel.guild.id].channels ? settings[channel.guild.id].channels[channel.id] : settings[channel.guild.id].wiki ) : settings['default'].wiki ) + '.gamepedia.com/'];
 			var channelwiki = ['Default Wiki:', 'https://' + ( channel.guild.id in settings ? ( settings[channel.guild.id].channels && channel.id in settings[channel.guild.id].channels ? settings[channel.guild.id].channels[channel.id] : settings[channel.guild.id].wiki ) : settings['default'].wiki ) + '.gamepedia.com/'];
 			if ( msg.showEmbed() ) {
 			if ( msg.showEmbed() ) {
@@ -1262,8 +1262,8 @@ function cmd_get(lang, msg, args, line) {
 				var embed = {};
 				var embed = {};
 				var text = channelguild.join(' ') + '\n' + channelname.join(' ') + '\n' + channelpermissions.join(' ') + '\n' + channelwiki[0] + ' <' + channelwiki[1] + '>';
 				var text = channelguild.join(' ') + '\n' + channelname.join(' ') + '\n' + channelpermissions.join(' ') + '\n' + channelwiki[0] + ' <' + channelwiki[1] + '>';
 			}
 			}
-			msg.channel.sendMsg( text, embed );
-		} else msg.replyMsg( 'I couldn\'t find a result for `' + id + '`' );
+			msg.sendChannel( text, embed, true );
+		} else msg.replyMsg( 'I couldn\'t find a result for `' + id + '`', {}, true );
 	} else if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) cmd_link(lang, msg, line.split(' ').slice(1).join(' '));
 	} else if ( msg.channel.type !== 'text' || !pause[msg.guild.id] ) cmd_link(lang, msg, line.split(' ').slice(1).join(' '));
 }
 }
 
 
@@ -1348,45 +1348,56 @@ String.prototype.escapeFormatting = function() {
 	return this.replace( /(`|_|\*|~|<|>|{|}|@|\/\/|\|)/g, '\\$1' );
 	return this.replace( /(`|_|\*|~|<|>|{|}|@|\/\/|\|)/g, '\\$1' );
 };
 };
 
 
-Discord.Message.prototype.reactEmoji = function(name) {
-	var emoji = '440871715938238494';
-	switch ( name ) {
-		case 'nowiki':
-			emoji = '505884572001763348';
-			break;
-		case 'error':
-			emoji = '440871715938238494';
-			break;
-		case 'support':
-			emoji = '448222377009086465';
-			break;
-		case 'oppose':
-			emoji = '448222455425794059';
-			break;
-		default:
-			emoji = name;
+Discord.Message.prototype.reactEmoji = function(name, ignorePause = false) {
+	if ( this.channel.type !== 'text' || !pause[this.guild.id] || ( ignorePause && ( this.isAdmin() || this.isOwner() ) ) ) {
+		var emoji = '440871715938238494';
+		switch ( name ) {
+			case 'nowiki':
+				emoji = '505884572001763348';
+				break;
+			case 'error':
+				emoji = '440871715938238494';
+				break;
+			case 'support':
+				emoji = '448222377009086465';
+				break;
+			case 'oppose':
+				emoji = '448222455425794059';
+				break;
+			default:
+				emoji = name;
+		}
+		return this.react(emoji).catch(log_error);
+	} else {
+		console.log( '- Abgebrochen, pausiert.' );
+		return Promise.resolve();
 	}
 	}
-	return this.react(emoji).catch(log_error);
 };
 };
 
 
 Discord.MessageReaction.prototype.removeEmoji = function() {
 Discord.MessageReaction.prototype.removeEmoji = function() {
 	return this.remove().catch(log_error);
 	return this.remove().catch(log_error);
 };
 };
 
 
-Discord.Channel.prototype.sendMsg = function(content, options) {
-	return this.send(content, options).catch(log_error);
-};
-
-Discord.User.prototype.sendMsg = function(content, options) {
-	return this.send(content, options).catch(log_error);
+Discord.Message.prototype.sendChannel = function(content, options, ignorePause = false) {
+	if ( this.channel.type !== 'text' || !pause[this.guild.id] || ( ignorePause && ( this.isAdmin() || this.isOwner() ) ) ) {
+		return this.channel.send(content, options).catch(log_error);
+	} else {
+		console.log( '- Abgebrochen, pausiert.' );
+		return Promise.resolve();
+	}
 };
 };
 
 
-Discord.Channel.prototype.sendErrorMsg = function(content, options) {
-	return this.send(content, options).then( message => message.reactEmoji('error'), log_error );
+Discord.Message.prototype.sendChannelError = function(content, options) {
+	return this.channel.send(content, options).then( message => message.reactEmoji('error'), log_error );
 };
 };
 
 
-Discord.Message.prototype.replyMsg = function(content, options) {
-	return this.reply(content, options).catch(log_error);
+Discord.Message.prototype.replyMsg = function(content, options, ignorePause = false) {
+	if ( this.channel.type !== 'text' || !pause[this.guild.id] || ( ignorePause && ( this.isAdmin() || this.isOwner() ) ) ) {
+		return this.reply(content, options).catch(log_error);
+	} else {
+		console.log( '- Abgebrochen, pausiert.' );
+		return Promise.resolve();
+	}
 };
 };
 
 
 Discord.Message.prototype.deleteMsg = function(timeout = 0) {
 Discord.Message.prototype.deleteMsg = function(timeout = 0) {
@@ -1410,7 +1421,7 @@ client.on( 'message', msg => {
 	if ( !ready.allSites && allSites === defaultSites ) getAllSites();
 	if ( !ready.allSites && allSites === defaultSites ) getAllSites();
 	var setting = Object.assign({}, settings['default']);
 	var setting = Object.assign({}, settings['default']);
 	if ( settings === defaultSettings ) {
 	if ( settings === defaultSettings ) {
-		msg.channel.sendMsg( '⚠ **Limited Functionality** ⚠\nNo settings found, please contact the bot owner!\n' + process.env.invite );
+		msg.sendChannel( '⚠ **Limited Functionality** ⚠\nNo settings found, please contact the bot owner!\n' + process.env.invite, {}, true );
 	} else if ( channel.type === 'text' && msg.guild.id in settings ) setting = Object.assign({}, settings[msg.guild.id]);
 	} else if ( channel.type === 'text' && msg.guild.id in settings ) setting = Object.assign({}, settings[msg.guild.id]);
 	var lang = Object.assign({}, i18n[setting.lang]);
 	var lang = Object.assign({}, i18n[setting.lang]);
 	lang.link = setting.wiki;
 	lang.link = setting.wiki;
@@ -1453,7 +1464,7 @@ client.on( 'message', msg => {
 					count++;
 					count++;
 					console.log( '- Nachricht enthält zu viele Befehle!' );
 					console.log( '- Nachricht enthält zu viele Befehle!' );
 					msg.reactEmoji('⚠');
 					msg.reactEmoji('⚠');
-					channel.sendErrorMsg( lang.limit.replace( '%s', author.toString() ), {} );
+					msg.sendChannelError( lang.limit.replace( '%s', author.toString() ) );
 				}
 				}
 			} );
 			} );
 		}
 		}
@@ -1528,7 +1539,7 @@ client.on( 'guildDelete', guild => {
 			json: true
 			json: true
 		}, function( error, response, body ) {
 		}, function( error, response, body ) {
 			if ( error || !response || response.statusCode !== 201 || !body || body.error ) {
 			if ( error || !response || response.statusCode !== 201 || !body || body.error ) {
-				console.log( '- Fehler beim Bearbeiten' + ( error ? ': ' + error : ( body ? ( body.message ? ': ' + body.message : ( body.error ? ': ' + body.error : '.' ) ) : '.' ) ) );
+				console.log( '- Fehler beim Entfernen der Einstellungen' + ( error ? ': ' + error : ( body ? ( body.message ? ': ' + body.message : ( body.error ? ': ' + body.error : '.' ) ) : '.' ) ) );
 			}
 			}
 			else {
 			else {
 				settings = Object.assign({}, temp_settings);
 				settings = Object.assign({}, temp_settings);

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "discord-wiki-bot",
   "name": "discord-wiki-bot",
-  "version": "1.1.3",
+  "version": "1.2.0",
   "description": "Wiki-Bot is a bot for Discord with the purpose to easily link to Gamepedia wikis. He resolves redirects and follows interwiki links.",
   "description": "Wiki-Bot is a bot for Discord with the purpose to easily link to Gamepedia wikis. He resolves redirects and follows interwiki links.",
   "main": "main.js",
   "main": "main.js",
   "scripts": {
   "scripts": {