Собственный класс игрока

Ragnok123

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Ragnok123
Привет всем.

Недавно я встретился с очень не удобной проблемой.

Дело в том, что я храню все статы игрока (базовые) в одном классе. Для того, чтобы получать методы из класса, нужно кидать это в хашмап, при этом делая его статическим.

Мне это показалось неудобным, и поэтому я на МСРЕ сервере сделал собственный класс игрока.

То же самой хотел сделать на спайготе, но не очень то у меня и получилось.

Вопрос, возможно ли сделать собственный класс игрока, импортирующий все методы из org.bukkit.entities.Player, при этом являясь имплементацией самого Player класса?

P.s.: смотрел вопросы на эту тему в гугле, но ничего не нашел
 
Патчингом ядра, а это значит, что он запустится только на твоем ядре
 
Мой вариант:
Суть в том, что ты создаёшь класс-"обёртку" игрока. В конструкторе ты просишь непосредственно сам объект игрока и хранишь его. Потом переносишь все методы игрока (или необходимые лично тебе), передавая его хранимому игроку. В IntelliJ IDEA все методы наследовать легко - Alt + Insert -> "Delegate Methods..."
Java:
public class CustomPlayer {
    private Player player;

    public CustomPlayer(Player player) {
        this.player = player;
    }

    public String getDisplayName() {
        return player.getDisplayName();
    }

    public void kickPlayer(String s) {
        player.kickPlayer(s);
    }

    public void chat(String s) {
        player.chat(s);
    }

    public boolean performCommand(String s) {
        return player.performCommand(s);
    }

    // ...

    public void customMethod(/*custom agrs*/) {
        // Тело метода
    }

    public static class Test {
        public static void test(Player p) {
            new CustomPlayer(p).customMethod();
        }
    }
}
 
Назад
Верх