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

Идея Красочный бан

Тема в разделе "Запросы на разработку плагинов", создана пользователем lenwtet, 30 янв 2017.

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

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

    Баллы:
    16
    Имя в Minecraft:
    lenwtet
    Приветствую!
    Короче, перейду сразу к делу.
    Многие из вас знают такие команды как: kick,mute,ban,tempban, но написав данные команду в чат и применив её на игрока, они просто выполняют действия.Хотелось бы, чтобы при написании команды, игрались некие партиклы и звуки, а уже потом на человека накладывали великие печати.

    Идеи:
    mute - Из человека выходят чёрные частицы, сопровождаемые звуком enderdragon.growl(вроде так) (2 сек).
    kick - частицы взрыва(ТНТ) (1 сек),сопровождаемые звуком enderdragon.growl
    ban,tempban - вокруг человека появляются частицы редстоуна, которые типо создают шар вокруг человека(2 сек) и потом частица взрыва(ТНТ) сопровождаемые звуком enderdragon.growl

    permissions:
    particleban.reload

    commands:
    /particleban reload - перезагрузка плагина

    Название: ParticleBan

    Время: до начала 2020 )0)0

    П.С. Знаю что идея бредовая, зато прикольно будет:D
    П.С.С.Чтобы работал с essentials
     
  2. BestKVanT

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

    Баллы:
    76
    Я ухожу, ухожу красиво.
     
  3. XjCyan1de

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

    Баллы:
    76
    Имя в Minecraft:
    XjCyan1de
    Интересная идея, попробую сделать (но это не точно)
     
  4. VeryNothing

    VeryNothing Участник Пользователь Заблокирован

    Баллы:
    36
    Имя в Minecraft:
    null
    но это не точно ору
    BRB напомнило
     
  5. Bomber123

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

    Баллы:
    76
    Я тож попробую хоть я и не особый программист но толк во мне есть!
    Так что я попробую!
     
  6. Bomber123

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

    Баллы:
    76
    Знаешь чувак это можно сделать
    Только на кик и бан

    но на Мут и Временный бан я не умею
     
  7. Автор темы
    lenwtet

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

    Баллы:
    16
    Имя в Minecraft:
    lenwtet
    Мне кажется, что можно сделать что-то по типу детектора команд.Типо, вводишь команду "/ban lenwtet test" плагин обнаруживает написание данной команды, останавливал её обычный принцип, проигрывал эффекты, и возобновлял обычный принцип работы.

    Примерно так.Не знаю, сложно-ли будет такое написать, но выглядит не так страшно.
     
  8. Bomber123

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

    Баллы:
    76
    Ну вот смотри ты конечно прав
    Это не так страшно
    Но для не особо опытных кодеров как раз страшно
    Во-первых для начала нужно обнаружить плагин на бан, кик, мут и т.д.
    Ежели такого нет нужно сделать бан самому
    Во вторых нужно сделать так чтобы действие происходило не сразу а для начала был произведён эффект.
    Ну вот теперь думайте страшно это или нет.
     
  9. Blc_Dragon

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

    Баллы:
    76
    Вы ч0 курили

    CommandPreprocessEvent
     
  10. Bomber123

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

    Баллы:
    76
    Хммммм
    Ну я знаю что PlayerCommandPreprocessEvent но как там остановить обычный принцип работы проиграть эффекты и снова возобновить принцип работы
     
  11. Blc_Dragon

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

    Баллы:
    76
    ало, ивент вызовется и выполнится ДО выполнения самой команды. это принцип всех ивентов. сначала выполняется все что в ивентах, и только потом, то, что вызвало этот ивент
     
  12. Bomber123

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

    Баллы:
    76
    Ну ясно у меня что-то такое получилось посмотри
    Код:
    @EventHandler
        public void onBan(PlayerCommandPreprocessEvent e){
            if(e.getMessage().equalsIgnoreCase("ban")){
               
                String name = e.getMessage();
                Player victum = Bukkit.getPlayer(name);
               
                e.setCancelled(true);
               
                victum.playEffect(victum.getLocation(), Effect.SMOKE, 100);
                victum.playSound(victum.getLocation(), Sound.ENDERDRAGON_DEATH, 1, 1);
               
                e.setCancelled(false);

    Victum это жертва ведь автор писал что нужно чтобы именно из жертвы выходили частицы.
     
  13. Blc_Dragon

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

    Баллы:
    76
    нахрена?

    на сервере произойдет примерно так.

    Игрок ввел команду.
    Сервер вызвал событыие.
    Все слушатели выполнили свои коды в ивенте. (если самый первый слушатель отменит ивент, то остальные слушатели не будут выполнять свои коды. [если только у них нет игнорирования отмены]).
    Выполнилось действие команды, если ивент не отменен.

    В этом случае частицы и звук сможет заметить только жертва.
    Для того чтобы все видели частицы\слышали звук необходимо использовать методы объекта world
    Код:
    victum.getLocation().getWorld().spawnParticle();
    victum.getLocation().getWorld().playSound();
    
     
  14. EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Я так команду pl блокирую
    Код:
    public void onCommand(PlayerCommandPreprocessEvent event) {
      if(!event.getPlayer().hasPermissions("CommandBlocker.bypass")) {
        if(event.getMessage.equalsIgnoreCase("pl")
           || event.getMessage().startsWith("pl ")) {
            event.setCancelled(true);
            event.getPlayer().sendMessage("Ты чо твориш?!");
        }
      }
    }
     
  15. Bomber123

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

    Баллы:
    76
    Хм дану
    --- Сообщения объединены: Сегодня, в 17:34, предыдущее сообщение: Сегодня, в 17:28 ---
    а года я делал вот так
    public void onBan(...Event e){
    Player p = e.getPlayer();
    if(e.getMessage().contains("/ban")){
    e.setCancelled(true);
    p.sendMessage("Тест");
    }
    }

    У меня усё работало
    --- Сообщения объединены: Сегодня, в 17:37 ---
    e.setCancelled(true); выступает в качестве игнора реестра.
    Данный метод отменяет проверку наличия команды.
     
  16. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ловим препроцесс, отменяем его, проверяем права, воспроизводим жертве нужные частицы, вновь выполняем первоначальную команду от имени отправителя при помощи Bukkit.dispatchCommand(player, "command"), чтобы выполнение не зациклилось.
    При желании можно сделать какой-нибудь самостоятельный плагин PreCommandsAPI, а уже на нем написать плагин для работы с мутами и банами
     
  17. Blc_Dragon

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

    Баллы:
    76
    на кой отменять то, ало
     
  18. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Подумай
     
  19. Blc_Dragon

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

    Баллы:
    76
    Это eventAPI. Если у тебя другая информация, то поделись ей, будь так добр
     
  20. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Какой смысл показывать "жертве" частицы, если она всё равно не успеет их увидеть?
     

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