Помогите Временный спектатор

Jonson09

Ньюби
Баллы
1
Как сделать так чтобы после смерти любого игрока ему выдавался спектатор на 1 день?
 
Как сделать так чтобы после смерти любого игрока ему выдавался спектатор на 1 день?
Код:
    @EventHandler
    public void death(PlayerDeathEvent e) {

        Player p = e.getEntity();

        if(!p.getGameMode().equals(GameMode.SPECTATOR)){
            p.setGameMode(GameMode.SPECTATOR);
            return;
        }

            new BukkitRunnable(){

                @Override
                public void run() {
                    if(p == null) return;
                    p.setGameMode(GameMode.SURVIVAL);
                    cancel();
                }
            }.runTaskLater(plugin, время, время)
        }

За работоспособность отвечать не могу)
 
Код:
    @EventHandler
    public void death(PlayerDeathEvent e) {

        Player p = e.getEntity();

        if(!p.getGameMode().equals(GameMode.SPECTATOR)){
            p.setGameMode(GameMode.SPECTATOR);
            return;
        }

            new BukkitRunnable(){

                @Override
                public void run() {
                    if(p == null) return;
                    p.setGameMode(GameMode.SURVIVAL);
                    cancel();
                }
            }.runTaskLater(plugin, время, время)
        }

За работоспособность отвечать не могу)

Большое спасибо, только в каком измерении писать время, в днях?
 
Большое спасибо, только в каком измерении писать время, в днях?
В тиках; 1 секунда - 20 тиков.
Учти, что код выше не учитывает многих нюансов, вроде выхода игрока, перезагрузки сервера, а так же игрок может быть в это время где-то высоко или в стене.
 
Код:
    @EventHandler
    public void death(PlayerDeathEvent e) {

        Player p = e.getEntity();

        if(!p.getGameMode().equals(GameMode.SPECTATOR)){
            p.setGameMode(GameMode.SPECTATOR);
            return;
        }

            new BukkitRunnable(){

                @Override
                public void run() {
                    if(p == null) return;
                    p.setGameMode(GameMode.SURVIVAL);
                    cancel();
                }
            }.runTaskLater(plugin, время, время)
        }

За работоспособность отвечать не могу)

А зачем лишняя проверка в начале? Он же в спектаторах не сможет умереть =)
 
Назад
Верх