Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [Chat] Orthography 5.0 - исправляем ошибки школьников [1.8+]

DonDays

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
DonDays
Orthography v5.0 by DonDays
Все мы знаем, что почти каждый второй сервер наводнен толпой неграмотных школьников. Orthography призван, чтобы защитить от них ваш сервер, и для того, чтобы их ошибки не резали ваши глаза.
==================================================================
ChangeLog:
1.0:
- Релиз плагина
2.0:
- Добавлены слова "его" и "тут"
- Добавлена возможность включения/выключения сообщений о том, что игрок допустил орфографическую ошибку
- Добавлена возможность смены префикса сообщений
3.0:
- Добавлены кастомные замены в конфиге (спасибо xDark)
4.0:
- Добавлена кастомизация сообщений
5.0 - полное обновление:
- Добавлена поддержка BungeeCord
- Добавлено API для разработчиков его, конечно, никто не будет юзать, но все же
- Весь говнокод и мусор был убран; работа плагина оптимизирована и нагрузка на сервер уменьшена но это, опять же, не точно
==================================================================
Скачать: https://yadi.sk/d/T9gCeQ623LgQQm
GitHub: https://github.com/DonDays/Orthography

 
Последнее редактирование:
сделай так когда школо напишет "евошний" то пускай меняет на "его"
 
UPD: Плагин обновлен до версии 2.0, добавлена возможность смены префикса сообщений, 2 новых слова добавлены в фильтр
 
Даёшь паблик сайт для составления списка, а плагин пусть подгружает и кеширует у себя свежие апдейты =)
 
даёшь перепис!
Java:
package ru.dondays.orthography;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Orthography extends JavaPlugin implements Listener {
    private String msgPrefix;
    private boolean enabled;

    public void onEnable() {
        saveDefaultConfig();
        reloadConfig();
        Bukkit.getPluginManager().registerEvents(this, this);
        this.msgPrefix = fixColors(getConfig().getString("msgPrefix"));
        this.enabled = getConfig().getBoolean("enable-messages");
    }

    @EventHandler
    public void onChatLower(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        String msg = e.getMessage();
        if (!enabled)
            return;
        for (String key : getConfig().getConfigurationSection("replace").getKeys(false)) {
            String from = getConfig().getString("replace." + key + ".from");
            String to = getConfig().getString("replace." + key + ".to");
            if (!msg.toLowerCase().contains(from.toLowerCase())) continue;
            e.setMessage(msg.replace(from, to));
            player.sendMessage(this.msgPrefix + "§cВместо " + from + " нужно писать " + to + "!");
            }
        }
    }
    private String fixColors(String string) {
        return string.replace('&', '§');
    }
}
Код:
enable-messages: true
msgPrefix: '&f[&cПиши правильно!&f] '
replace:
  test:
    from: шо
    to: что
 
Последнее редактирование:
даешь перепис!
Java:
package ru.dondays.orthography;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Orthography extends JavaPlugin implements Listener {
    private String msgPrefix;
    private boolean enabled;

    public void onEnable() {
        saveDefaultConfig();
        reloadConfig();
        Bukkit.getPluginManager().registerEvents(this, this);
        this.msgPrefix = fixColors(getConfig().getString("msgPrefix"));
        this.enabled = getConfig().getBoolean("enable-messages");
    }

    @EventHandler
    public void onChatLower(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        String msg = e.getMessage();
        if (!enabled)
            return;
        for (String key : getConfig().getConfigurationSection("replace").getKeys(false)) {
            String from = getConfig().getString("replace." + key + ".from");
            String to = getConfig().getString("replace." + key + ".to");
            if (msg.toLowerCase().contains(from.toLowerCase())) {
                e.setMessage(msg.replace(from, to));
                player.sendMessage(this.msgPrefix + "§cВместо " + from + " нужно писать " + to + "!");
            }
        }
    }

    private String fixColors(String string) {
        return string.replace('&', '§');
    }
}
Код:
enable-messages: true
msgPrefix: '&f[&cПиши правильно!&f] '
replace:
  test:
    from: шо
    to: что
Годношечно
 
