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

  • Автор темы Автор темы 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

П.С. Знаю что идея бредовая, зато прикольно будет😁
П.С.С.Чтобы работал с essentials
 
Интересная идея, попробую сделать (но это не точно)
 
Я тож попробую хоть я и не особый программист но толк во мне есть!
Так что я попробую!
 
Знаешь чувак это можно сделать
Только на кик и бан

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

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

CommandPreprocessEvent
 
Хммммм
Ну я знаю что PlayerCommandPreprocessEvent но как там остановить обычный принцип работы проиграть эффекты и снова возобновить принцип работы
 
Хммммм
Ну я знаю что PlayerCommandPreprocessEvent но как там остановить обычный принцип работы проиграть эффекты и снова возобновить принцип работы
ало, ивент вызовется и выполнится ДО выполнения самой команды. это принцип всех ивентов. сначала выполняется все что в ивентах, и только потом, то, что вызвало этот ивент
 
Ну ясно у меня что-то такое получилось посмотри
JavaScript:
@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 это жертва ведь автор писал что нужно чтобы именно из жертвы выходили частицы.
 
нахрена?

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

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

Ну ясно у меня что-то такое получилось посмотри
Java:
victum.playEffect(victum.getLocation(), Effect.SMOKE, 100);
victum.playSound(victum.getLocation(), Sound.ENDERDRAGON_DEATH, 1, 1);
В этом случае частицы и звук сможет заметить только жертва.
Для того чтобы все видели частицы\слышали звук необходимо использовать методы объекта world
Java:
victum.getLocation().getWorld().spawnParticle();
victum.getLocation().getWorld().playSound();
 
Хм дану
а года я делал вот так
public void onBan(...Event e){
Player p = e.getPlayer();
if(e.getMessage().contains("/ban")){
e.setCancelled(true);
p.sendMessage("Тест");
}
}

У меня усё работало
e.setCancelled(true); выступает в качестве игнора реестра.
Данный метод отменяет проверку наличия команды.
Я так команду pl блокирую
Java:
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("Ты чо твориш?!");
    }
  }
}
 
нахрена?

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

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


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

Хм дану
--- Сообщения объединены: Сегодня, в 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); выступает в качестве игнора реестра.
Данный метод отменяет проверку наличия команды.
 
Ловим препроцесс, отменяем его, проверяем права, воспроизводим жертве нужные частицы, вновь выполняем первоначальную команду от имени отправителя при помощи Bukkit.dispatchCommand(player, "command"), чтобы выполнение не зациклилось.
При желании можно сделать какой-нибудь самостоятельный плагин PreCommandsAPI, а уже на нем написать плагин для работы с мутами и банами
 

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