Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z pluginem na spawn na serwerze - nie wczytuje listy i inta.


Kaczus2001

Rekomendowane odpowiedzi

Opublikowano

Witam otoz posiadam plugin na /spawn i przy wpisaniu komendy /spawn dodaje mnie do listy i tworzy id schedulera. Mimo ze w Liscie jestem zapisany to w evencie i tak nie czyta Listy wyswietla [] a powinno [Nick] Dodam ze po wykonaniu komendy przed usunieciem wysywietla moj nick w takiej formie [nick] a po usuniecieu w takiej [] wiec napewno mnie dodaje. I moje pytanie brzmi dlaczego w evencie nie czyta mi listy ani id taska?

Kodu /spawn nie daje bo nie ma po co.

Dodam ze w konsoli nie ma zadniego bledu!

private List<String> bs = new ArrayList<String>();
 
private int tr;
@EventHandler
public void onMove(PlayerMoveEvent e){
Player p = e.getPlayer();
p.sendMessage(bs + " " + tr);
if(bs.contains(p.getName())){
bs.remove(p.getName());
Bukkit.getScheduler().cancelTask(tr);
p.sendMessage("Poruszyles sie! ");
}else{
p.sendMessage("32");
Bukkit.getScheduler().cancelTask(tr);
p.sendMessage("Poruszyles sie! ");
}
}

PS zmiana private na public nic nie dala!

//nie umieszczamy reklam w sygnaturach

Opublikowano

 

public class Spawn implements Listener, CommandExecutor{
 
public Spawn(Main instance){}
 
private List<String> bs = new ArrayList<String>();
 
private int tr;
 
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args){
     if(commandLabel.equalsIgnoreCase("spawn")){
if(sender instanceof Player){
final Player p = (Player) sender;
if(p.hasPermission("myskill.spawn") || p.isOp()){
bs.add(p.getName());
if(bs.contains(p.getName())){
double x = Main.instance.getConfig().getDouble("X");
double y = Main.instance.getConfig().getDouble("Y");
double z = Main.instance.getConfig().getDouble("Z");
String world = Main.instance.getConfig().getString("World");
final Location loc = new Location(Bukkit.getWorld(world),x,y,z);
p.sendMessage(ChatColor.GREEN + "Zostales teleportowany na spawn!");
tr = Bukkit.getScheduler().scheduleAsyncDelayedTask(Main.instance, new Runnable(){
public void run(){
Bukkit.getScheduler().cancelTask(tr);
p.teleport(loc);
p.sendMessage("TP!" + tr + "    " + bs);
bs.remove(p.getName());
p.sendMessage("TP!" + tr + "    " + bs);
}
}, 5*20);
}else{
p.sendMessage("321231231213");
}
}else{
p.sendMessage(ChatColor.RED + "Nie masz dostepu do tej komendy!");
}
}else{
sender.sendMessage(ChatColor.RED + "Ta komenda jest przeznaczona tylko dla graczy!");
}
     }
     return false;
    }
 
@EventHandler
public void onMove(PlayerMoveEvent e){
Player p = e.getPlayer();
p.sendMessage(bs + " " + tr);
if(bs.contains(p.getName())){
bs.remove(p.getName());
Bukkit.getScheduler().cancelTask(tr);
p.sendMessage("Poruszyles sie! ");
}else{
p.sendMessage("32");
Bukkit.getScheduler().cancelTask(tr);
p.sendMessage("Poruszyles sie! ");
}
}
}

//nie umieszczamy reklam w sygnaturach

Opublikowano

public Spawn(Main instance){}

if(commandLabel.equalsIgnoreCase("spawn"))

if(p.hasPermission("myskill.spawn") || p.isOp()){

 

za takie rzeczy powinni was za jaja wieszac....

 

poprawiony kod

 

 

private List<String> players = new ArrayList<String>();

 
private int tr;
 
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
final Location loc = new Location(Bukkit.getWorld("world"), 0, 111, 0);
if (command.getName().equalsIgnoreCase("spawn")) {
if (!(sender instanceof Player)) 
{
sender.sendMessage(ChatColor.RED + "Ta komenda jest przeznaczona tylko dla graczy!");
return true;
}
final Player p = (Player) sender;
if (!p.hasPermission("myskill.spawn"))
{
p.sendMessage(ChatColor.RED + "Nie masz dostepu do tej komendy!"); return true;
}
if (players.contains(p.getName()))
{
p.sendMessage(ChatColor.RED + "Jestes juz w teleporcie");
return true;
}
players.add(p.getName());
p.sendMessage(ChatColor.RED + "Za 5 sekund zostaniesz teleportowany. Nie ruszaj sie!");
tr = Bukkit.getScheduler().scheduleAsyncDelayedTask(this, new Runnable() 
{
public void run()
{
p.teleport(loc);
players.remove(p.getName());
p.sendMessage(ChatColor.GREEN + "Zostales teleportowany na spawn!");
}
}, 100L);
}
return false;
}
 
@EventHandler
public void onMove(PlayerMoveEvent e) 
{
Player p = e.getPlayer();
if (!players.contains(p.getName())) return;
players.remove(p.getName());
Bukkit.getScheduler().cancelTask(tr);
p.sendMessage(ChatColor.GREEN + "Poruszyles sie! Teleportacja anulowana!");
}

patologia u moderatorow z dzialu srajkrafta ...

17077363944004662812.png

Opublikowano

Już dawno nie widziałem, żeby ktoś na tym forum robił debugi. Za co masz u mnie + bo próbujesz problem sam rozwiązać :)

	
	    private static final List<String> ds;
	
	
	 
	
	
	    static{
	
	
	    ds = new ArrayList<String>();
	}
	
	 
	
	
	Robisz metode na zmienianie(tak łatwiej)
	
	
	    public static void Costam(String nick) {
	
	
	        if (ds.contains(nick)) {
	
	
	            ds.remove(nick);
	
	
	        }
	
	
	        else {
	
	
	            ds.add(nick);
	
	
	        }
	
	
	    }
	
	
	 
	
	
	        Wykorzystujesz to po przez np,  
	
	
	   Klasa.Costam(Player.getName());
Opublikowano

Lepiej wgraj odnowa pługin i powino działać

Pomogłem? Daj plusika, to nic nie kosztuje a cieszy! :)

Opublikowano

@TheMajster 

dodalem cos takiego

private static final List<String> bs;
static{
bs = new ArrayList<String>();
}

niestety nic nie dalo ;/ 

 

Dodalem ta drugą czesc i działa. Tylko jeszcze musze id schedulera bo tez zwaraca 0.

 

@Edit Twoj kod zedytowalem i dodalem to:

 

private static int tr;

 

Dzieki ;)

//nie umieszczamy reklam w sygnaturach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...