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

Bukkit plugin


Rekomendowane odpowiedzi

Opublikowano

Witam.

Ostatnio pisze plugin i chcę zrobić żeby gracz po kliknięciu prawym przyciskiem myszki dodawało go do drużyny. Niestety nie działa ta opcja mimo że Eclipse nie wyrzuca błędu, w konsoli podobnie. Tutaj macie tę klasę bardzo proszę o pomoc :)

public class Teams implements Listener {
	
	private Set<Player> redTeam = new HashSet<Player>();
	  private Set<Player> blueTeam = new HashSet<Player>();
	private Random random;
	  private Set<Player> allPlayers = new HashSet<Player>();

	  public Teams(Set<Player> red, Set<Player> blue){
			this.random = new Random();
			for (Player p : red) {
			      this.redTeam.add(p);
			      addToPlayerLists(p);
			    }
			    for (Player p : blue) {
			      this.blueTeam.add(p);
			      addToPlayerLists(p);
			    }
	  }
	  
	private void addToPlayerLists(Player p) {
	    this.allPlayers.add(p);
	}

	@EventHandler
	public void randomTeam(PlayerInteractEvent ev){
		Player p = ev.getPlayer();
		Action ac = ev.getAction();
		
		if(!p.isOp()){
			if(ac==Action.RIGHT_CLICK_AIR){
		
		if(p.getItemInHand().getType() == Material.STICK){
	
			if (this.blueTeam.size() <= this.redTeam.size()) {
		        this.blueTeam.add(p);
		        addToPlayerLists(p);
		        Main.getConfig.set("teams.Team_Blue.nick", p.getName());
		        p.sendMessage(ChatColor.BLUE + "Zostales dodany do druzyny niebieskich");
		      } else if (this.redTeam.size() <= this.blueTeam.size()) {
		        this.redTeam.add(p);
		        addToPlayerLists(p);
		        Main.getConfig.set("teams.Team_Red.nick", p.getName());
		        p.sendMessage(ChatColor.RED + "Zostales dodany do druzyny czerwonych");
		      }	
		}}
		else if(p.isOp()){
			p.sendMessage(ChatColor.BLACK + "Nie możesz dołączyć do gry, poniewaz masz OP'a");
		}
}
	}
}

A tu macie jeszcze klasę Main (częściowo)

	public static Logger log;
	public void onEnable(){
log = this.getLogger();
		getLogger().info("Plugin zostal poprawnie uruchomiony" );
		getServer().getPluginManager().registerEvents(new Teams(null, null), this);
}

Dałem w nawiasie null null ponieważ wyskakiwał błąd w Eclipse :P

 

Dla tych kto będzie chciał mogę wysłać na pw plugin do sprawdzenia :)

 

 

Liczę na szybką odpowiedź i żeby była ona trafna docenię lajkiem ;)

 

 

PS. proszę o usunięcie podobnego tematu na forum Minecraft-Zarządzanie serwerem [do administracji]

Opublikowano

RLY? :D

RLy RLY?

Widać że chyba nowy jesteś :P

 

	  public Teams(Set<Player> red, Set<Player> blue){
			this.random = new Random();
			for (Player p : red) {
			      this.redTeam.add(p);
			      addToPlayerLists(p);
			    }
			    for (Player p : blue) {
			      this.blueTeam.add(p);
			      addToPlayerLists(p);
			    }
	  }
Rejestrujesz w tej klasie event używając:

getServer().getPluginManager().registerEvents(new Teams(null, null), this);

 

tym samym powodujesz wykonanie kodu:

	  public Teams(Set<Player> red, Set<Player> blue){
// Obie wartości są null, bo tak wpisałeś
			this.random = new Random();
			for (Player p : red) {
// Starasz się zrobić pętle dla wartości która jest niczym  - NullPointerEx...
			      this.redTeam.add(p);
			      addToPlayerLists(p);
			    }
			    for (Player p : blue) {
			      this.blueTeam.add(p);
			      addToPlayerLists(p);
			    }
	  }
Pewnie używasz gdzieś tego konstruktora już normalnie a nie 2x null, i własnie musisz użyc tego konstuktoraw tym miejscu lub... przesunąć event do innej klasy, a instancje tej gdzieś zapisać.

Ewentulanie można zrobić

public Teams () {
}
Ale wtedy pojawią się pewnie inne błędy :)

 

Wyjaśnij co dokładniej robisz, (czy to są jakiś Team na zawsze, czy to tylko druzyny do jednej rudny jakiejś mini-gry) to pomoge ci to dokładniej naprawić :D bo tak jest za duzo możliwości :)

 

 

 

PS: tym tekstem że MUSIAŁEŚ dać 2x null bo error to mnie rozjebałes :>

sam wysłałeś null do konstruktora używającego tych wartości a potem się jeszcze dziwisz :D

 

 

Nie dziw że nic się nie dodaje, bo każde klikniecie dodaje go do drużyny w instancji od tego eventu :D i tylko tam istnieje, bo nie ma możliwości dostania się do tej instancji (ty nie zrobiłeś)

Więc opisz co robisz a pomogę dokładniej, bo tak to nie wiem co robić :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Robię plugin taki na PVP i to robię chwilowo do potrzeb własnych z kolegami zagrać czyli na razie na zawsze by zapisywało, a potem bym mógł zrobić że co runde :P

 

Co do tego null null to dawałem bo błąd wywalało gdy dawałem coś innego a ja pierwszy raz robię taki plugin z dodawanie drużyn itp więc taki trochę zielony w tym jestem

 

Jakbyś mogła to mi pomóż co i jak ;) Wystarczy że pouczysz co źle to zapamiętam :D

Opublikowano

Robię plugin taki na PVP i to robię chwilowo do potrzeb własnych z kolegami zagrać czyli na razie na zawsze by zapisywało, a potem bym mógł zrobić że co runde :P

 

Co do tego null null to dawałem bo błąd wywalało gdy dawałem coś innego a ja pierwszy raz robię taki plugin z dodawanie drużyn itp więc taki trochę zielony w tym jestem

 

Jakbyś mogła to mi pomóż co i jak ;) Wystarczy że pouczysz co źle to zapamiętam :D

To musisz opisać co dokładniej robisz, jak to ma działać i.... no pokazać wtedy kod czy coś, to ci przynajmniej objaśnię jakieś czyste podstawy.

(Możesz na gg jak chcesz)

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Chcesz cały plugin byś sb zdekompilowała i podpatrzyła kod czy wolisz w pastebin kod klasy głównej i Teams? :P

Opublikowano

Chcesz cały plugin byś sb zdekompilowała i podpatrzyła kod czy wolisz w pastebin kod klasy głównej i Teams? :P

Raczej plug + Ty masz mi też opisać jak dokładnie to ma działać :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...