Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов 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. Хостинг MineCraft
    <
  3. BestKVanT

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

    Баллы:
    76
    Имя в Minecraft:
    BestKVanT
    Я ухожу, ухожу красиво.
     
  4. XjCyan1de

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

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

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

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

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

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

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

    Баллы:
    46
    Skype:
    dimasikus.dddss
    Имя в Minecraft:
    N0Trix
    Хах... Уйти так уйти красиво) Я не очень хорошо пишу плагины на джаве но попробую)Хах... Уйти так уйти красиво) Я не очень хорошо пишу плагины на джаве но попробую)[DOUBLEPOST=1490455110,1490452619][/DOUBLEPOST]Ну наверное я смогу сделать)
     
  8. Bomber123

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

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

    но на Мут и Временный бан я не умею
     
  9. N0Trix

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

    Баллы:
    46
    Skype:
    dimasikus.dddss
    Имя в Minecraft:
    N0Trix
    +[DOUBLEPOST=1490528165,1490528087][/DOUBLEPOST]
    Убило)
     
  10. Автор темы
    lenwtet

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

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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Вы ч0 курили

    CommandPreprocessEvent
     
  13. Bomber123

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

    Баллы:
    46
    Хммммм[DOUBLEPOST=1490591421,1490591237][/DOUBLEPOST]Ну я знаю что PlayerCommandPreprocessEvent но как там остановить обычный принцип работы проиграть эффекты и снова возобновить принцип работы
     
  14. Blc_Dragon

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

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

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

    Баллы:
    46
    Ну ясно у меня что-то такое получилось посмотри
    Код:
    @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);
    [DOUBLEPOST=1490593728,1490593620][/DOUBLEPOST]Victum это жертва ведь автор писал что нужно чтобы именно из жертвы выходили частицы.
     
  16. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    нахрена?

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

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

    В этом случае частицы и звук сможет заметить только жертва.
    Для того чтобы все видели частицы\слышали звук необходимо использовать методы объекта world
    Код:
    victum.getLocation().getWorld().spawnParticle();
    victum.getLocation().getWorld().playSound();
    
     
  17. 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("Ты чо твориш?!");
        }
      }
    }
     
  18. Bomber123

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

    Баллы:
    46
    Хм дану
    --- Сообщения объединены: Сегодня, в 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); выступает в качестве игнора реестра.
    Данный метод отменяет проверку наличия команды.
     
  19. Dymeth

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    на кой отменять то, ало
     
  21. Dymeth

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

    Баллы:
    76
    Подумай
     

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