Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

.

Статус
Закрыто для дальнейших ответов.
Это не ошибка, тебе просто сообщается, что ты эту переменную нигде не используешь (в if например).
 
Нет, ты просто присваиваешь ей значение.
Ладно, ясно, спасибо)
Наверно очень дурацкий вопрос но все-же:
JavaScript:
    //Собираюсь реализовать отменение удара, если оба Player находяться в одном HashMap.
    @EventHandler
    public void TeamDamage(EntityDamageByEntityEvent edbee)
    {
        //Правильно ли реализована проверка, или надо еще что-то добавить?
        if (edbee.getDamager() instanceof Player)
        {
            //Как сюда получить того который дамажил?
            Player agree = ;
            //А сюда который был "дамаженным" :D ?
            Player disagree = ;
        }
    }
Документацию читать не умею, а по названиям методов не слишком понял что к чему...
 
Ладно, ясно, спасибо)
Наверно очень дурацкий вопрос но все-же:
JavaScript:
    //Собираюсь реализовать отменение удара, если оба Player находяться в одном HashMap.
    @EventHandler
    public void TeamDamage(EntityDamageByEntityEvent edbee)
    {
        //Правильно ли реализована проверка, или надо еще что-то добавить?
        if (edbee.getDamager() instanceof Player)
        {
            //Как сюда получить того который дамажил?
            Player agree = ;
            //А сюда который был "дамаженным" :D ?
            Player disagree = ;
        }
    }
Документацию читать не умею, а по названиям методов не слишком понял что к чему...
Player p = (Player) e.getEntity(); // if(instanceof)
Player damager = (Player) e.getDamager();
if(map.containsKey(p.getName()) && map.containsKey(damager.getName()))
...

На всякий случай предупрежу:
НИКОГДА нигде не храните объект Player. Только ник или UUID.
 
Player p = (Player) e.getEntity(); // if(instanceof)
Player damager = (Player) e.getDamager();
if(map.containsKey(p.getName()) && map.containsKey(damager.getName()))
...

На всякий случай предупрежу:
НИКОГДА нигде не храните объект Player. Только ник или UUID.
Ага, т.е. getEntity() это дамаженный, а getDamager() дамагующий.. спасибо!
Ну и вопрос довольно интересный, а почему так плохо хранить в Player?
 
Последнее редактирование:
Ага, т.е. getEntuty() это дамаженный, а getDamager() дамагующий.. спасибо!
Ну и вопрос довольно интересный, а почему так плохо хранить в Player?
Потому что объект игрока часто меняется, и, например, после смерти игрока его прежний объект уже не будет актуальным.
 
Потому что объект игрока часто меняется, и, например, после смерти игрока его прежний объект уже не будет актуальным.
УХ ТЫж етить как плохенько... А можно ли как-то получить игрока по нику?..
 
УХ ТЫж етить как плохенько... А можно ли как-то получить игрока по нику?..
Так переменная используется в методе, который вызывается ивентом. Т.е. ну никак эта переменная не успеет стать не актуальной, если конечно она не глобальная, тогда да. Только насчет воздействий я как-то не понял. Вот например player.sendMessage("блаблабла") прокатывает, но прокатит ли что-нибудь типа setWalkSpeed(float value)? Не знаю, вот с переменной Block всякие манипуляции не прокатывали.

https://hub.spigotmc.org/javadocs/bukkit/
Вот в этом классе есть методы получения игрока по нику и UUID.
 
Теперь осталось выбрать кому мне поверить... :confused:
Но всё же лучше пользоваться каким-то более статичным ключом(вроде ууида или ника, как уже говорили), так надёжнее.
 
Ладно, потом разберусь кому верить :D
В общем, вопрос скорее не по Bukkit, а по Java, но сам сообразить не могу... Допустим у меня есть:
1. Класс.
2. Переменные класса.
3. Переменная ArrayList<Этот_же_класс> list.
4. Конструктор этого класса.
Я хочу в конструкторе класса внести в АрраиЛист тот класс который сейчас создался, как это можно сделать?
 
Т.Е. просто имя.add(this) и все будет норм? Спасибо)
Не работает плагинный чат.
JavaScript:
package ua.roboman.plugin.WarForFlag;

import org.bukkit.entity.Player;

import java.util.ArrayList;

public class Team
{
    public String teamName;
    public int wins = 0;
    public Arena arena;
    public ArrayList<Player> playersInTeam = new ArrayList<Player>();

