Initial commit: LoChat v1.0.0 with Gradient module

This commit is contained in:
loki5512344 2025-12-29 14:57:49 +01:00
commit 252b0a60db
86 changed files with 8922 additions and 0 deletions

View file

@ -0,0 +1,74 @@
# LoChat - Автосообщения
# Автор: loki
#
# Смайлики настраиваются в emojis.yml
# ═══════════════════════════════════════════
# НАСТРОЙКИ
# ═══════════════════════════════════════════
settings:
enabled: true
interval: 300 # Интервал между сообщениями (секунды)
prefix: "&6[&eINFO&6]&r"
# Режим отправки:
# - "sequential" — по порядку (1, 2, 3...)
# - "random" — случайный порядок
# - "custom" — свой порядок (указать в order)
mode: "sequential"
# Свой порядок (для mode: custom)
# Можно указывать названия или номера
# Пример: "welcome, rules, 3, donate, tips"
order: "welcome, motd, rules, donate, tips, discord"
# ═══════════════════════════════════════════
# СООБЩЕНИЯ
# ═══════════════════════════════════════════
messages:
# Приветствие (однострочное)
welcome: "&aДобро пожаловать на сервер! &e:star:"
# MOTD (многострочное)
motd:
- "&6╔══════════════════════════════════╗"
- "&6║ &e:star: &fДобро пожаловать! &e:star: &6║"
- "&6║ &7Онлайн: &a%online% &7игроков &6║"
- "&6║ &7Сайт: &bexample.com &6║"
- "&6╚══════════════════════════════════╝"
# Правила
rules:
- "&c&l:warning: ПРАВИЛА СЕРВЕРА :warning:"
- "&71. &fНе гриферить"
- "&72. &fНе читерить"
- "&73. &fУважать игроков"
- "&aПолные правила: &e/rules"
# Донат
donate:
- "&#FFD700&l:gem: ДОНАТ :gem:"
- "&7Поддержи сервер и получи"
- "&7крутые привилегии!"
- "&eПодробнее: &a/donate"
# Советы
tips:
- "&b:zap: &fСовет дня:"
- "&7Используй &e/sethome &7чтобы"
- "&7сохранить свою локацию!"
# Discord
discord: "&9:game: &fНаш Discord: &bdiscord.gg/example"
# Голосование
vote: "&a:thumbsup: &fГолосуй за сервер: &e/vote &7и получи награды!"
# Градиентное сообщение
gradient:
- "<gradient:#FF6B6B:#4ECDC4>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>"
- ""
- " &f:fire: &eСпециальное событие!"
- " &7Двойной опыт до конца недели!"
- ""
- "<gradient:#4ECDC4:#FF6B6B>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>"

View file

@ -0,0 +1,69 @@
# LoChat Configuration
# Author: loki
chat:
global:
enabled: true
prefix: "[G]"
format: "<prefix><player>: <message>"
symbol: "!"
cooldown: 3
local:
enabled: true
radius: 100
prefix: "[L]"
format: "<player>: <message>"
cooldown: 1
pm:
enabled: true
log: false
sound: true
sound-type: "ENTITY_EXPERIENCE_ORB_PICKUP"
# Интеграция с GradientNick (LoPreff)
# Использует PlaceholderAPI плейсхолдеры
lopreff:
enabled: true
# Использовать градиентный ник в чате
use-gradient-name: true
# Использовать кастомный префикс
use-custom-prefix: true
# Упоминания @ник
mentions:
enabled: true
sound: true
sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Выделение при @ник
highlight: "<yellow>@{player}</yellow>"
# Выделение когда твой ник написали (без @)
self-highlight: "<gold><bold>{player}</bold></gold>"
# Фильтр мата
filter:
enabled: true
words:
- "хуй"
- "пизд"
- "блять"
- "ебать"
- "сука"
action: "censor" # censor/block/warn
replacement: "***"
# Анти-спам
antispam:
enabled: true
max-caps-percent: 70
max-repeat-chars: 5
similar-message-delay: 30
automessages:
enabled: true
interval: 300
random: false
formats:
announcement: "<gold>[ОБЪЯВЛЕНИЕ]</gold> <message>"

