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

Идея Выполнение игроком команды от имени консоли

Тема в разделе "Запросы на разработку плагинов", создана пользователем Devel, 4 мар 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    Категория плагина: Администрирование

    Предлагаемое название: AdminConsole

    Версия сервера: 1.8 - 1.12.x

    Что я хочу: Надо чтобы когда игрок писал обычную команду, то она выполнялась как обычкая команда, а если вместо "/" писал "> ", то команда выполнялась бы от имени консоли. Но если у игрока нет прав на это, тогда то, что игрок без прав "писал" от имени консоли, выводилось в чат как просто сообщение. Обращаю внимание, что правильно будет не ">", а "> " (>пробел).

    Идеи пермишенов: adminconsole.admin

    Когда мне это нужно? Не раньше, чем вчера.
     
  2. Jaysers

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

    Баллы:
    66
    Имя в Minecraft:
    Jaysers
    Все это можно сделать с помощью reactions, не знаю насчет "> " но явно можно сделать "/console команда"
     
  3. Nikolai_Faint

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

    Баллы:
    96
    Не смешно.

    1.Можно взломать сервер по самые гланды
    2.Лучше всего добавить BlackList команд
    3.Если игрок пишет команду /console то у него символ "/" будет заменяться ">"
    4.Оплата?
    p.s Возможно реализую в FCore.
     
    Последнее редактирование: 4 мар 2018
  4. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Оплата за это?
    PHP:
    @EventHandler
    public void onChat(AsyncPlayerChatEvent e) {
        if(
    e.getMessage().startsWith(">")) {
             
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst(">"""));
             
    e.setCancelled(true);
        }
    }
     
  5. Nikolai_Faint

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

    Баллы:
    96
    Это самый простой в мире пример. Я лишь предложил улучшить плагин, добавить еще фишек(по мимо того что я предложил), и тогда оплата.
     
  6. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Я добавил проверку на права. У меня чувство мы что сейчас полный плагин напишем.

    PHP:
    @EventHandler
    public void onChat(AsyncPlayerChatEvent e) {
        if(
    e.getMessage().startsWith(">")) {
            if(
    e.getPlayer().hasPermission("adminconsole.admin")) {
                
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst("> """));
                
    e.setCancelled(true);
            }
        }
    }
     
  7. Nikolai_Faint

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

    Баллы:
    96
    Код взят у @Cool_boy
    PHP:
       public void onConsoleSend(AsyncPlayerChatEvent e) { //Ивент
            
    if(e.getMessage().startsWith(">")) { //Если сообщение начинается на >
                
    if(e.getPlayer().hasPermission("adminconsole.admin")) { //Если у игрока есть перм
                    
    e.getPlayer().sendMessage(ChatColor.RED "Консольный режим активирован!"); //Сообщение
                    
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst(">""")); //Вводим команду и выполняем её
                    
    e.setCancelled(true); //Отменяем
                    
    return; //Возвращаем
                
    } else { //Если нет прав
                    
    e.getPlayer().sendMessage(ChatColor.RED "У вас нет прав!"); //Сообщение
                    
    return; //Возвращаем
                
    }
            } else { 
    //Если символ не >
                
    return; //Возвращаем
            
    }
       }
    }
     
  8. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Зачем столько ретурнов, когда у тебя елсе есть?
     
  9. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    А если то же, но при отсутствии прав сообщение просто идёт в чат как обычное сообщение
     
  10. Nikolai_Faint

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

    Баллы:
    96
    Ну да, а что:?
     
  11. Nikolai_Faint

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

    Баллы:
    96
    Люблю юзать return; Целая комната в return;
     
  12. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    и последнее: как сделать так, чтобы начиналось не на ">",a HA "> " (>пробел)?
     
  13. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    просто при if(e.getMessage().startsWith("> ")) и Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst(">", "")) крашит
     
  14. Nikolai_Faint

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

    Баллы:
    96
    PHP:
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst("> """));
     
  15. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    я ошибся в эклипсе именно такой код Bukkit.dispatchCommand(Bukkit.getConsoleSender(), e.getMessage().replaceFirst("> ", "")); и всё равно крашит там у меня изначально был пробел при сообщении ошибился
     
  16. Nikolai_Faint

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

    Баллы:
    96
    Ничего не понял.
    Итс ворк Eclipse
    upload_2018-3-4_22-13-45.png
     
  17. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    крашит при таком раскладе
     

    Вложения:

    • crash.png
      Размер файла:
      285,4 КБ
      Просмотров:
      12
  18. Nikolai_Faint

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

    Баллы:
    96
    Как именно крашит? Не вижу ошибки.
     
  19. Nikolai_Faint

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

    Баллы:
    96
    А стоп
    upload_2018-3-4_22-31-47.png
    Там не должно быть пробела
     
  20. Автор темы
    Devel

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

    Баллы:
    31
    Имя в Minecraft:
    TBOYA_MAMKA
    ну так а как сделать так, чтобы был пробел?
     
Статус темы:
Закрыта.

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