Будьте добры помочь)

mustik1337

Активный участник
Баллы
61
Имя в Minecraft
mustik
Допустим если перевысить предел щелчков в секунду, после будет наноситься наименьший урон, код прилагается с низу . Очень прошу, помогите слоупоку, очень мне нужны ваши знания:cry:. Суть вопроса, мне нужно понять что надо вписать чтобы наносился наименьший урон игроку после превышения cps(кликов в секунду).
Заранее вам благодарен:creeper:.
Код:
@EventHandler
    public void onClick(PlayerInteractEvent event) {
        if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) {
            User u = UserManager.getUser(event.getPlayer().getName());
            u.setCps(u.getCps() + 1);
            if (u.getCps() > Main.getPlugin().getConfig().getInt("max_cps")){
 
Допустим если перевысить предел щелчков в секунду, после будет наноситься наименьший урон, код прилагается с низу . Очень прошу, помогите слоупоку, очень мне нужны ваши знания:cry:. Суть вопроса, мне нужно понять что надо вписать чтобы наносился наименьший урон игроку после превышения cps(кликов в секунду).
Заранее вам благодарен:creeper:.
Код:
@EventHandler
    public void onClick(PlayerInteractEvent event) {
        if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) {
            User u = UserManager.getUser(event.getPlayer().getName());
            u.setCps(u.getCps() + 1);
            if (u.getCps() > Main.getPlugin().getConfig().getInt("max_cps")){
Так а в чем проблема? Просто шедулером каждую секунду отчищаешь cps игроков - profit.
 
Так а в чем проблема? Просто шедулером каждую секунду отчищаешь cps игроков - profit.
Добрый день, понятия не имею как можно реализовать этот код через Scheduler.
Можно пожалуйста по подробнее.
 
Добрый день, понятия не имею как можно реализовать этот код через Scheduler.
Можно пожалуйста по подробнее.
Естественно предварительно добавить необходимые проверки
Код:
        Bukkit.getScheduler().runTaskTimerAsynchronously(Main.getPlugin(), () -> {
            for (Player all : Bukkit.getOnlinePlayers())
                all.setCps(0);
            }, 20, 20);
 
Естественно предварительно добавить необходимые проверки
Код:
        Bukkit.getScheduler().runTaskTimerAsynchronously(Main.getPlugin(), () -> {
            for (Player all : Bukkit.getOnlinePlayers())
                all.setCps(0);
            }, 20, 20);
The method setCps(int) is undefined for the type Player
Выдает вот это(
 
The method setCps(int) is undefined for the type Player
Выдает вот это(
ну, ты в коде используешь не игроков, а кастомных юзеров, преобразуй игрока all в юзеры сначала.

Код:
       Bukkit.getScheduler().runTaskTimerAsynchronously(Main.getPlugin(), () -> {
           for (Player all : Bukkit.getOnlinePlayers()) {
               User user = UserManager.getUser(all.getName());
               user.setCps(0);
           }
       }, 20, 20);
 
И юзеров парси по UUID
 
ну, ты в коде используешь не игроков, а кастомных юзеров, преобразуй игрока all в юзеры сначала.

Код:
       Bukkit.getScheduler().runTaskTimerAsynchronously(Main.getPlugin(), () -> {
           for (Player all : Bukkit.getOnlinePlayers()) {
               User user = UserManager.getUser(all.getName());
               user.setCps(0);
           }
       }, 20, 20);
Не работает уменьшение урона, я тут узнал что только кикнуть игрока могу за превышение кпс, а остальное с хитами не работает.
 
Не работает уменьшение урона, я тут узнал что только кикнуть игрока могу за превышение кпс, а остальное с хитами не работает.
Ну конечно не работает потому, что у тебя нет кода для выполнения этого. Тебе нужно работать с евентом EntityDamageByEntityEvent
там достанешь и того кто ударил и кого ударили, и урон можно изменить или отменить
 
Назад
Верх