View file

@ -0,0 +1,385 @@
# LoChat - Смайлики и стикеры
# Автор: loki
#
# Формат: "триггер": "замена"
# Игроки пишут триггер, он заменяется на символ
#
# Права:
# - chat.emoji.use — использование смайликов
# - chat.emoji.* — все смайлики
# - chat.emoji.hearts — только категория hearts
# - chat.emoji.custom — кастомные смайлики
# ═══════════════════════════════════════════
# НАСТРОЙКИ
# ═══════════════════════════════════════════
settings:
enabled: true
# Требовать право chat.emoji.use
require-permission: false
# ═══════════════════════════════════════════
# ЛИЦА И ЭМОЦИИ
# ═══════════════════════════════════════════
faces:
":)": "☺"
":D": "😃"
":(": "☹"
";)": "😉"
":P": "😛"
":O": "😮"
"XD": "😆"
":/": "😕"
":*": "😘"
"^_^": "😊"
"-_-": "😑"
">:(": "😠"
":3": "😺"
":'(": "😢"
":')": "😂"
"o_o": "😳"
"O_O": "😱"
":thinking:": "🤔"
":cool:": "😎"
":angry:": "😡"
":sad:": "😢"
":happy:": "😊"
":laugh:": "😂"
":cry:": "😭"
":sleep:": "😴"
":sick:": "🤢"
":dead:": "💀"
# ═══════════════════════════════════════════
# СЕРДЦА И ЛЮБОВЬ
# ═══════════════════════════════════════════
hearts:
"<3": "❤"
":heart:": "❤"
":red_heart:": "❤"
":blue_heart:": "💙"
":green_heart:": "💚"
":yellow_heart:": "💛"
":purple_heart:": "💜"
":black_heart:": "🖤"
":white_heart:": "🤍"
":orange_heart:": "🧡"
":broken_heart:": "💔"
":two_hearts:": "💕"
":sparkling_heart:": "💖"
":heartbeat:": "💓"
":heartpulse:": "💗"
":love:": "💕"
":kiss:": "💋"
# ═══════════════════════════════════════════
# ЖЕСТЫ И РУКИ
# ═══════════════════════════════════════════
gestures:
":thumbsup:": "👍"
":+1:": "👍"
":thumbsdown:": "👎"
":-1:": "👎"
":clap:": "👏"
":wave:": "👋"
":ok:": "👌"
":ok_hand:": "👌"
":fist:": "✊"
":punch:": "👊"
":peace:": "✌"
":v:": "✌"
":muscle:": "💪"
":strong:": "💪"
":pray:": "🙏"
":hands:": "🙌"
":point_up:": "☝"
":point_down:": "👇"
":point_left:": "👈"
":point_right:": "👉"
":middle_finger:": "🖕"
":call:": "🤙"
# ═══════════════════════════════════════════
# ПРИРОДА И ПОГОДА
# ═══════════════════════════════════════════
nature:
":fire:": "🔥"
":flame:": "🔥"
":zap:": "⚡"
":lightning:": "⚡"
":boom:": "💥"
":explosion:": "💥"
":sparkles:": "✨"
":stars:": "✨"
":snow:": "❄"
":snowflake:": "❄"
":cloud:": "☁"
":sun:": "☀"
":sunny:": "☀"
":moon:": "🌙"
":crescent_moon:": "🌙"
":full_moon:": "🌕"
":rainbow:": "🌈"
":water:": "💧"
":drop:": "💧"
":ocean:": "🌊"
":wind:": "💨"
":tornado:": "🌪"
":leaf:": "🍃"
":tree:": "🌳"
":flower:": "🌸"
":rose:": "🌹"
":cactus:": "🌵"
# ═══════════════════════════════════════════
# ЗВЁЗДЫ И СИМВОЛЫ
# ═══════════════════════════════════════════
symbols:
":star:": "⭐"
":star2:": "🌟"
":glowing_star:": "🌟"
":dizzy:": "💫"
":sparkle:": "❇"
":skull:": "💀"
":ghost:": "👻"
":alien:": "👽"
":robot:": "🤖"
":poop:": "💩"
":100:": "💯"
":gem:": "💎"
":diamond:": "💎"
":money:": "💰"
":dollar:": "💵"
":coin:": "🪙"
":gift:": "🎁"
":balloon:": "🎈"
":party:": "🎉"
":tada:": "🎉"
":confetti:": "🎊"
":trophy:": "🏆"
":medal:": "🏅"
":crown:": "👑"
":king:": "👑"
# ═══════════════════════════════════════════
# МАЙНКРАФТ ТЕМАТИКА
# ═══════════════════════════════════════════
minecraft:
":sword:": "⚔"
":crossed_swords:": "⚔"
":shield:": "🛡"
":axe:": "🪓"
":pickaxe:": "⛏"
":bow:": "🏹"
":arrow:": "➤"
":bomb:": "💣"
":tnt:": "🧨"
":potion:": "🧪"
":ender:": "🟣"
":nether:": "🔴"
":emerald:": "💚"
":gold:": "🟡"
":iron:": "⬜"
":coal:": "⬛"
":redstone:": "🔴"
":lapis:": "🔵"
":exp:": "🟢"
":xp:": "🟢"
":heart_mc:": "❤"
":hunger:": "🍖"
":armor:": "🛡"
# ═══════════════════════════════════════════
# ЖИВОТНЫЕ
# ═══════════════════════════════════════════
animals:
":cat:": "🐱"
":dog:": "🐶"
":wolf:": "🐺"
":fox:": "🦊"
":pig:": "🐷"
":cow:": "🐮"
":sheep:": "🐑"
":chicken:": "🐔"
":dragon:": "🐉"
":bee:": "🐝"
":fish:": "🐟"
":spider:": "🕷"
":bat:": "🦇"
":rabbit:": "🐰"
":bear:": "🐻"
":panda:": "🐼"
":monkey:": "🐵"
":horse:": "🐴"
":unicorn:": "🦄"
":snake:": "🐍"
":turtle:": "🐢"
":frog:": "🐸"
":bird:": "🐦"
":penguin:": "🐧"
":owl:": "🦉"
# ═══════════════════════════════════════════
# ЕДА И НАПИТКИ
# ═══════════════════════════════════════════
food:
":apple:": "🍎"
":green_apple:": "🍏"
":bread:": "🍞"
":meat:": "🍖"
":steak:": "🥩"
":cake:": "🎂"
":cookie:": "🍪"
":pizza:": "🍕"
":hamburger:": "🍔"
":fries:": "🍟"
":hotdog:": "🌭"
":taco:": "🌮"
":sushi:": "🍣"
":ramen:": "🍜"
":egg:": "🥚"
":cheese:": "🧀"
":milk:": "🥛"
":coffee:": "☕"
":tea:": "🍵"
":beer:": "🍺"
":wine:": "🍷"
":cocktail:": "🍹"
":ice_cream:": "🍦"
":donut:": "🍩"
":candy:": "🍬"
":chocolate:": "🍫"
":watermelon:": "🍉"
":banana:": "🍌"
":carrot:": "🥕"
":corn:": "🌽"
# ═══════════════════════════════════════════
# ИГРОВЫЕ И ИНТЕРФЕЙС
# ═══════════════════════════════════════════
gaming:
":game:": "🎮"
":controller:": "🎮"
":joystick:": "🕹"
":dice:": "🎲"
":chess:": "♟"
":target:": "🎯"
":flag:": "🚩"
":checkered_flag:": "🏁"
":warning:": "⚠"
":no_entry:": "⛔"
":stop:": "🛑"
":check:": "✓"
":checkmark:": "✔"
":x:": "✗"
":cross:": "✖"
":question:": "❓"
":exclamation:": "❗"
":zzz:": "💤"
":bulb:": "💡"
":idea:": "💡"
":bell:": "🔔"
":mute:": "🔇"
":speaker:": "🔊"
":mega:": "📢"
":mic:": "🎤"
# ═══════════════════════════════════════════
# СТРЕЛКИ И НАПРАВЛЕНИЯ
# ═══════════════════════════════════════════
arrows:
":arrow_up:": "↑"
":arrow_down:": "↓"
":arrow_left:": "←"
":arrow_right:": "→"
":arrow_up_right:": "↗"
":arrow_up_left:": "↖"
":arrow_down_right:": "↘"
":arrow_down_left:": "↙"
":arrows_lr:": "↔"
":arrows_ud:": "↕"
":return:": "↩"
":redo:": "↪"
":refresh:": "🔄"
":infinity:": "∞"
# ═══════════════════════════════════════════
# МУЗЫКА И ИСКУССТВО
# ═══════════════════════════════════════════
music:
":note:": "♪"
":notes:": "♫"
":music:": "🎵"
":musical_note:": "🎶"
":headphones:": "🎧"
":guitar:": "🎸"
":piano:": "🎹"
":drum:": "🥁"
":violin:": "🎻"
":art:": "🎨"
":palette:": "🎨"
":camera:": "📷"
":movie:": "🎬"
":tv:": "📺"
":radio:": "📻"
# ═══════════════════════════════════════════
# РАЗНОЕ
# ═══════════════════════════════════════════
misc:
":lock:": "🔒"
":unlock:": "🔓"
":key:": "🔑"
":hourglass:": "⏳"
":timer:": "⏱"
":clock:": "🕐"
":calendar:": "📅"
":pin:": "📌"
":paperclip:": "📎"
":scissors:": "✂"
":pencil:": "✏"
":pen:": "🖊"
":book:": "📖"
":scroll:": "📜"
":mail:": "📧"
":envelope:": "✉"
":phone:": "📱"
":computer:": "💻"
":keyboard:": "⌨"
":mouse:": "🖱"
":trash:": "🗑"
":tools:": "🛠"
":wrench:": "🔧"
":hammer:": "🔨"
":gear:": "⚙"
":link:": "🔗"
":magnet:": "🧲"
":battery:": "🔋"
":plug:": "🔌"
# ═══════════════════════════════════════════
# КАСТОМНЫЕ (добавляй свои)
# ═══════════════════════════════════════════
custom:
# Примеры кастомных смайликов
":server:": "🖥"
":admin:": "👨‍💻"
":mod:": "🛡"
":vip:": "⭐"
":donate:": "💎"
":online:": "🟢"
":offline:": "🔴"
":afk:": "💤"
":gg:": "🏆"
":ez:": "😎"
":rip:": "⚰"
":f:": "🇫"
":pog:": "😲"
":kek:": "😂"
":sus:": "🤨"
":bruh:": "😐"
":based:": "💪"
":cringe:": "😬"
":ratio:": "📉"
":w:": "🏆"
":l:": "📉"

