- Баллы
- 46
- Имя в Minecraft
- MySoulIsCry
У меня есть класс с методом который вызывает поток с таймером который работает на арморстендах. проблема: я хочу чтобы колво секунд в таймере я мог указывать при вызове метода в другом классе я сделал чтобы мой метод принимал интовое число (sec) но как мне передать переменную из одного метода в другой(run. поток который считает). сам поток вызывается с помощью id = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, (Runnable) this, 0, 20); фигзнает как передать через него переменную
мой класс:
мой класс:
Код:
public class TimerB implements Runnable {
private int t = 10;
private int id;
private final ru.OBC.Main.Main plugin;
public TimerB(ru.OBC.Main.Main plugin2) {
this.plugin = plugin2;
}
public void random(Location loc, int prog, Player p, int sec) {
int x = loc.getBlockX();
int y = loc.getBlockY();
int z = loc.getBlockZ();
p.spawnParticle(Particle.CLOUD, new Location(p.getWorld(), (x+0.5) + Math.random(), (y+0.5)+ Math.random(), (z+0.5)+ Math.random()), (int) 0.99999);
p.spawnParticle(Particle.CLOUD, new Location(p.getWorld(), (x+0.5) - Math.random(), (y+0.5)- Math.random(), (z+0.5)- Math.random()), (int) 0.99999);
p.spawnParticle(Particle.CLOUD, new Location(p.getWorld(), (x+0.5) - Math.random(), (y+0.5)- Math.random(), (z+0.5)+ Math.random()), (int) 0.99999);
p.spawnParticle(Particle.CLOUD, new Location(p.getWorld(), (x+0.5) + Math.random(), (y+0.5)- Math.random(), (z+0.5)- Math.random()), (int) 0.99999);
id = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, (Runnable) this, 0, 20);
}
@Override
public void run() {
World w = Bukkit.getWorld("world");
Location loc = new Location(w, 0.5, 61, 0.5);
loc.getBlock().setType(Material.BEDROCK);
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity(loc, EntityType.ARMOR_STAND);
a.setVisible(false);
String str = Integer.toString(t);
a.setCustomName(ChatColor.GREEN+str);
a.setCustomNameVisible(true);
a.setGravity(false);
if(t == 0) {
Bukkit.getScheduler().cancelTask(id);
loc.getBlock().setType(Material.GRASS_BLOCK);
}
a.remove();
t--;
}
}
Последнее редактирование:
. Твой вариант не безопасный.