diff --git a/build.gradle.kts b/build.gradle.kts index 3b96d26..bc53407 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ plugins { val javaVersion = 24 group = "dev.marrow" -version = "1.2.0" +version = "1.3.0" description = "listener of labels and maps" // paper-plugin.yml diff --git a/src/main/kotlin/dev/marrow/zsign/Core.kt b/src/main/kotlin/dev/marrow/zsign/Core.kt index 1e19e1e..32f0e46 100755 --- a/src/main/kotlin/dev/marrow/zsign/Core.kt +++ b/src/main/kotlin/dev/marrow/zsign/Core.kt @@ -1,6 +1,7 @@ package dev.marrow.zsign import com.github.shynixn.mccoroutine.bukkit.SuspendingJavaPlugin +import dev.marrow.zsign.config.ConfigIO import dev.marrow.zsign.listeners.AnvilUseListener import dev.marrow.zsign.listeners.MapLaminationListener import dev.marrow.zsign.utils.CommonUtils.gson @@ -23,6 +24,8 @@ class Core : SuspendingJavaPlugin() { instance = this console = logger + ConfigIO.readConfig() + // Только наш cartography-слушатель server.pluginManager.registerEvents(MapLaminationListener(this), this) server.pluginManager.registerEvents(AnvilUseListener(this), this) diff --git a/src/main/kotlin/dev/marrow/zsign/config/ConfigIO.kt b/src/main/kotlin/dev/marrow/zsign/config/ConfigIO.kt new file mode 100644 index 0000000..0b26758 --- /dev/null +++ b/src/main/kotlin/dev/marrow/zsign/config/ConfigIO.kt @@ -0,0 +1,41 @@ +package dev.marrow.zsign.config + +import dev.marrow.zsign.Core +import dev.marrow.zsign.utils.CommonUtils.gson +import java.io.BufferedReader +import java.io.File +import java.io.FileReader +import java.io.FileWriter + +@Suppress("unused") +object ConfigIO { + lateinit var instance: ConfigurationModel + + data class ConfigurationModel( + val filters: Filters = Filters(), + ) { + data class Filters( + val banSymbols: List = listOf("卐", "卍", "☭", "ᛋ"), + val streamerWords: List = listOf( + "пидор", "чурк", "чурок", "пидо р", "п идор", "пид ор", "хутору", "хутор", "слава украiнe", "слава украинe", "слава россии", "слава украiне", "слава украине", "гoйдy", "гoйdу", "гойdу", "гoйду", "гойду", "гoйdа", "гойda", "гoйda", "гoйда", "гойдa", "гoйдa", "ZOV", "zov", "н3гр", "ПИДR", "бахмут", "куколды", "куколд", "nigr", "PartyKirby", "n3gr", "пи дор", "черножопый", "нигры", "nigа", "РУСНЯ", "чурки", "хохлом", "kiggers", "глиномес", "нигр", "негер", "ЗИГ ХАЙЛЬ", "ХАЧА", "N1GG*", "даун", "дaун", "даyн", "dayн", "dаун", "дayн", "daун", "dаyн", "pиdor", "неggr", "додик", "P.!.D/0.R.bl", "NELPы", "HЕLРы", "HELРы", "HELPы", "D101R1А1", "И1Г1Е1Р", "!GGЕ", "D0RАС", "Pl!!D0RАСЫ", "NИ!!!GGЕRbl", "!ГEPb", "!ГЕРb", "!GЕРb", "H!!!GЕРbl", "П!!!ДОRАСЫ", "ДОRАС", "П!!ДОРАСЫ", "H!!ГЕРbl", "дорас", "Н!!Г", "H!!Г", "П!!Д", "ДAУH", "ДАУH", "П!ДOР", "H!ГЕР", "H!ГЕPЫ", "H!ГEРЫ", "H!ГЕРЫ", "П!ДОР", "П!ДОРАSЫ", "П!ДОРАСЫ", "Н!ГЕРЫ", "додiк", "додан", "додик", "хохлина", "хохлов", "хохла", "хохлы", "N1GERS", "FA1OTS", "хохол", "incel", "инцел", "шлюха", "p..i..d..o..r..a..s", "ПЕДРИЛА", "хуесос", "П,И,Д,О,Р", "н.е.г.р.и", "негрыпидорас", "негр", "P.1.D.OO.RA.S", "N.E.G.R1", "N.E.G.R1 P.1.D.OO.RA.S", "пiдdop", "пiiдdopp", "даyn", "чypка", "4урка", "чурке", "чурка", "YappiDoor", "книгр", "дауны", "П.И.Д.О.R.A.S", "П3.14DOOR", "П.И.Д.О.Р.А.С.И.Н.А.А,А.А.А", "Н3гры", "падарас", "каклошвайн", "хохiл", "хохіл", "пидр", "пидарасик", "пидорасик", "педерасик", "педрильник", "педрик", "педр", "педеряга", "полупокер", "гомик", "гомосек", "пидераст", "педераст", "f@gg0t", "f@ggot", "daun", "д@ун", "даун", "pedovka", "х@4", ") (@4", ")(ач", ")(о)(ол", "pidarac", "pidorok", "pidarok", "п1д@рок", "п1дарок", "пидорок", "пидарок", "хохлам", "хохолка", "хохлушка", "хахлушка", "хахлина", "пидриловна", "пидорёха", "пидарёха", "пидрилка", "пидарасина", "пидарас", "пидораска", "пидорасина", "хахолка", "xoxoл", "xoxol", "х@хол", "х@х0л", "хахол", "niгга", "ниgga", "нegr", "nегр", "пидop", "пидoр", "хoхoл", "х0х0л", "pedickson", "p1d4r8s8", "p3dik", "p3d1k", "pedick", "pedik", "жид9ра", "ж1д9ра", "ж1д", "н1г@", "н1чер", "н1гер", "н1га", "ниг@", "пид@р@с", "н?е?г?р", "н!е!г!р", "п!и!д!о!р!а!с", "п?и?д?о?р?а?с", "ж(и(д", "ж)и)д", "н(и(г(а", "н)и)г)а", "н(е(г(р", "н)е)г)р", "п)и)д)р)а)с", "п(и(д(а(р(а(с", "ж/и/д", "ж\\и\\д", "н/и/г/а", "н/е/г/р", "н\\и\\г\\г\\а", "н\\е\\г\\р", "п\\и\\д\\о\\р\\а\\с", "p/i/d/a/r/a/s", "n/i/g/g/a", "нигерас", "п.и.д.а.р.а.с", "н.и.г.е.р", "n.i.b.b.e.r", "n.1.g.e.r", "n.i.g.e.r", "n.i.g.a", "p.i.d.0r", "p.i.d.o.r", "p.i.d.a.r.a.s", "П. ИД.О.Р", "д4унbl", "п.и.д.о.р.", "ж.и.д", "н.е.г.р", "п.и.д.о.р.ы.", "жидомасон", "жиды", "линчевать", "жидовка", "жидовик", "еблан черножопый", "FUCK ŊIGGERS", "пiдор", "пидер", "пидур", "негроид", "нtгр", "негыр", "негор", "нeгр", "негритян", "пидараска", "пидогр", "нигорас", "пидрила", "п1др1ла", "п3др1ла", "п3д1к", "пед1к", "п3дик", "п1д4рас", "п1дор", "pid0r", "pid3r", "p1d3r", "p1d0r", "p1dor", "n1g3r", "n1g4", "n1ga", "nig4", "н...е...г...р", "симп", "πдорасы", "НЕLРЫ", "πдорасы", "жидина", "H3гp", "peedooor", "нэгры", "нэгр", "трап", "жидяра", "ПИДДОРЫ", "НЕГГРЫ", "пидар", "нидор*", "пегр*", "педар*", "pedor", "pee d", "Heг", "педор", "Hег", "Hеr", "nиd", "нir", "пid", "HNГ", "ни га", "p1d", "Niг", "п1g", "nuг", "nиг", "nur", "nиr", "пеg", "neg", "пeg", "ттug", "ттиg", "ттuд", "нигe", "пидe", "n1д", "н1г", "п1d", "пидa", "пида", "piд", "ни ге", "ни гг", "TTug", "TTuд", "TTиg", "TTид", "Hiг", "Hиg", "нигa", "niq", "пидp", "гамосек", "пиде", "П|/|Д", "ПI/IД", "Пl/lД", "Н|/|Г", "Нl/lГ", "нug", "нiг", "пig", "niд", "fag", "Heg", "Hig", "Hl/lГ", "пмдор", "пмдар", "пирадас", "Herp", "Herр", "Huг", "нeг", "негp", "ниg", "нuг", "НI/IГ", "Hиг", "питор", "питар", "ниr", "ниччер", "ничер", "ніг", "нig", "н и г", "Hиr", "нur", "nіg", "n i g", "NlG", "paydo", "негр", "ниге", "nige", "niga", "nigg", "нигг", "пи д", "пигор", "рid", "ттид", "p i d", "п и д", "фаг", "пиg", "пud", "пиd", "хачи", "під", "пuд", "п1д", "пeд", "пиндос", "пендос", "пug", "педи", "дaун", "p`id", "πuд", "πиg", "πug", "πид", "ПNД", "PlD", "nиg", "nид", "пидo", "пид0", "пидо", "pid", "пiд", "nud", "nuд", "nug", "пидор", "нerp", "н е г р" + ), + ) + } + + private val file = File("${System.getProperty("user.dir")}/plugins/${Core.instance.name}/config.json") + + fun readConfig() { + if (!file.exists()) { + Core.console.warning("Configuration file is missing, generating default one.") + FileWriter(file).use { gson.toJson(ConfigurationModel(), it) } + } + val reader = BufferedReader(FileReader(file)) + val gsonReader = gson.newJsonReader(reader) + val config: ConfigurationModel = gson.fromJson(gsonReader, ConfigurationModel::class.java) + instance = config + } + + fun writeConfig() { + FileWriter(file).use { gson.toJson(instance, it) } + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/marrow/zsign/listeners/AnvilUseListener.kt b/src/main/kotlin/dev/marrow/zsign/listeners/AnvilUseListener.kt index 7aa9688..8cbfadf 100644 --- a/src/main/kotlin/dev/marrow/zsign/listeners/AnvilUseListener.kt +++ b/src/main/kotlin/dev/marrow/zsign/listeners/AnvilUseListener.kt @@ -1,6 +1,7 @@ package dev.marrow.zsign.listeners import dev.marrow.zsign.Core +import dev.marrow.zsign.config.ConfigIO import net.kyori.adventure.text.Component import net.kyori.adventure.text.format.NamedTextColor import net.kyori.adventure.text.format.TextColor @@ -42,9 +43,8 @@ class AnvilUseListener(private val plugin: Core) : Listener { private val plain = PlainTextComponentSerializer.plainText() private fun ItemStack?.isAir(): Boolean = this == null || type == Material.AIR } - private val config get() = plugin.config - private val banSymbols get() = config.getStringList("ban-symbols") - private val streamerWords get() = config.getStringList("streamer-words") + val banSymbols = ConfigIO.instance.filters.banSymbols + val streamerWords = ConfigIO.instance.filters.streamerWords @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) fun onPrepareAnvil(e: PrepareAnvilEvent) { @@ -84,7 +84,7 @@ class AnvilUseListener(private val plugin: Core) : Listener { } if (newName != null) { - meta.displayName(Component.text(newName)) + meta.displayName(Component.text(newName).decoration(TextDecoration.ITALIC, false)) } if (secondItem != null) { diff --git a/src/main/kotlin/dev/marrow/zsign/listeners/MapLamintationListener.kt b/src/main/kotlin/dev/marrow/zsign/listeners/MapLamintationListener.kt index 00052ca..f83b4fb 100644 --- a/src/main/kotlin/dev/marrow/zsign/listeners/MapLamintationListener.kt +++ b/src/main/kotlin/dev/marrow/zsign/listeners/MapLamintationListener.kt @@ -5,6 +5,8 @@ import dev.marrow.zsign.Core import io.papermc.paper.event.player.CartographyItemEvent import io.papermc.paper.threadedregions.scheduler.ScheduledTask import net.kyori.adventure.text.Component +import net.kyori.adventure.text.format.NamedTextColor +import net.kyori.adventure.text.format.TextDecoration import org.bukkit.Material import org.bukkit.NamespacedKey import org.bukkit.entity.Player @@ -36,10 +38,13 @@ class MapLaminationListener(private val plugin: Core) : Listener { return mm.persistentDataContainer.has(laminatedKey, PersistentDataType.BYTE) } - private fun markLaminated(copy: ItemStack): ItemStack = copy.apply { + private fun markLaminated(copy: ItemStack, player: Player): ItemStack = copy.apply { val mm = itemMeta as MapMeta mm.persistentDataContainer.set(laminatedKey, PersistentDataType.BYTE, 1.toByte()) - mm.lore(listOf(Component.text("Заламинирована"))) + mm.lore(listOf( + Component.text("Заламинировано игроком ${player.name}").color(NamedTextColor.YELLOW).decoration(TextDecoration.ITALIC, false), + Component.text("(${player.uniqueId})").color(NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), + )) itemMeta = mm } @@ -100,7 +105,8 @@ class MapLaminationListener(private val plugin: Core) : Listener { val top = inv.getItem(TOP_SLOT) val cursor = inv.viewers.firstOrNull()?.itemOnCursor if (top.isRedPane() || (top.isAir() && cursor.isRedPane())) { - val out = markLaminated(base.clone()) + val player = inv.viewers.firstOrNull() as? Player ?: return + val out = markLaminated(base.clone(), player) out.amount = 1 e.result = out } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 05d6759..d8fdf17 100755 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,486 +1 @@ -enabled-message: "ZSign enabled!" -ban-symbols: - - "卐" - - "卍" - - "☭" - - "ᛋ" -streamer-words: - - "пидор" - - "чурк" - - "чурок" - - "🅿️🆔🅾️®️" - - "пидо р" - - "п идор" - - "пид ор" - - "хутору" - - "хутор" - - "слава украiнe" - - "слава украинe" - - "слава россии" - - "слава украiне" - - "слава украине" - - "гoйдy" - - "гoйdу" - - "гойdу" - - "гoйду" - - "гойду" - - "гoйdа" - - "гойda" - - "гoйda" - - "гoйда" - - "гойдa" - - "гoйдa" - - "ZOV" - - "zov" - - "н3гр" - - "ПИДR" - - "бахмут" - - "ytuhs" - - "куколды" - - "куколд" - - "nigr" - - "PartyKirby" - - "n3gr" - - "пи дор" - - "черножопый" - - "нигры" - - "nigа" - - "РУСНЯ" - - "чурки" - - "хохлом" - - "kiggers" - - "глиномес" - - "нигр" - - "негер" - - "ЗИГ ХАЙЛЬ" - - "ХАЧА" - - "N1GG*" - - "даун" - - "дaун" - - "даyн" - - "dayн" - - "dаун" - - "дayн" - - "daун" - - "dаyн" - - "pиdor" - - "неggr" - - "додик" - - "P.!.D/0.R.bl" - - "NELPы" - - "HЕLРы" - - "HELРы" - - "HELPы" - - "D101R1А1" - - "И1Г1Е1Р" - - "!GGЕ" - - "D0RАС" - - "Pl!!D0RАСЫ" - - "NИ!!!GGЕRbl" - - "!ГEPb" - - "!ГЕРb" - - "!GЕРb" - - "H!!!GЕРbl" - - "П!!!ДОRАСЫ" - - "ДОRАС" - - "П!!ДОРАСЫ" - - "H!!ГЕРbl" - - "дорас" - - "Н!!Г" - - "H!!Г" - - "П!!Д" - - "ДAУH" - - "ДАУH" - - "П!ДOР" - - "H!ГЕР" - - "H!ГЕPЫ" - - "H!ГEРЫ" - - "H!ГЕРЫ" - - "П!ДОР" - - "П!ДОРАSЫ" - - "П!ДОРАСЫ" - - "Н!ГЕРЫ" - - "冂仈亼卩" - - "冂认亼口尸" - - "додiк" - - "додан" - - "додик" - - "хохлина" - - "хохлов" - - "хохла" - - "хохлы" - - "𝔤𝔞𝔫𝔡𝔬𝔫" - - "🅟︎🅘︎🅓︎🅞︎🅡︎" - - "🅟︎🅘︎🅓︎🅞︎🅡︎🅐︎🅢︎🅘︎🅝︎🅐︎" - - "Ⓟ︎Ⓘ︎Ⓓ︎Ⓞ︎Ⓡ︎Ⓐ︎Ⓢ︎Ⓘ︎Ⓝ︎Ⓐ︎" - - "N1GERS" - - "FA1OTS" - - "хохол" - - "incel" - - "инцел" - - "шлюха" - - "p..i..d..o..r..a..s" - - "ПЕДРИЛА" - - "nig" - - "хуесос" - - "П,И,Д,О,Р" - - "н.е.г.р.и" - - "негрыпидорас" - - "негр" - - "P.1.D.OO.RA.S" - - "N.E.G.R1" - - "N.E.G.R1 P.1.D.OO.RA.S" - - "пiдdop" - - "пiiдdopp" - - "даyn" - - "чypка" - - "4урка" - - "чурке" - - "чурка" - - "✖️⭕️✖️⭕️Л" - - "YappiDoor" - - "книгр" - - "дауны" - - "П.И.Д.О.R.A.S" - - "П3.14DOOR" - - "П.И.Д.О.Р.А.С.И.Н.А.А,А.А.А" - - "Н3гры" - - "падарас" - - "П.u.д.о.р.а.c." - - "П.u.д.о.р.а.c" - - "П.u.д.о.p.a" - - "П.u.д.o.р." - - "П.u.д.o.р" - - "П.u.д.o.p." - - "П.u.д.o.p" - - "П.u.д.о.p." - - "П.u.д.о.p" - - "П.u.д.о.р.а.s." - - "П.u.д.о.р.а.s" - - "П.u.д.о.р.a" - - "П.u.д.о.р.a." - - "П.u.д.о.р.а.с." - - "П.u.д.о.р.а" - - "П.u.д.о.р" - - "П.u.д.о.р.а.с" - - "каклошвайн" - - "хохiл" - - "хохіл" - - "пидр" - - "пидарасик" - - "пидорасик" - - "педерасик" - - "педрильник" - - "педрик" - - "педр" - - "педеряга" - - "полупокер" - - "гомик" - - "гомосек" - - "пидераст" - - "педераст" - - "f@gg0t" - - "f@ggot" - - "daun" - - "д@ун" - - "даун" - - "pedovka" - - "х@4" - - ") (@4" - - ")(ач" - - ")(о)(ол" - - "pidarac" - - "pidorok" - - "pidarok" - - "п1д@рок" - - "п1дарок" - - "пидорок" - - "пидарок" - - "хохлам" - - "хохолка" - - "хохлушка" - - "хахлушка" - - "хахлина" - - "пидриловна" - - "пидорёха" - - "пидарёха" - - "пидрилка" - - "пидарасина" - - "пидарас" - - "пидораска" - - "пидорасина" - - "хахолка" - - "xoxoл" - - "xoxol" - - "х@хол" - - "х@х0л" - - "хахол" - - "niгга" - - "ниgga" - - "нegr" - - "nегр" - - "пидop" - - "пидoр" - - "хoхoл" - - "х0х0л" - - "pedickson" - - "p1d4r8s8" - - "p3dik" - - "p3d1k" - - "pedick" - - "pedik" - - "жид9ра" - - "ж1д9ра" - - "ж1д" - - "н1г@" - - "н1чер" - - "н1гер" - - "н1га" - - "ниг@" - - "пид@р@с" - - "н?е?г?р" - - "н!е!г!р" - - "п!и!д!о!р!а!с" - - "п?и?д?о?р?а?с" - - "ж(и(д" - - "ж)и)д" - - "н(и(г(а" - - "н)и)г)а" - - "н(е(г(р" - - "н)е)г)р" - - "п)и)д)р)а)с" - - "п(и(д(а(р(а(с" - - "ж/и/д" - - "ж\\и\\д" - - "н/и/г/а" - - "н/е/г/р" - - "н\\и\\г\\г\\а" - - "н\\е\\г\\р" - - "п\\и\\д\\о\\р\\а\\с" - - "p/i/d/a/r/a/s" - - "n/i/g/g/a" - - "нигерас" - - "п.и.д.а.р.а.с" - - "н.и.г.е.р" - - "n.i.b.b.e.r" - - "n.1.g.e.r" - - "n.i.g.e.r" - - "n.i.g.a" - - "p.i.d.0r" - - "p.i.d.o.r" - - "p.i.d.a.r.a.s" - - "П. ИД.О.Р" - - "д4унbl" - - "п.и.д.о.р." - - "ж.и.д" - - "н.е.г.р" - - "п.и.д.о.р.ы." - - "P🆔🅾️R" - - "П🆔🅾️Р" - - "Р🆔🅾️Р" - - "🅿️🆔🅾️Р" - - "🅿️🆔о🅿️" - - "🅿️🆔0🅿️" - - "П🆔🅾️🅿️" - - "🅿️🆔🅾️🅿️" - - "жидомасон" - - "жиды" - - "линчевать" - - "жидовка" - - "жидовик" - - "еблан черножопый" - - "FUCK ŊIGGERS" - - "пiдор" - - "пидер" - - "пидур" - - "негроид" - - "нtгр" - - "негыр" - - "негор" - - "нe гр" - - "нeгр" - - "негритян" - - "пидараска" - - "пидогр" - - "нигорас" - - "пидрила" - - "п1др1ла" - - "п3др1ла" - - "п3д1к" - - "пед1к" - - "п3дик" - - "п1д4рас" - - "п1дор" - - "pid0r" - - "pid3r" - - "p1d3r" - - "p1d0r" - - "p1dor" - - "n1g3r" - - "n1g4" - - "n1ga" - - "nig4" - - "н...е...г...р" - - "пид🅾️🅿️" - - "🅿️🆔D🅾️🅿️" - - "🅿️🆔🅾️🅿️" - - "P🆔🅾️🅿️🅰️C" - - "🅿️ℹ️D🅾️🅿️🅰️S" - - "симп" - - "πдорасы" - - "НЕLРЫ" - - "πдорасы" - - "🅿️🆔0️⃣🅿️" - - "жидина" - - "H3гp" - - "⛩🆔🅾️🅿️" - - "peedooor" - - "нэгры" - - "нэгр" - - "трап" - - "жидяра" - - "𝐻𝑒г𝑝ы пид𝑜𝑝ы" - - "пидهpaح" - - "ПИДДОРЫ" - - "НЕГГРЫ" - - "пидар" - - "нидор*" - - "пегр*" - - "педар*" - - "pedor" - - "pee d" - - "Heг" - - "педор" - - "Hег" - - "Hеr" - - "nиd" - - "нir" - - "пid" - - "HNГ" - - "не гр" - - "ни га" - - "p1d" - - "Niг" - - "п1g" - - "nuг" - - "nиг" - - "nur" - - "nиr" - - "пеg" - - "neg" - - "пeg" - - "ттug" - - "ттиg" - - "ттuд" - - "нигe" - - "пидe" - - "n1д" - - "н1г" - - "п1d" - - "пидa" - - "пида" - - "piд" - - "ни ге" - - "ни гг" - - "TTug" - - "TTuд" - - "TTиg" - - "TTид" - - "Hiг" - - "Hug" - - "Hиg" - - "нигa" - - "niq" - - "пидp" - - "гамосек" - - "пиде" - - "П|/|Д" - - "ПI/IД" - - "Пl/lД" - - "Н|/|Г" - - "Нl/lГ" - - "нug" - - "нiг" - - "пig" - - "niд" - - "fag" - - "Heg" - - "Hig" - - "Hl/lГ" - - "пмдор" - - "пмдар" - - "пирадас" - - "Herp" - - "Herр" - - "Huг" - - "нeг" - - "негp" - - "ниg" - - "нuг" - - "НI/IГ" - - "Hиг" - - "питор" - - "питар" - - "ниr" - - "ниччер" - - "ничер" - - "ніг" - - "нig" - - "н и г" - - "Hиr" - - "нur" - - "nіg" - - "n i g" - - "NlG" - - "cmonBruh" - - "paydo" - - "peид" - - "негр" - - "ниге" - - "nige" - - "niga" - - "nigg" - - "нигг" - - "пи д" - - "пигор" - - "рid" - - "ттид" - - "p i d" - - "п и д" - - "фаг" - - "пиg" - - "пud" - - "пиd" - - "хачи" - - "під" - - "пuд" - - "п1д" - - "пeд" - - "пиндос" - - "пендос" - - "пug" - - "педи" - - "дaун" - - "p`id" - - "πuд" - - "πиg" - - "πug" - - "πид" - - "ПNД" - - "PlD" - - "nиg" - - "nид" - - "GBLFH" - - "GBLJH" - - "пидo" - - "пид0" - - "пидо" - - "pid" - - "пiд" - - "nud" - - "nuд" - - "nug" - - "пидор" - - "🅿️ℹ️D🅰️®️🅰️Sℹ️N🅰️" - - "нerp" - - "н е г р" \ No newline at end of file +enabled-message: "ZSign enabled!" \ No newline at end of file