View file

@ -0,0 +1,58 @@
# LoChat Gradient Module Configuration
# Модуль градиентных ников (интегрированный LoPreff)
# Включить/выключить модуль
enabled: true
# Максимальное количество цветов в градиенте
max-colors: 7
# Минимальное количество цветов
min-colors: 1
# Цена за каждый цвет (PlayerPoints)
price-per-color: 50
# Цена за префикс
prefix-price: 500
# Покупка префикса один раз (потом бесплатно)
prefix-one-time-purchase: true
# Кулдаун на смену цвета (секунды)
color-cooldown: 60
# Кулдаун на смену префикса (секунды)
prefix-cooldown: 300
# Максимальная длина префикса
max-prefix-length: 7
# Формат префикса ({prefix} - сам префикс)
prefix-format: "[{prefix}] "
# Применять градиент на префикс
gradient-on-prefix: true
# Единый градиент на префикс + ник
continuous-gradient: true
# Использовать &#RRGGBB формат (true) или <#RRGGBB> (false)
use-legacy-rgb-format: true
# Тип хранилища: YAML или SQLITE
storage-type: YAML
# Файл SQLite базы данных
sqlite-file: gradient-data.db
# Чёрный список префиксов (нельзя использовать)
prefix-blacklist:
- admin
- owner
- moder
- helper
- staff
- модер
- админ
- хелпер

