Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Запросы на разработку плагинов' started by lenwtet, Jan 30, 2017.

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    CommandPreprocessEvent
     
  13. Bomber123

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

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

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

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

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

    Trophy Points:
    46
    Ну ясно у меня что-то такое получилось посмотри
    Code:
    @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 Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    нахрена?

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    EnderBro3D
    Я так команду pl блокирую
    Code:
    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 Активный участник Пользователь

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

    Trophy Points:
    76
    Подумай
     

Share This Page