1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-01-31 09:09:00 +03:00

Unhardcoded bot mention + some small fixes (#7)

Co-authored-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Macintxsh 2022-12-05 17:04:27 +03:00 committed by GitHub
parent c02f503557
commit 1258496697
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 467 additions and 365 deletions

1
.gitignore vendored
View file

@ -6,3 +6,4 @@ obj/
/packages/ /packages/
riderModule.iml riderModule.iml
/_ReSharper.Caches/ /_ReSharper.Caches/
/.vs/

View file

@ -1,4 +1,4 @@
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Text; using System.Text;
using Discord; using Discord;
using Discord.WebSocket; using Discord.WebSocket;
@ -21,8 +21,7 @@ public static class Boyfriend {
}; };
private static readonly List<Tuple<Game, TimeSpan>> ActivityList = new() { private static readonly List<Tuple<Game, TimeSpan>> ActivityList = new() {
Tuple.Create(new Game("UNDEAD CORPORATION - Everything will freeze", ActivityType.Listening), Tuple.Create(new Game("UNDEAD CORPORATION - Everything will freeze", ActivityType.Listening), new TimeSpan(0, 3, 18)),
new TimeSpan(0, 3, 18)),
Tuple.Create(new Game("Xi - Blue Zenith", ActivityType.Listening), new TimeSpan(0, 4, 16)), Tuple.Create(new Game("Xi - Blue Zenith", ActivityType.Listening), new TimeSpan(0, 4, 16)),
Tuple.Create(new Game("Kurokotei - Scattered Faith", ActivityType.Listening), new TimeSpan(0, 8, 21)), Tuple.Create(new Game("Kurokotei - Scattered Faith", ActivityType.Listening), new TimeSpan(0, 8, 21)),
Tuple.Create(new Game("Splatoon 3 - Candy-Coated Rocks", ActivityType.Listening), new TimeSpan(0, 2, 39)), Tuple.Create(new Game("Splatoon 3 - Candy-Coated Rocks", ActivityType.Listening), new TimeSpan(0, 2, 39)),

View file

@ -1,4 +1,4 @@
using System.Text; using System.Text;
using Boyfriend.Commands; using Boyfriend.Commands;
using Discord; using Discord;
using Discord.Commands; using Discord.Commands;
@ -13,7 +13,7 @@ public sealed class CommandProcessor {
private const string NoAccess = ":no_entry_sign: "; private const string NoAccess = ":no_entry_sign: ";
private const string CantInteract = ":vertical_traffic_light: "; private const string CantInteract = ":vertical_traffic_light: ";
private const string Mention = "<@855023234407333888>"; private static readonly string Mention = $"<@{Boyfriend.Client.CurrentUser.Id}>";
public static readonly ICommand[] Commands = { public static readonly ICommand[] Commands = {
new BanCommand(), new ClearCommand(), new HelpCommand(), new BanCommand(), new ClearCommand(), new HelpCommand(),

View file

@ -1,360 +1,462 @@
<?xml version="1.0" encoding="utf-8"?>
<root> <root>
<resheader name="resmimetype"> <!--
<value>text/microsoft-resx</value> Microsoft ResX Schema
</resheader>
<resheader name="version"> Version 2.0
<value>1.3</value>
</resheader> The primary goals of this format is to allow a simple XML format
<resheader name="reader"> that is mostly human readable. The generation and parsing of the
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, various data types are done through the TypeConverter classes
PublicKeyToken=b77a5c561934e089 associated with the data types.
</value>
</resheader> Example:
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, ... ado.net/XML headers & schema ...
PublicKeyToken=b77a5c561934e089 <resheader name="resmimetype">text/microsoft-resx</resheader>
</value> <resheader name="version">2.0</resheader>
</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<data name="Ready" xml:space="preserve"> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<value>{0}я родился!</value> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
</data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="CachedMessageDeleted" xml:space="preserve"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>вырезано {0} в канале {1}: {2}</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="CachedMessageEdited" xml:space="preserve"> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>переделано {0}: {1} -&gt; {2}</value> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
</data> <comment>This is a comment</comment>
<data name="DefaultWelcomeMessage" xml:space="preserve"> </data>
<value>{0}, добро пожаловать на сервер {1}</value>
</data> There are any number of "resheader" rows that contain simple
<data name="Beep1" xml:space="preserve"> name/value pairs.
<value>брах! </value>
</data> Each data row contains a name, and value. The row also contains a
<data name="Beep2" xml:space="preserve"> type or mimetype. Type corresponds to a .NET class that support
<value>брох! </value> text/value conversion through the TypeConverter architecture.
</data> Classes that don't support this are serialized and stored with the
<data name="Beep3" xml:space="preserve"> mimetype set.
<value>брух! </value>
</data> The mimetype is used for serialized objects, and tells the
<data name="CommandNoPermissionBot" xml:space="preserve"> ResXResourceReader how to depersist the object. This is currently not
<value>у меня прав нету, сделай что нибудь.</value> extensible. For a given mimetype the value must be set accordingly:
</data>
<data name="CommandNoPermissionUser" xml:space="preserve"> Note - application/x-microsoft.net.object.binary.base64 is the format
<value>у тебя прав нету, твои проблемы.</value> that the ResXResourceWriter will generate, however the reader can
</data> read any of the formats listed below.
<data name="YouWereBanned" xml:space="preserve">
<value>здарова, тебя крч забанил {0} на сервере {1} за {2}</value> mimetype: application/x-microsoft.net.object.binary.base64
</data> value : The object must be serialized with
<data name="PunishmentExpired" xml:space="preserve"> : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
<value>время бана закончиловсь</value> : and then encoded with base64 encoding.
</data>
<data name="ClearAmountTooSmall" xml:space="preserve"> mimetype: application/x-microsoft.net.object.soap.base64
<value>ты выбрал менее {0} сообщений</value> value : The object must be serialized with
</data> : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
<data name="ClearAmountTooLarge" xml:space="preserve"> : and then encoded with base64 encoding.
<value>ты выбрал более {0} сообщений</value>
</data> mimetype: application/x-microsoft.net.object.bytearray.base64
<data name="CommandHelp" xml:space="preserve"> value : The object must be serialized into a byte array
<value>туториал по приколам:</value> : using a System.ComponentModel.TypeConverter
</data> : and then encoded with base64 encoding.
<data name="YouWereKicked" xml:space="preserve"> -->
<value>здарова, тебя крч кикнул {0} на сервере {1} за {2}</value> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</data> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<data name="Milliseconds" xml:space="preserve"> <xsd:element name="root" msdata:IsDataSet="true">
<value>мс</value> <xsd:complexType>
</data> <xsd:choice maxOccurs="unbounded">
<data name="MemberAlreadyMuted" xml:space="preserve"> <xsd:element name="metadata">
<value>шизоид уже замучен!</value> <xsd:complexType>
</data> <xsd:sequence>
<data name="ChannelNotSpecified" xml:space="preserve"> <xsd:element name="value" type="xsd:string" minOccurs="0" />
<value>*тут ничего нет*</value> </xsd:sequence>
</data> <xsd:attribute name="name" use="required" type="xsd:string" />
<data name="RoleNotSpecified" xml:space="preserve"> <xsd:attribute name="type" type="xsd:string" />
<value>*тут ничего нет*</value> <xsd:attribute name="mimetype" type="xsd:string" />
</data> <xsd:attribute ref="xml:space" />
<data name="CurrentSettings" xml:space="preserve"> </xsd:complexType>
<value>настройки:</value> </xsd:element>
</data> <xsd:element name="assembly">
<data name="SettingsLang" xml:space="preserve"> <xsd:complexType>
<value>язык</value> <xsd:attribute name="alias" type="xsd:string" />
</data> <xsd:attribute name="name" type="xsd:string" />
<data name="SettingsPrefix" xml:space="preserve"> </xsd:complexType>
<value>префикс</value> </xsd:element>
</data> <xsd:element name="data">
<data name="SettingsRemoveRolesOnMute" xml:space="preserve"> <xsd:complexType>
<value>удалять звание при муте</value> <xsd:sequence>
</data> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<data name="SettingsSendWelcomeMessages" xml:space="preserve"> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
<value>разглашать о том что пришел новый шизоид</value> </xsd:sequence>
</data> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<data name="SettingsMuteRole" xml:space="preserve"> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<value>роль замученного</value> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</data> <xsd:attribute ref="xml:space" />
<data name="SettingsBotLogChannel" xml:space="preserve"> </xsd:complexType>
<value>канал бот-уведомлений</value> </xsd:element>
</data> <xsd:element name="resheader">
<data name="LanguageNotSupported" xml:space="preserve"> <xsd:complexType>
<value>такого языка нету, ты шо</value> <xsd:sequence>
</data> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<data name="Yes" xml:space="preserve"> </xsd:sequence>
<value>да</value> <xsd:attribute name="name" type="xsd:string" use="required" />
</data> </xsd:complexType>
<data name="No" xml:space="preserve"> </xsd:element>
<value>нъет</value> </xsd:choice>
</data> </xsd:complexType>
<data name="UserNotBanned" xml:space="preserve"> </xsd:element>
<value>шизик не забанен</value> </xsd:schema>
</data> <resheader name="resmimetype">
<data name="MemberNotMuted" xml:space="preserve"> <value>text/microsoft-resx</value>
<value>шизоид не замучен!</value> </resheader>
</data> <resheader name="version">
<data name="RolesReturned" xml:space="preserve"> <value>2.0</value>
<value>кто-то решил поумничать и обошел роль мута. я ее вернул.</value> </resheader>
</data> <resheader name="reader">
<data name="SettingsWelcomeMessage" xml:space="preserve"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>приветствие</value> </resheader>
</data> <resheader name="writer">
<data name="ClearAmountInvalid" xml:space="preserve"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>выбери число от {0} до {1} вместо {2}!</value> </resheader>
</data> <data name="Ready" xml:space="preserve">
<data name="FeedbackUserBanned" xml:space="preserve"> <value>{0}я родился!</value>
<value>забанен {0} на{1}: {2}</value> </data>
</data> <data name="CachedMessageDeleted" xml:space="preserve">
<data name="UserNotInGuild" xml:space="preserve"> <value>вырезано {0} в канале {1}: {2}</value>
<value>шизик не на этом сервере</value> </data>
</data> <data name="CachedMessageEdited" xml:space="preserve">
<data name="SettingDoesntExist" xml:space="preserve"> <value>переделано {0}: {1} -&gt; {2}</value>
<value>такой прикол не существует</value> </data>
</data> <data name="DefaultWelcomeMessage" xml:space="preserve">
<data name="SettingsReceiveStartupMessages" xml:space="preserve"> <value>{0}, добро пожаловать на сервер {1}</value>
<value>получать инфу о рождении бота</value> </data>
</data> <data name="Beep1" xml:space="preserve">
<data name="InvalidSettingValue" xml:space="preserve"> <value>брах! </value>
<value>криво настроил прикол, давай по новой</value> </data>
</data> <data name="Beep2" xml:space="preserve">
<data name="InvalidRole" xml:space="preserve"> <value>брох! </value>
<value>этого звания нету, ты шо</value> </data>
</data> <data name="Beep3" xml:space="preserve">
<data name="InvalidChannel" xml:space="preserve"> <value>брух! </value>
<value>этого канала нету, ты шо</value> </data>
</data> <data name="CommandNoPermissionBot" xml:space="preserve">
<data name="RoleRemovalFailed" xml:space="preserve"> <value>у меня прав нету, сделай что нибудь.</value>
<value>я не украл звание {0} в связи с ошибкой! {1}</value> </data>
</data> <data name="CommandNoPermissionUser" xml:space="preserve">
<data name="DurationRequiredForTimeOuts" xml:space="preserve"> <value>у тебя прав нету, твои проблемы.</value>
<value>ты шо, мутить больше чем на 28 дней таймаут не разрешает, вот настроишь роль мута, тогда поговорим</value> </data>
</data> <data name="YouWereBanned" xml:space="preserve">
<data name="CannotTimeOutBot" xml:space="preserve"> <value>здарова, тебя крч забанил {0} на сервере {1} за {2}</value>
<value>я не могу замутить ботов, сделай что нибудь</value> </data>
</data> <data name="PunishmentExpired" xml:space="preserve">
<data name="SettingsStarterRole" xml:space="preserve"> <value>время бана закончиловсь</value>
<value>базовое звание</value> </data>
</data> <data name="ClearAmountTooSmall" xml:space="preserve">
<data name="EventCreated" xml:space="preserve"> <value>ты выбрал менее {0} сообщений</value>
<value>{0} приготовил новый квест {1}! он пройдёт в {2} и начнётся &lt;t:{3}:R&gt;!{4}</value> </data>
</data> <data name="ClearAmountTooLarge" xml:space="preserve">
<data name="SettingsEventNotificationRole" xml:space="preserve"> <value>ты выбрал более {0} сообщений</value>
<value>роль для уведомлений о создании квеста</value> </data>
</data> <data name="CommandHelp" xml:space="preserve">
<data name="SettingsEventNotificationChannel" xml:space="preserve"> <value>туториал по приколам:</value>
<value>канал для уведомлений о квестах</value> </data>
</data> <data name="YouWereKicked" xml:space="preserve">
<data name="SettingsEventStartedReceivers" xml:space="preserve"> <value>здарова, тебя крч кикнул {0} на сервере {1} за {2}</value>
<value>получатели уведомлений о начале квеста</value> </data>
</data> <data name="Milliseconds" xml:space="preserve">
<data name="EventStarted" xml:space="preserve"> <value>мс</value>
<value>{0}квест {1} начинается в {2}!</value> </data>
</data> <data name="MemberAlreadyMuted" xml:space="preserve">
<data name="SettingsFrowningFace" xml:space="preserve"> <value>шизоид уже замучен!</value>
<value>оъмъомоъемъъео(((( </value> </data>
</data> <data name="ChannelNotSpecified" xml:space="preserve">
<data name="EventCancelled" xml:space="preserve"> <value>*тут ничего нет*</value>
<value>квест {0} отменен!{1}</value> </data>
</data> <data name="RoleNotSpecified" xml:space="preserve">
<data name="EventCompleted" xml:space="preserve"> <value>*тут ничего нет*</value>
<value>квест {0} завершен! все это длилось {1}</value> </data>
</data> <data name="CurrentSettings" xml:space="preserve">
<data name="Ever" xml:space="preserve"> <value>настройки:</value>
<value>всегда</value> </data>
</data> <data name="SettingsLang" xml:space="preserve">
<data name="FeedbackMessagesCleared" xml:space="preserve"> <value>язык</value>
<value>удалено {0} сообщений в {1}</value> </data>
</data> <data name="SettingsPrefix" xml:space="preserve">
<data name="FeedbackMemberKicked" xml:space="preserve"> <value>префикс</value>
<value>выгнан {0}: {1}</value> </data>
</data> <data name="SettingsRemoveRolesOnMute" xml:space="preserve">
<data name="FeedbackMemberMuted" xml:space="preserve"> <value>удалять звание при муте</value>
<value>замучен {0} на{1}: {2}</value> </data>
</data> <data name="SettingsSendWelcomeMessages" xml:space="preserve">
<data name="FeedbackUserUnbanned" xml:space="preserve"> <value>разглашать о том что пришел новый шизоид</value>
<value>раззабанен {0}: {1}</value> </data>
</data> <data name="SettingsMuteRole" xml:space="preserve">
<data name="FeedbackMemberUnmuted" xml:space="preserve"> <value>роль замученного</value>
<value>раззамучен {0}: {1}</value> </data>
</data> <data name="SettingsBotLogChannel" xml:space="preserve">
<data name="SettingsNothingChanged" xml:space="preserve"> <value>канал бот-уведомлений</value>
<value>ты все сломал! значение прикола `{0}` и так {1}</value> </data>
</data> <data name="LanguageNotSupported" xml:space="preserve">
<data name="SettingNotDefined" xml:space="preserve"> <value>такого языка нету, ты шо</value>
<value>*тут ничего нет*</value> </data>
</data> <data name="Yes" xml:space="preserve">
<data name="FeedbackSettingsUpdated" xml:space="preserve"> <value>да</value>
<value>прикол для `{0}` теперь установлен на {1}</value> </data>
</data> <data name="No" xml:space="preserve">
<data name="CommandDescriptionBan" xml:space="preserve"> <value>нъет</value>
<value>возводит великий банхаммер над шизоидом</value> </data>
</data> <data name="UserNotBanned" xml:space="preserve">
<data name="CommandDescriptionClear" xml:space="preserve"> <value>шизик не забанен</value>
<value>удаляет сообщения. сколько хош, столько и удалит</value> </data>
</data> <data name="MemberNotMuted" xml:space="preserve">
<data name="CommandDescriptionHelp" xml:space="preserve"> <value>шизоид не замучен!</value>
<value>показывает то, что ты сейчас видишь прямо сейчас</value> </data>
</data> <data name="RolesReturned" xml:space="preserve">
<data name="CommandDescriptionKick" xml:space="preserve"> <value>кто-то решил поумничать и обошел роль мута. я ее вернул.</value>
<value>выпинывает шизоида</value> </data>
</data> <data name="SettingsWelcomeMessage" xml:space="preserve">
<data name="CommandDescriptionMute" xml:space="preserve"> <value>приветствие</value>
<value>мутит шизоида</value> </data>
</data> <data name="ClearAmountInvalid" xml:space="preserve">
<data name="CommandDescriptionPing" xml:space="preserve"> <value>выбери число от {0} до {1} вместо {2}!</value>
<value>показывает пинг (сверхмегаточный (нет))</value> </data>
</data> <data name="FeedbackUserBanned" xml:space="preserve">
<data name="CommandDescriptionSettings" xml:space="preserve"> <value>забанен {0} на{1}: {2}</value>
<value>настройки бота под этот сервер</value> </data>
</data> <data name="UserNotInGuild" xml:space="preserve">
<data name="CommandDescriptionUnban" xml:space="preserve"> <value>шизик не на этом сервере</value>
<value>отводит великий банхаммер от шизоида</value> </data>
</data> <data name="SettingDoesntExist" xml:space="preserve">
<data name="CommandDescriptionUnmute" xml:space="preserve"> <value>такой прикол не существует</value>
<value>раззамучивает шизоида</value> </data>
</data> <data name="SettingsReceiveStartupMessages" xml:space="preserve">
<data name="MissingNumber" xml:space="preserve"> <value>получать инфу о рождении бота</value>
<value>укажи целое число от {0} до {1}</value> </data>
</data> <data name="InvalidSettingValue" xml:space="preserve">
<data name="MissingUser" xml:space="preserve"> <value>криво настроил прикол, давай по новой</value>
<value>укажи самого шизика</value> </data>
</data> <data name="InvalidRole" xml:space="preserve">
<data name="InvalidUser" xml:space="preserve"> <value>этого звания нету, ты шо</value>
<value>надо указать юзверя вместо {0}!</value> </data>
</data> <data name="InvalidChannel" xml:space="preserve">
<data name="MissingMember" xml:space="preserve"> <value>этого канала нету, ты шо</value>
<value>укажи самого шизика</value> </data>
</data> <data name="RoleRemovalFailed" xml:space="preserve">
<data name="InvalidMember" xml:space="preserve"> <value>я не украл звание {0} в связи с ошибкой! {1}</value>
<value>укажи шизоида сервера вместо {0}!</value> </data>
</data> <data name="DurationRequiredForTimeOuts" xml:space="preserve">
<data name="UserCannotBanMembers" xml:space="preserve"> <value>ты шо, мутить больше чем на 28 дней таймаут не разрешает, вот настроишь роль мута, тогда поговорим</value>
<value>бан</value> </data>
</data> <data name="CannotTimeOutBot" xml:space="preserve">
<data name="UserCannotManageMessages" xml:space="preserve"> <value>я не могу замутить ботов, сделай что нибудь</value>
<value>Ты не можешь управлять сообщениями этого сервера!</value> </data>
</data> <data name="SettingsStarterRole" xml:space="preserve">
<data name="UserCannotKickMembers" xml:space="preserve"> <value>базовое звание</value>
<value>кик шизиков нельзя</value> </data>
</data> <data name="EventCreated" xml:space="preserve">
<data name="UserCannotModerateMembers" xml:space="preserve"> <value>{0} приготовил новый квест {1}! он пройдёт в {2} и начнётся &lt;t:{3}:R&gt;!{4}</value>
<value>тебе нельзя управлять шизоидами</value> </data>
</data> <data name="SettingsEventNotificationRole" xml:space="preserve">
<data name="UserCannotManageGuild" xml:space="preserve"> <value>роль для уведомлений о создании квеста</value>
<value>тебе нельзя редактировать дурку</value> </data>
</data> <data name="SettingsEventNotificationChannel" xml:space="preserve">
<data name="BotCannotBanMembers" xml:space="preserve"> <value>канал для уведомлений о квестах</value>
<value>я не могу ваще никого банить чел.</value> </data>
</data> <data name="SettingsEventStartedReceivers" xml:space="preserve">
<data name="BotCannotManageMessages" xml:space="preserve"> <value>получатели уведомлений о начале квеста</value>
<value>я не могу исправлять орфографический кринж участников, сделай что нибудь.</value> </data>
</data> <data name="EventStarted" xml:space="preserve">
<data name="BotCannotKickMembers" xml:space="preserve"> <value>{0}квест {1} начинается в {2}!</value>
<value>я не могу ваще никого кикать чел.</value> </data>
</data> <data name="SettingsFrowningFace" xml:space="preserve">
<data name="BotCannotModerateMembers" xml:space="preserve"> <value>оъмъомоъемъъео(((( </value>
<value>я не могу контроллировать за всеми ними, сделай что нибудь.</value> </data>
</data> <data name="EventCancelled" xml:space="preserve">
<data name="BotCannotManageGuild" xml:space="preserve"> <value>квест {0} отменен!{1}</value>
<value>я не могу этому серверу хоть че либо нибудь изменить, сделай что нибудь.</value> </data>
</data> <data name="EventCompleted" xml:space="preserve">
<data name="MissingBanReason" xml:space="preserve"> <value>квест {0} завершен! все это длилось {1}</value>
<value>укажи зачем банить шизика</value> </data>
</data> <data name="Ever" xml:space="preserve">
<data name="MissingKickReason" xml:space="preserve"> <value>всегда</value>
<value>укажи зачем кикать шизика</value> </data>
</data> <data name="FeedbackMessagesCleared" xml:space="preserve">
<data name="MissingMuteReason" xml:space="preserve"> <value>удалено {0} сообщений в {1}</value>
<value>укажи зачем мутить шизика</value> </data>
</data> <data name="FeedbackMemberKicked" xml:space="preserve">
<data name="MissingSetting" xml:space="preserve"> <value>выгнан {0}: {1}</value>
<value>укажи настройку которую менять нужно</value> </data>
</data> <data name="FeedbackMemberMuted" xml:space="preserve">
<data name="MissingUnbanReason" xml:space="preserve"> <value>замучен {0} на{1}: {2}</value>
<value>укажи зачем раззабанивать шизика</value> </data>
</data> <data name="FeedbackUserUnbanned" xml:space="preserve">
<data name="MissingUnmuteReason" xml:space="preserve"> <value>раззабанен {0}: {1}</value>
<value>укажи зачам размучивать шизика</value> </data>
</data> <data name="FeedbackMemberUnmuted" xml:space="preserve">
<data name="UserCannotBanBot" xml:space="preserve"> <value>раззамучен {0}: {1}</value>
<value>че ты там вякнул?</value> </data>
</data> <data name="SettingsNothingChanged" xml:space="preserve">
<data name="UserCannotBanOwner" xml:space="preserve"> <value>ты все сломал! значение прикола `{0}` и так {1}</value>
<value>бан админу нельзя</value> </data>
</data> <data name="SettingNotDefined" xml:space="preserve">
<data name="UserCannotBanTarget" xml:space="preserve"> <value>*тут ничего нет*</value>
<value>бан этому шизику нельзя</value> </data>
</data> <data name="FeedbackSettingsUpdated" xml:space="preserve">
<data name="UserCannotBanThemselves" xml:space="preserve"> <value>прикол для `{0}` теперь установлен на {1}</value>
<value>самобан нельзя</value> </data>
</data> <data name="CommandDescriptionBan" xml:space="preserve">
<data name="BotCannotBanTarget" xml:space="preserve"> <value>возводит великий банхаммер над шизоидом</value>
<value>я не могу его забанить...</value> </data>
</data> <data name="CommandDescriptionClear" xml:space="preserve">
<data name="UserCannotKickOwner" xml:space="preserve"> <value>удаляет сообщения. сколько хош, столько и удалит</value>
<value>кик админу нельзя</value> </data>
</data> <data name="CommandDescriptionHelp" xml:space="preserve">
<data name="UserCannotKickThemselves" xml:space="preserve"> <value>показывает то, что ты сейчас видишь прямо сейчас</value>
<value>самокик нельзя</value> </data>
</data> <data name="CommandDescriptionKick" xml:space="preserve">
<data name="UserCannotKickBot" xml:space="preserve"> <value>выпинывает шизоида</value>
<value>че ты там вякнул?</value> </data>
</data> <data name="CommandDescriptionMute" xml:space="preserve">
<data name="BotCannotKickTarget" xml:space="preserve"> <value>мутит шизоида</value>
<value>я не могу его кикнуть...</value> </data>
</data> <data name="CommandDescriptionPing" xml:space="preserve">
<data name="UserCannotKickTarget" xml:space="preserve"> <value>показывает пинг (сверхмегаточный (нет))</value>
<value>кик этому шизику нельзя</value> </data>
</data> <data name="CommandDescriptionSettings" xml:space="preserve">
<data name="UserCannotMuteOwner" xml:space="preserve"> <value>настройки бота под этот сервер</value>
<value>мут админу нельзя</value> </data>
</data> <data name="CommandDescriptionUnban" xml:space="preserve">
<data name="UserCannotMuteThemselves" xml:space="preserve"> <value>отводит великий банхаммер от шизоида</value>
<value>самомут нельзя</value> </data>
</data> <data name="CommandDescriptionUnmute" xml:space="preserve">
<data name="UserCannotMuteBot" xml:space="preserve"> <value>раззамучивает шизоида</value>
<value>че ты там вякнул?</value> </data>
</data> <data name="MissingNumber" xml:space="preserve">
<data name="BotCannotMuteTarget" xml:space="preserve"> <value>укажи целое число от {0} до {1}</value>
<value>я не могу его замутить...</value> </data>
</data> <data name="MissingUser" xml:space="preserve">
<data name="UserCannotMuteTarget" xml:space="preserve"> <value>укажи самого шизика</value>
<value>мут этому шизику нельзя</value> </data>
</data> <data name="InvalidUser" xml:space="preserve">
<data name="UserCannotUnmuteOwner" xml:space="preserve"> <value>надо указать юзверя вместо {0}!</value>
<value>ты шо далбайоп шоле, админ замозамучался, не трожь</value> </data>
</data> <data name="MissingMember" xml:space="preserve">
<data name="UserCannotUnmuteThemselves" xml:space="preserve"> <value>укажи самого шизика</value>
<value>ты замучен.</value> </data>
</data> <data name="InvalidMember" xml:space="preserve">
<data name="UserCannotUnmuteBot" xml:space="preserve"> <value>укажи шизоида сервера вместо {0}!</value>
<value>... </value> </data>
</data> <data name="UserCannotBanMembers" xml:space="preserve">
<data name="UserCannotUnmuteTarget" xml:space="preserve"> <value>бан</value>
<value>тебе нельзя раззамучивать</value> </data>
</data> <data name="UserCannotManageMessages" xml:space="preserve">
<data name="BotCannotUnmuteTarget" xml:space="preserve"> <value>тебе нельзя иметь власть над сообщениями шизоидов</value>
<value>я не могу его раззамутить...</value> </data>
</data> <data name="UserCannotKickMembers" xml:space="preserve">
<data name="EventEarlyNotification" xml:space="preserve"> <value>кик шизиков нельзя</value>
<value>{0}квест {1} начнется &lt;t:{2}:R&gt;!</value> </data>
</data> <data name="UserCannotModerateMembers" xml:space="preserve">
<data name="SettingsEventEarlyNotificationOffset" xml:space="preserve"> <value>тебе нельзя управлять шизоидами</value>
<value>заранее пнуть в минутах до начала квеста</value> </data>
</data> <data name="UserCannotManageGuild" xml:space="preserve">
<value>тебе нельзя редактировать дурку</value>
</data>
<data name="BotCannotBanMembers" xml:space="preserve">
<value>я не могу ваще никого банить чел.</value>
</data>
<data name="BotCannotManageMessages" xml:space="preserve">
<value>я не могу исправлять орфографический кринж участников, сделай что нибудь.</value>
</data>
<data name="BotCannotKickMembers" xml:space="preserve">
<value>я не могу ваще никого кикать чел.</value>
</data>
<data name="BotCannotModerateMembers" xml:space="preserve">
<value>я не могу контроллировать за всеми ними, сделай что нибудь.</value>
</data>
<data name="BotCannotManageGuild" xml:space="preserve">
<value>я не могу этому серверу хоть че либо нибудь изменить, сделай что нибудь.</value>
</data>
<data name="MissingBanReason" xml:space="preserve">
<value>укажи зачем банить шизика</value>
</data>
<data name="MissingKickReason" xml:space="preserve">
<value>укажи зачем кикать шизика</value>
</data>
<data name="MissingMuteReason" xml:space="preserve">
<value>укажи зачем мутить шизика</value>
</data>
<data name="MissingSetting" xml:space="preserve">
<value>укажи настройку которую менять нужно</value>
</data>
<data name="MissingUnbanReason" xml:space="preserve">
<value>укажи зачем раззабанивать шизика</value>
</data>
<data name="MissingUnmuteReason" xml:space="preserve">
<value>укажи зачам размучивать шизика</value>
</data>
<data name="UserCannotBanBot" xml:space="preserve">
<value>ээбля френдли фаер огонь по своим</value>
</data>
<data name="UserCannotBanOwner" xml:space="preserve">
<value>бан админу нельзя</value>
</data>
<data name="UserCannotBanTarget" xml:space="preserve">
<value>бан этому шизику нельзя</value>
</data>
<data name="UserCannotBanThemselves" xml:space="preserve">
<value>самобан нельзя</value>
</data>
<data name="BotCannotBanTarget" xml:space="preserve">
<value>я не могу его забанить...</value>
</data>
<data name="UserCannotKickOwner" xml:space="preserve">
<value>кик админу нельзя</value>
</data>
<data name="UserCannotKickThemselves" xml:space="preserve">
<value>самокик нельзя</value>
</data>
<data name="UserCannotKickBot" xml:space="preserve">
<value>ээбля френдли фаер огонь по своим</value>
</data>
<data name="BotCannotKickTarget" xml:space="preserve">
<value>я не могу его кикнуть...</value>
</data>
<data name="UserCannotKickTarget" xml:space="preserve">
<value>кик этому шизику нельзя</value>
</data>
<data name="UserCannotMuteOwner" xml:space="preserve">
<value>мут админу нельзя</value>
</data>
<data name="UserCannotMuteThemselves" xml:space="preserve">
<value>самомут нельзя</value>
</data>
<data name="UserCannotMuteBot" xml:space="preserve">
<value>ээбля френдли фаер огонь по своим</value>
</data>
<data name="BotCannotMuteTarget" xml:space="preserve">
<value>я не могу его замутить...</value>
</data>
<data name="UserCannotMuteTarget" xml:space="preserve">
<value>мут этому шизику нельзя</value>
</data>
<data name="UserCannotUnmuteOwner" xml:space="preserve">
<value>ты шо далбайоп шоле, админ замозамучался, не трожь</value>
</data>
<data name="UserCannotUnmuteThemselves" xml:space="preserve">
<value>ты замучен.</value>
</data>
<data name="UserCannotUnmuteBot" xml:space="preserve">
<value>... </value>
</data>
<data name="UserCannotUnmuteTarget" xml:space="preserve">
<value>тебе нельзя раззамучивать</value>
</data>
<data name="BotCannotUnmuteTarget" xml:space="preserve">
<value>я не могу его раззамутить...</value>
</data>
<data name="EventEarlyNotification" xml:space="preserve">
<value>{0}квест {1} начнется &lt;t:{2}:R&gt;!</value>
</data>
<data name="SettingsEventEarlyNotificationOffset" xml:space="preserve">
<value>заранее пнуть в минутах до начала квеста</value>
</data>
</root> </root>