View file

@ -0,0 +1,57 @@
# LoChat Gradient Module Messages
# Сообщения модуля градиентных ников
# Общие
only-player: "§cЭта команда только для игроков!"
no-permission: "§cУ вас нет прав на это действие!"
player-not-found: "§cИгрок не найден!"
reload-success: "§aКонфигурация градиентов перезагружена!"
cooldown: "§cПодождите ещё {time} секунд!"
# Цвета
color-help: |
§e=== Команда /color ===
§e/color <цвет1> [цвет2] ... §7— установить градиент
§e/color on §7— включить цвет
§e/color off §7— выключить цвет
§e/color reset §7— сбросить цвет
§e/color copy <игрок> §7— скопировать цвет
§7Пример: /color #FF0000 #00FF00 #0000FF
color-enabled: "§aЦвет ника включён!"
color-disabled: "§cЦвет ника выключен!"
color-reset: "§aЦвет ника сброшен!"
color-no-colors: "§cУ вас нет установленных цветов!"
color-success: "§aЦвет успешно установлен! Списано: {price} PP"
color-copy-usage: "§cИспользование: /color copy <игрок>"
color-copy-no-colors: "§cУ игрока {player} нет цветов!"
invalid-color: "§cНеверный формат цвета: {color}. Используйте #RRGGBB"
too-many-colors: "§cМаксимум {max} цветов!"
not-enough-colors: "§cМинимум {min} цветов!"
not-enough-points-color: "§cНедостаточно поинтов! Нужно: {price} PP"
# Префикс
prefix-help: |
§e=== Команда /prefix ===
§e/prefix <текст> §7— установить префикс
§e/prefix on §7— включить префикс
§e/prefix off §7— выключить префикс
§e/prefix reset §7— сбросить префикс
prefix-enabled: "§aПрефикс включён!"
prefix-disabled: "§cПрефикс выключен!"
prefix-reset-success: "§aПрефикс сброшен!"
prefix-no-prefix: "§cУ вас нет установленного префикса!"
prefix-success: "§aПрефикс успешно установлен! Списано: {price} PP"
prefix-success-free: "§aПрефикс успешно изменён!"
prefix-no-colors: "§cПрефикс не может содержать цветовые коды!"
prefix-invalid-chars: "§cПрефикс содержит недопустимые символы!"
prefix-blacklisted: "§cЭтот префикс запрещён!"
prefix-too-long: "§cПрефикс слишком длинный! Максимум: {max} символов"
not-enough-points-prefix: "§cНедостаточно поинтов! Нужно: {price} PP"
# Админ информация
info-header: "§e=== Информация об игроке {player} ==="
info-prefix: "§7Префикс: §f{prefix}"
info-prefix-enabled: "§7Префикс включён: §f{enabled}"
info-colors: "§7Цвета: §f{colors}"
info-color-enabled: "§7Цвет включён: §f{enabled}"
info-prefix-purchased: "§7Префикс куплен: §f{purchased}"

