(Решено)Передать игрока в другой класс

  • Автор темы Автор темы reZero
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

reZero

Активный участник
Пользователь
Баллы
76
Всем привет. У меня есть игрок, которого я получаю из команды в классе 1, но мне нужно использовать этого игрока еще и в другом классе (2). У меня сразу возник вопрос: Как я могу по тру-хацкерски это реализовать?
P.S. Извиняюсь за довольно-таки глупый вопрос
 
Всем привет. У меня есть игрок, которого я получаю из команды в классе 1, но мне нужно использовать этого игрока еще и в другом классе (2). У меня сразу возник вопрос: Как я могу по тру-хацкерски это реализовать?
P.S. Извиняюсь за довольно-таки глупый вопрос
Можно конструктором.
 
Хм, Скорее всего я чего-то не понимаю из азов java.

PHP:
private int second;
private Player player;
private boolean isComing;

public TestClass(int second, Player player, boolean isComing)
{
      this.second = second;
      this.player = player;
      this.isComing = isComing;
}

public Player getPlayer()
{
     return this.player;
}
Как мне достать getPlayer, если при создании экземпляра TestClass мне придется передавать туда игрока?
P.S Я чего-то не догоняю в ЯП. Не кидайтесь овощами, помогите разобраться =(
 
@reZero
То, что ты сейчас написал, можно приравнять к объекту, у которого в качестве одного параметра есть Player. И метод getPlayer возвращает игрока, принадлежащего к данному объекту. Возможно не ясно, если что могу где-нибудь в другом месте объяснить. А по теме, что ты вообще хочешь реализовать, начнём с этого?
 
@reZero
То, что ты сейчас написал, можно приравнять к объекту, у которого в качестве одного параметра есть Player. И метод getPlayer возвращает игрока, принадлежащего к данному объекту. Возможно не ясно, если что могу где-нибудь в другом месте объяснить. А по теме, что ты вообще хочешь реализовать, начнём с этого?
У меня есть класс с таймером, который в потом нужно будет отменять. Конструктор выше является конструктором моего таймера, но у меня есть еще одна строка - this.runTaskTimer, которая и запускпет таймер.
При выходе определенного игрока, мне нужно получать игрока, у которого идет таймер и соответственно отменять его
 
При выходе определенного игрока, мне нужно получать игрока, у которого идет таймер и соответственно отменять его
Хранить соответствие таймеров игрокам в глобальном ассоциативном массиве (HashMap<Player, TestClass>). По событию выхода игрока (PlayerQuitEvent или как оно там) забирать таймер из мапы и отменять.
 
Хранить соответствие таймеров игрокам в глобальном ассоциативном массиве (HashMap<Player, TestClass>). По событию выхода игрока (PlayerQuitEvent или как оно там) забирать таймер из мапы и отменять.
Не получится. Например есть игрок 1 и игрок 2. У игрока 1 работает таймер. Если из игры выйдет игрок 2, нужно отменить таймер игрока 1
 
Не получится. Например есть игрок 1 и игрок 2. У игрока 1 работает таймер. Если из игры выйдет игрок 2, нужно отменить таймер игрока 1
Код:
package Example;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

public class Timer {
    String playername;

    Timer(String playername) {
        this.playername = playername;
    }

    public Player getPlayer() {
        return Bukkit.getPlayerExact(this.playername);
    }
}

Код:
        Map<String, Timer> timers = new HashMap<String, Timer>();
        timers.put("player2", new Timer("player1"));
        timers.get("player2").getPlayer();
 
Код:
package Example;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

public class Timer {
    String playername;

    Timer(String playername) {
        this.playername = playername;
    }

    public Player getPlayer() {
        return Bukkit.getPlayerExact(this.playername);
    }
}

Код:
        Map<String, Timer> timers = new HashMap<String, Timer>();
        timers.put("player2", new Timer("player1"));
        timers.get("player2").getPlayer();
Это конечно не то что мне нужно, я плохо объяснил скорее всего, но этот код натолкнул меня на решение, сделал немного иначе и получилось.

Всем спасибо за объяснения!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх