Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин [ADMIN/SEC] CommandSpy v4.0 - шпионь за игроками [1.8.9+]

Тема в разделе "Неподтвержденные плагины", создана пользователем DonDays, 5 сен 2016.

  1. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
     
  2. Хостинг MineCraft
    <
  3. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
    Говнокод говнокодом, а чёрный список команд и игроков нужен:)
     
  4. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    говнокода нет уже, а списки будут[DOUBLEPOST=1492100047,1492098781][/DOUBLEPOST]update
     
  5. GoogleKiller

    GoogleKiller Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Google_Killer
    В названии темы так и осталось v0.3...
     
  6. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Lol:nerd:
     
  7. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
    Спасибки, изи консоль для сервера
     
  8. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Вообще эта фича для администраторов/персонала сервера, глупо раздавать донатерам такие полномочия
     
  9. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
    Согласен, но идёт 2017 год и почти у всех такие плагины. Это привлекает аудиторию.
     
  10. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    разве что чсв школьников
     
  11. OsipXD

    OsipXD Старожил Пользователь

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Сорцы в студию
     
  12. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    не могу скинуть файлом, так что, простите уж, скину сообщением
    Код:
    package ru.dondays.commandspy;
    
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.HandlerList;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.server.ServerCommandEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class Main
        extends JavaPlugin
        implements Listener {
    
        private boolean logConsole;
        private List<String> ignore;
       
        private ConsoleListener consoleListener;
       
        private Set<Player> spy;
        private boolean pex;
       
        @Override
        public void onEnable() {
            this.saveDefaultConfig();
            this.load();
            this.spy = new HashSet<>();
            try {
                Class.forName("ru.tehkode.permissions.bukkit.PermissionsEx");
                this.pex = true;
            } catch(final ClassNotFoundException ignore) {
                this.pex = false;
            }
            this.getServer().getPluginManager().registerEvents(this, this);
        }
       
        @EventHandler(priority=EventPriority.HIGHEST)
        public void onPlayerCommand(final PlayerCommandPreprocessEvent e) {
            if(e.isCancelled()) {
                return;
            }
            for(final String ignore: this.ignore) {
                if(!e.getMessage().startsWith(ignore)) {
                    continue;
                }
                return;
            }
            this.spy.forEach(player -> {
                player.sendMessage("§f[§cCommandSpy§f] " + (this.pex ? PermissionsEx.getUser(e.getPlayer()).getPrefix() : "") + e.getPlayer().getName() +" §fвыполняет команду: §a" + e.getMessage());
            });
        }
    
        @Override
        public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) {
            if(args.length == 1 && args[0].toLowerCase().equalsIgnoreCase("reload")) {
                if(!sender.hasPermission("commandspy.reload")) {
                    sender.sendMessage("§f[§cCommandSpy§f] §cУ вас недостаточно прав!");
                    return false;
                }
                this.reloadConfig();
                this.load();
                sender.sendMessage("§f[§cCommandSpy§f] Конфигурация успешно перезагружена!");
                return false;
            }
            if(!(sender instanceof Player)) {
                sender.sendMessage("§f[§cCommandSpy§f] §cPlayers only :C");
                return false;
            }
            if(!sender.hasPermission("commandspy.spy")) {
                sender.sendMessage("§f[§cCommandSpy§f] §cУ вас недостаточно прав! :C");
                return false;
            }
            if(!this.spy.contains((Player)sender)) {
                this.spy.add((Player)sender);
            } else {
                this.spy.remove((Player)sender);
            }
            sender.sendMessage("§f[§cCommandSpy§f] Вы " + (this.spy.contains((Player)sender) ? "§aвключили" : "§cвыключили") + " §fслежку за игроками.");
            return true;
        }
       
        private void load() {
            this.logConsole = this.getConfig().getBoolean("AnnounceConsoleCommands");
            this.ignore = this.getConfig().getStringList("CommandsBlacklist");
            if(!this.logConsole && this.consoleListener != null) {
                HandlerList.unregisterAll(this.consoleListener);
            } else if(this.logConsole && this.consoleListener == null) {
                this.getServer().getPluginManager().registerEvents((this.consoleListener == null ? (this.consoleListener = new ConsoleListener()) : this.consoleListener), this);
            }
        }
       
        private class ConsoleListener
            implements Listener {
           
            @EventHandler(priority=EventPriority.HIGHEST)
            public void onConsoleCommand(final ServerCommandEvent e) {
                if(e.isCancelled()) {
                    return;
                }
                for(final String ignore: Main.this.ignore) {
                    if(!e.getCommand().startsWith(ignore)) {
                        continue;
                    }
                    return;
                }
                Main.this.spy.forEach(player -> {
                    player.sendMessage("§f[§cCommandSpy§f] §eКонсоль §fвыполняет команду: §a" + e.getCommand());
                });
            }
        }
    }
    
     
  13. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
    А в плагине код закрыт чтоли?
     
  14. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Там фичи из 8 джавы, вот и не декомпилируется.
     
  15. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
    Блин, а зачем убрал MSGPREFIX?
     
  16. OsipXD

    OsipXD Старожил Пользователь

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    А почему бы не использовать Vault, чтобы поддерживать не только префиксы PermissionsEX?
     
  17. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Начнем с того, что все используют пекс. А вообще, мне было просто лень интегрировать Vault
    p.s.: про использование его апи знаю
     
  18. MIsterTrays

    MIsterTrays Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    MisterTrays
  19. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Пару секунд...[DOUBLEPOST=1492180021,1492179775][/DOUBLEPOST]@MIsterTrays, перезалил, скачай из шапки темы
     
  20. OsipXD

    OsipXD Старожил Пользователь

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Насчет изменения версий: http://semver.org/lang/ru/
    Тут, конечно, нет публичного API, но изменение мажорной версии в любом подразумевает что-то более глобальное, чем добавление поддержки цветовых кодов
     
  21. Автор темы
    DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    хз, лично я, когда пишу плагин для себя всегда пишу версию 1.0, а тут, при каждом обновлении, тупо увеличиваю версию плагина на 1
     

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