- Баллы
- 11
- Имя в Minecraft
- LALKATOP
У меня есть плагин, который при входе игрока запускает runTaskTimer(...), мне нужно сделать, чтобы при выходе игрока, он останавливался именно для этого игрока, как это сделать и можно ли вообще?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Я допустил ошибку, сейчас смотрю как сработаетЧто пишет что не пишет?
Урааааааааааааааааааааааааааааааааааа оно работает!!! наконец-то!!!!! Огромнейшее тебе спасибо, я уже правда незнал что делать. Ты мне очень помог!Что пишет что не пишет?
package Blank;
import org.bukkit.plugin.java.JavaPlugin;
import Blank.events.EventListener;
import Blank.task.PlayerTask;
public class Main extends JavaPlugin {
private PlayerTask playerTask;
@Override
public void onEnable() {;
this.playerTask = new PlayerTask(this);
this.getServer().getPluginManager().registerEvents(new EventListener(this), this);
}
public PlayerTask getPlayerTask() {
return this.playerTask;
}
}
package Blank.task;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable;
public class PlayerTask extends BukkitRunnable {
private Map<Player, Integer> map = new HashMap<Player, Integer>();
private int coinPeriod;
private Plugin plugin;
public PlayerTask(Plugin plugin) {
this.plugin = plugin;
this.coinPeriod = this.plugin.getConfig().getInt("income");
this.runTaskTimer(this.plugin, 1, 1);
}
public void add(Player player) {
this.map.put(player, 0);
}
public void remove(Player player) {
this.map.remove(player);
}
@Override
public void run() {
this.map.forEach((player, period) -> {
if (period < this.coinPeriod) {
this.map.put(player, period++);
} else {
this.map.put(player, 0);
// TODO Commands.giveMoney(player.getName(), inc);
}
});
}
}
package Blank.events;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import Blank.Main;
public class EventListener implements Listener {
private Main plugin;
public EventListener(Main plugin) {
this.plugin = plugin;
}
@EventHandler
public void on(PlayerJoinEvent e) {
this.plugin.getPlayerTask().add(e.getPlayer());
}
@EventHandler
public void on(PlayerQuitEvent e) {
this.plugin.getPlayerTask().remove(e.getPlayer());
}
}
Ты опоздал, братан)Писец он тупой. Все готовое же выдал. Осталось только собрать.
Код:package Blank; import org.bukkit.plugin.java.JavaPlugin; import Blank.events.EventListener; import Blank.task.PlayerTask; public class Main extends JavaPlugin { private PlayerTask playerTask; @Override public void onEnable() {; this.playerTask = new PlayerTask(this); this.getServer().getPluginManager().registerEvents(new EventListener(this), this); } public PlayerTask getPlayerTask() { return this.playerTask; } }
Код:package Blank.task; import java.util.HashMap; import java.util.Map; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitRunnable; public class PlayerTask extends BukkitRunnable { private Map<Player, Integer> map = new HashMap<Player, Integer>(); private int coinPeriod; private Plugin plugin; public PlayerTask(Plugin plugin) { this.plugin = plugin; this.coinPeriod = this.plugin.getConfig().getInt("income"); this.runTaskTimer(this.plugin, 1, 1); } public void add(Player player) { this.map.put(player, 0); } public void remove(Player player) { this.map.remove(player); } @Override public void run() { this.map.forEach((player, period) -> { if (period < this.coinPeriod) { this.map.put(player, period++); } else { this.map.put(player, 0); // TODO Commands.giveMoney(player.getName(), inc); } }); } }
Код:package Blank.events; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import Blank.Main; public class EventListener implements Listener { private Main plugin; public EventListener(Main plugin) { this.plugin = plugin; } @EventHandler public void on(PlayerJoinEvent e) { this.plugin.getPlayerTask().add(e.getPlayer()); } @EventHandler public void on(PlayerQuitEvent e) { this.plugin.getPlayerTask().add(e.getPlayer()); } }
Опечатка при выходеПисец он тупой. Все готовое же выдал. Осталось только собрать.
Код:package Blank; import org.bukkit.plugin.java.JavaPlugin; import Blank.events.EventListener; import Blank.task.PlayerTask; public class Main extends JavaPlugin { private PlayerTask playerTask; @Override public void onEnable() {; this.playerTask = new PlayerTask(this); this.getServer().getPluginManager().registerEvents(new EventListener(this), this); } public PlayerTask getPlayerTask() { return this.playerTask; } }
Код:package Blank.task; import java.util.HashMap; import java.util.Map; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitRunnable; public class PlayerTask extends BukkitRunnable { private Map<Player, Integer> map = new HashMap<Player, Integer>(); private int coinPeriod; private Plugin plugin; public PlayerTask(Plugin plugin) { this.plugin = plugin; this.coinPeriod = this.plugin.getConfig().getInt("income"); this.runTaskTimer(this.plugin, 1, 1); } public void add(Player player) { this.map.put(player, 0); } public void remove(Player player) { this.map.remove(player); } @Override public void run() { this.map.forEach((player, period) -> { if (period < this.coinPeriod) { this.map.put(player, period++); } else { this.map.put(player, 0); // TODO Commands.giveMoney(player.getName(), inc); } }); } }
Код:package Blank.events; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import Blank.Main; public class EventListener implements Listener { private Main plugin; public EventListener(Main plugin) { this.plugin = plugin; } @EventHandler public void on(PlayerJoinEvent e) { this.plugin.getPlayerTask().add(e.getPlayer()); } @EventHandler public void on(PlayerQuitEvent e) { this.plugin.getPlayerTask().add(e.getPlayer()); } }
Ага.Опечатка при выходе