View file

@ -0,0 +1,60 @@
prefix: "<gold>[LoChat]</gold>"
global:
disabled: "<red>Глобальный чат отключен</red>"
toggled-on: "<green>Глобальный чат включен</green>"
toggled-off: "<red>Глобальный чат отключен</red>"
local:
no-players: "<red>Рядом нет игроков</red>"
pm:
sent: "<gray>[PM] Ты → {player}: {message}</gray>"
received: "<gray>[PM] {player} → Ты: {message}</gray>"
no-reply: "<red>Некому ответить</red>"
ignored: "<red>Этот игрок вас игнорирует</red>"
player-offline: "<red>Игрок не в сети</red>"
self: "<red>Нельзя писать самому себе</red>"
ignore:
added: "<green>Игрок {player} добавлен в игнор</green>"
removed: "<green>Игрок {player} убран из игнора</green>"
already-ignored: "<red>Игрок уже в игноре</red>"
not-ignored: "<red>Игрок не в игноре</red>"
self: "<red>Нельзя игнорировать себя</red>"
announce:
reloaded: "<green>Конфигурация перезагружена</green>"
mute:
muted: "<green>Игрок {player} замучен на {time}</green>"
unmuted: "<green>Игрок {player} размучен</green>"
already-muted: "<red>Игрок уже замучен</red>"
not-muted: "<red>Игрок не замучен</red>"
you-muted: "<red>Вы замучены! Осталось: {time}</red>"
permanent: "<red>Вы замучены навсегда!</red>"
spy:
enabled: "<green>Шпион режим включен</green>"
disabled: "<red>Шпион режим выключен</red>"
format: "<gray>[SPY] {sender} → {receiver}: {message}</gray>"
filter:
blocked: "<red>Сообщение заблокировано (мат)</red>"
warned: "<yellow>Предупреждение: не используйте мат!</yellow>"
cooldown:
wait: "<red>Подождите {time} сек перед следующим сообщением</red>"
antispam:
caps: "<red>Слишком много заглавных букв!</red>"
repeat: "<red>Не повторяйте символы!</red>"
similar: "<red>Не отправляйте одинаковые сообщения!</red>"
clearchat:
cleared: "<green>Чат очищен администратором {player}</green>"
errors:
no-permission: "<red>Нет прав!</red>"
player-not-found: "<red>Игрок не найден</red>"
invalid-usage: "<red>Использование: {usage}</red>"

