- Баллы
- 68
- Имя в Minecraft
- Stressless
В процессе ковыряния и изучения поставил себе такую задачу:
По достижению определенного условия на игрока в бесконечном цикле вешаются различные негативные эффекты. Достигая второго, определенного условия, игрок выходит с этого цикла и на него прекращается накладывание эффектов.
Задался вопросом, как привязывать sheduler'ы к определенным игрокам с возможностью дальнейшего их отключения да и в целом, как это лучше сделать (может не sheduler нужен). Сейчас использую конструкцию вида
В целом нормальный ли это подход ? Потому что мне кажется, что это бред
По достижению определенного условия на игрока в бесконечном цикле вешаются различные негативные эффекты. Достигая второго, определенного условия, игрок выходит с этого цикла и на него прекращается накладывание эффектов.
Задался вопросом, как привязывать sheduler'ы к определенным игрокам с возможностью дальнейшего их отключения да и в целом, как это лучше сделать (может не sheduler нужен). Сейчас использую конструкцию вида
Код:
// .. тут где то массив с эффектами
private static HashMap<UUID, Integer> mapping = new HashMap<UUID, Integer>();
public void start(Player player) {
BukkitTask task = new BukkitRunnable() {
@Override
public void run() {
// get random effect
int idx = new Random().nextInt(effects.length);
PotionEffectType type = effects[idx];
// get players effects
if (!player.hasPotionEffect(type)) {
player.addPotionEffect(new PotionEffect(type, 360, 10));
}
}
}.runTaskTimer(MyPlugin.getInstance(), 0, 260);
mapping.put(player.getUniqueId(),task.getTaskId());
}
public void stop(Player player) {
MyPlugin.getInstance().getServer().getScheduler().cancelTask(mapping.get(player.getUniqueId()));
}
В целом нормальный ли это подход ? Потому что мне кажется, что это бред