    public Team(String teamName, Arena arena)
    {
        if (teamName.equalsIgnoreCase("white")) this.teamName = "white";
        else if (teamName.equalsIgnoreCase("orange")) this.teamName = "orange";
        else if (teamName.equalsIgnoreCase("magenta")) this.teamName = "magenta";
        else if (teamName.equalsIgnoreCase("light_blue")) this.teamName = "light_blue";
        else if (teamName.equalsIgnoreCase("yellow")) this.teamName = "yellow";
        else if (teamName.equalsIgnoreCase("lime")) this.teamName = "lime";
        else if (teamName.equalsIgnoreCase("pink")) this.teamName = "pink";
        else if (teamName.equalsIgnoreCase("gray")) this.teamName = "gray";
        else if (teamName.equalsIgnoreCase("light_gray")) this.teamName = "light_gray";
        else if (teamName.equalsIgnoreCase("cyan")) this.teamName = "cyan";
        else if (teamName.equalsIgnoreCase("purple")) this.teamName = "purple";
        else if (teamName.equalsIgnoreCase("blue")) this.teamName = "blue";
        else if (teamName.equalsIgnoreCase("brown")) this.teamName = "brown";
        else if (teamName.equalsIgnoreCase("green")) this.teamName = "brown";
        else if (teamName.equalsIgnoreCase("red")) this.teamName = "red";
        else if (teamName.equalsIgnoreCase("black")) this.teamName = "black";
        else this.teamName = null;
        this.arena = arena;
    }

    public Team()
    {

    }

    public Team(String teamName)
    {
        this.teamName = teamName;
    }

    public Integer getTeamBlockId(String teamName)
    {
        if (teamName.equalsIgnoreCase("white")) return 0;
        else if (teamName.equalsIgnoreCase("orange")) return 1;
        else if (teamName.equalsIgnoreCase("magenta")) return 2;
        else if (teamName.equalsIgnoreCase("light_blue")) return 3;
        else if (teamName.equalsIgnoreCase("yellow")) return 4;
        else if (teamName.equalsIgnoreCase("lime")) return 5;
        else if (teamName.equalsIgnoreCase("pink")) return 6;
        else if (teamName.equalsIgnoreCase("gray")) return 7;
        else if (teamName.equalsIgnoreCase("light_gray")) return 8;
        else if (teamName.equalsIgnoreCase("cyan")) return 9;
        else if (teamName.equalsIgnoreCase("purple")) return 10;
        else if (teamName.equalsIgnoreCase("blue")) return 11;
        else if (teamName.equalsIgnoreCase("brown")) return 12;
        else if (teamName.equalsIgnoreCase("green")) return 13;
        else if (teamName.equalsIgnoreCase("red")) return 14;
        else if (teamName.equalsIgnoreCase("black")) return 15;
        else return null;
    }
}
JavaScript:
    public void joinToFreeTeam(Player player)
    {
        if (readyArenas.size() >= 2)
        {
            for (Team team : readyArenas)
            {
                for (int get = 0; get <= 32; get++)
                {
                    if (team.playersInTeam.size() == get)
                    {
                        player.teleport(team.arena.positionSpawnOfArena);
                        team.playersInTeam.add(player);
                        playersInGame.add(player);
                        log.info("Игрок " + player.getName() + " вошел в игру.");
                        player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "Вы успешно вошли в игру."));
                        break;
                    }
                }
            }
        }
        else player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "Не создано хотя-бы 2 арены&0! &cОбратитесь к администратору&0."));
    }
JavaScript:
    @EventHandler
    public void wffSpeak(PlayerChatEvent pce)
    {
        char[] messageChar = pce.getMessage().toCharArray();
        char firstChar = messageChar[0];
        if (firstChar == '!')
        {
            String newMessage = "";
            char[] chars = pce.getMessage().toCharArray();
            for (int get = 1; get <= pce.getMessage().length(); get++)
            {
                newMessage += chars[get];
            }
            for (Team team : readyArenas)
            {
                for (Player players : team.playersInTeam)
                {
                    players.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "&c[&2&lGlobal&5&lSpeak&c] &9" + pce.getPlayer().getName() + " &0: " + newMessage));
                }
            }
        }
        else
        {
            for (Team team : readyArenas)
            {
                if (team.playersInTeam.contains(pce.getPlayer()))
                {
                    pce.setCancelled(true);
                    for (Player players : team.playersInTeam)
                    {
                        players.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "&c[&1&lTeam&5&lSpeak&a] &9" + pce.getPlayer().getName() + " &0: &7" + pce.getMessage()));
                    }
                    break;
                }
            }
        }
    }

Ну т.е. сообщение не редактируется.
 
Т.Е. просто имя.add(this) и все будет норм? Спасибо)
Не работает плагинный чат.
JavaScript:
package ua.roboman.plugin.WarForFlag;

import org.bukkit.entity.Player;

import java.util.ArrayList;

public class Team
{
    public String teamName;
    public int wins = 0;
    public Arena arena;
    public ArrayList<Player> playersInTeam = new ArrayList<Player>();