View file

@ -0,0 +1,138 @@
name: LoChat
version: '1.0.0'
main: com.loki.lochat.LoChat
api-version: '1.21'
folia-supported: true
author: loki
description: Advanced chat plugin for Folia with gradient nicks
softdepend:
- PlaceholderAPI
- PlayerPoints
- LuckPerms
commands:
g:
description: Send global message
usage: /g <message>
permission: chat.global.use
globalchat:
description: Toggle global chat
usage: /globalchat toggle
permission: chat.global.toggle
l:
description: Send local message
usage: /l <message>
permission: chat.local.use
msg:
description: Send private message
usage: /msg <player> <message>
permission: chat.pm.use
aliases: [tell, w, pm]
reply:
description: Reply to last message
usage: /reply <message>
permission: chat.pm.use
aliases: [r]
ignore:
description: Ignore player
usage: /ignore <player>
permission: chat.pm.ignore
unignore:
description: Unignore player
usage: /unignore <player>
permission: chat.pm.ignore
announce:
description: Send announcement
usage: /announce <message>
permission: chat.announce.use
chatspy:
description: Toggle chat spy mode
usage: /chatspy
permission: chat.spy
aliases: [spy]
clearchat:
description: Clear chat for all players
usage: /clearchat
permission: chat.clear
aliases: [cc]
mute:
description: Mute a player
usage: /mute <player> <time> [reason]
permission: chat.mute
unmute:
description: Unmute a player
usage: /unmute <player>
permission: chat.mute
color:
description: Set gradient nick color
usage: /color <hex1> [hex2] ...
permission: gradient.color
aliases: [gradient]
prefix:
description: Set custom prefix
usage: /prefix <text>
permission: gradient.prefix
aprefix:
description: Admin gradient commands
usage: /aprefix <subcommand>
permission: gradient.admin
aliases: [gradientadmin]
permissions:
chat.global.use:
default: true
chat.global.toggle:
default: true
chat.global.color:
default: op
chat.local.use:
default: true
chat.local.color:
default: op
chat.pm.use:
default: true
chat.pm.ignore:
default: true
chat.announce.use:
default: op
chat.announce.reload:
default: op
chat.spy:
default: op
chat.clear:
default: op
chat.mute:
default: op
chat.bypass.cooldown:
default: op
chat.bypass.filter:
default: op
chat.bypass.antispam:
default: op
chat.mention.use:
default: true
gradient.color:
default: true
gradient.prefix:
default: true
gradient.admin:
default: op
gradient.bypass.cooldown:
default: op
gradient.bypass.cost:
default: op