даешь перепис!
Java:
package ru.dondays.orthography;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Orthography extends JavaPlugin implements Listener {
    private String msgPrefix;
    private boolean enabled;

    public void onEnable() {
        saveDefaultConfig();
        reloadConfig();
        Bukkit.getPluginManager().registerEvents(this, this);
        this.msgPrefix = fixColors(getConfig().getString("msgPrefix"));
        this.enabled = getConfig().getBoolean("enable-messages");
    }

    @EventHandler
    public void onChatLower(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        String msg = e.getMessage();
        if (!enabled)
            return;
        for (String key : getConfig().getConfigurationSection("replace").getKeys(false)) {
            String from = getConfig().getString("replace." + key + ".from");
            String to = getConfig().getString("replace." + key + ".to");
            if (!msg.toLowerCase().contains(from.toLowerCase())) continue;
            if (msg.toLowerCase().contains(from.toLowerCase())) {
                e.setMessage(msg.replace(from, to));
                player.sendMessage(this.msgPrefix + "§cВместо " + from + " нужно писать " + to + "!");
            }
        }
    }
    private String fixColors(String string) {
        return string.replace('&', '§');
    }
}
Код:
enable-messages: true
msgPrefix: '&f[&cПиши правильно!&f] '
replace:
  test:
    from: шо
    to: что
Спасибо за код, как раз на днях хотел сделать похожее

UPD: Плагин обновлен до версии 3.0, спасибо xDark :good:
 
upload_2016-9-28_20-49-40.png
Это что за? Зачем ты сюда & впихнул? Ещё и с одинаковыми условиями....
 
Посмотреть вложение 43162
Это что за? Зачем ты сюда & впихнул? Ещё и с одинаковыми условиями....
Честно сказать, я тоже...
Посмотреть вложение 43162
Это что за? Зачем ты сюда & впихнул? Ещё и с одинаковыми условиями....
Декомпиляторам нельзя верить, завтра опубликую сурсы
UPD: Плагин обновлен до версии 4.0, добавлена кастомизация сообщений
 
Последнее редактирование:
даёшь перепис!
Java:
package ru.dondays.orthography;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Orthography extends JavaPlugin implements Listener {
    private String msgPrefix;
    private boolean enabled;

    public void onEnable() {
        saveDefaultConfig();
        reloadConfig();
        Bukkit.getPluginManager().registerEvents(this, this);
        this.msgPrefix = fixColors(getConfig().getString("msgPrefix"));
        this.enabled = getConfig().getBoolean("enable-messages");
    }

    @EventHandler
    public void onChatLower(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        String msg = e.getMessage();
        if (!enabled)
            return;
        for (String key : getConfig().getConfigurationSection("replace").getKeys(false)) {
            String from = getConfig().getString("replace." + key + ".from");
            String to = getConfig().getString("replace." + key + ".to");
            if (!msg.toLowerCase().contains(from.toLowerCase())) continue;
            if (msg.toLowerCase().contains(from.toLowerCase())) {
                e.setMessage(msg.replace(from, to));
                player.sendMessage(this.msgPrefix + "§cВместо " + from + " нужно писать " + to + "!");
            }
        }
    }
    private String fixColors(String string) {
        return string.replace('&', '§');
    }
}
Код:
enable-messages: true
msgPrefix: '&f[&cПиши правильно!&f] '
replace:
  test:
    from: шо
    to: что
За такой код пора сажать. Ну или хотя бы удалять сообщения.
Алсо, такой способ хоть и работает, но когда слишком много объектов в секции "replace" будет немного грустно всем.
И твой способ слишком топорный. Фу-фу-фу.
 
Не годно. Любой действительно годный плагин умеет в редактирование слов, отправленных в чат.

(ChatManager, SuperCensor, ChatGuard и т.д.)

На крайняк есть MessageFilter.
 
За такой код пора сажать. Ну или хотя бы удалять сообщения.
Алсо, такой способ хоть и работает, но когда слишком много объектов в секции "replace" будет немного грустно всем.
И твой способ слишком топорный. Фу-фу-фу.
че уж, sqlite тогда сразу
 

Поделиться этой страницей

Назад
Верх