    public Team(String teamName, Arena arena)
    {
        if (teamName.equalsIgnoreCase("white")) this.teamName = "white";
        else if (teamName.equalsIgnoreCase("orange")) this.teamName = "orange";
        else if (teamName.equalsIgnoreCase("magenta")) this.teamName = "magenta";
        else if (teamName.equalsIgnoreCase("light_blue")) this.teamName = "light_blue";
        else if (teamName.equalsIgnoreCase("yellow")) this.teamName = "yellow";
        else if (teamName.equalsIgnoreCase("lime")) this.teamName = "lime";
        else if (teamName.equalsIgnoreCase("pink")) this.teamName = "pink";
        else if (teamName.equalsIgnoreCase("gray")) this.teamName = "gray";
        else if (teamName.equalsIgnoreCase("light_gray")) this.teamName = "light_gray";
        else if (teamName.equalsIgnoreCase("cyan")) this.teamName = "cyan";
        else if (teamName.equalsIgnoreCase("purple")) this.teamName = "purple";
        else if (teamName.equalsIgnoreCase("blue")) this.teamName = "blue";
        else if (teamName.equalsIgnoreCase("brown")) this.teamName = "brown";
        else if (teamName.equalsIgnoreCase("green")) this.teamName = "brown";
        else if (teamName.equalsIgnoreCase("red")) this.teamName = "red";
        else if (teamName.equalsIgnoreCase("black")) this.teamName = "black";
        else this.teamName = null;
        this.arena = arena;
    }

    public Team()
    {

    }

    public Team(String teamName)
    {
        this.teamName = teamName;
    }

    public Integer getTeamBlockId(String teamName)
    {
        if (teamName.equalsIgnoreCase("white")) return 0;
        else if (teamName.equalsIgnoreCase("orange")) return 1;
        else if (teamName.equalsIgnoreCase("magenta")) return 2;
        else if (teamName.equalsIgnoreCase("light_blue")) return 3;
        else if (teamName.equalsIgnoreCase("yellow")) return 4;
        else if (teamName.equalsIgnoreCase("lime")) return 5;
        else if (teamName.equalsIgnoreCase("pink")) return 6;
        else if (teamName.equalsIgnoreCase("gray")) return 7;
        else if (teamName.equalsIgnoreCase("light_gray")) return 8;
        else if (teamName.equalsIgnoreCase("cyan")) return 9;
        else if (teamName.equalsIgnoreCase("purple")) return 10;
        else if (teamName.equalsIgnoreCase("blue")) return 11;
        else if (teamName.equalsIgnoreCase("brown")) return 12;
        else if (teamName.equalsIgnoreCase("green")) return 13;
        else if (teamName.equalsIgnoreCase("red")) return 14;
        else if (teamName.equalsIgnoreCase("black")) return 15;
        else return null;
    }
}
JavaScript:
    public void joinToFreeTeam(Player player)
    {
        if (readyArenas.size() >= 2)
        {
            for (Team team : readyArenas)
            {
                for (int get = 0; get <= 32; get++)
                {
                    if (team.playersInTeam.size() == get)
                    {
                        player.teleport(team.arena.positionSpawnOfArena);
                        team.playersInTeam.add(player);
                        playersInGame.add(player);
                        log.info("Игрок " + player.getName() + " вошел в игру.");
                        player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "Вы успешно вошли в игру."));
                        break;
                    }
                }
            }
        }
        else player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "Не создано хотя-бы 2 арены&0! &cОбратитесь к администратору&0."));
    }
JavaScript:
    @EventHandler
    public void wffSpeak(PlayerChatEvent pce)
    {
        char[] messageChar = pce.getMessage().toCharArray();
        char firstChar = messageChar[0];
        if (firstChar == '!')
        {
            String newMessage = "";
            char[] chars = pce.getMessage().toCharArray();
            for (int get = 1; get <= pce.getMessage().length(); get++)
            {
                newMessage += chars[get];
            }
            for (Team team : readyArenas)
            {
                for (Player players : team.playersInTeam)
                {
                    players.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "&c[&2&lGlobal&5&lSpeak&c] &9" + pce.getPlayer().getName() + " &0: " + newMessage));
                }
            }
        }
        else
        {
            for (Team team : readyArenas)
            {
                if (team.playersInTeam.contains(pce.getPlayer()))
                {
                    pce.setCancelled(true);
                    for (Player players : team.playersInTeam)
                    {
                        players.sendMessage(ChatColor.translateAlternateColorCodes('&', prefixPlugin + "&c[&1&lTeam&5&lSpeak&a] &9" + pce.getPlayer().getName() + " &0: &7" + pce.getMessage()));
                    }
                    break;
                }
            }
        }
    }

Ну т.е. сообщение не редактируется.
Мои глаза..
 
Ну, мой гавнокод - это совсем другая история!
Так подхелпуйте кто нить, а?
Ладно, тогда другой вопрос, как установить MOTD? Я нашел только getServer().getMotd() а что-то вроде setMotd() есть?
 
@EventHandler
public void onServerListPing(ServerListPingEvent event) {

event.setMotd(ChatColor.GREEN + "MOTD");
}
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх