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] Java - PlayerJoinEvent


Rekomendowane odpowiedzi

Opublikowano

Cześć, ostatnio postanowiłem pobawić się trochę javą i napotkałem się z problemem :/

Próbuję już od godziny go rozwiązać, lecz wszystko na marne.

 

Chciałem zrobić, aby po wejściu na serwer wyświetliła się wiadomość.

Zrobiłem o taki plugin:

package pl.ct8.knugi;

import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{
	@Override
	public void onEnable(){
		
	}
	@Override
	public void onDisable(){
		
	}
	public void onJoinPlayer(PlayerJoinEvent evt){
		Player p = evt.getPlayer();
		p.sendMessage("xD");
	}
}

name: Powitanie
main: pl.ct8.knugi.Main
version: 0.1

Plugin wszystko pięknie ładnie się ładuje itd. Lecz gdy wejdę na serwer nie pokazuje mi danej wiadomości i się pytam dlaczego :/

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

A powiesz mi jak się to robi? Bo w pluginy do mc dopiero zaczynam przygodę :) Javę już trochę ogarnąłem

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

A powiesz mi jak się to robi? Bo w pluginy do mc dopiero zaczynam przygodę :) Javę już trochę ogarnąłem

Może lepiej zrób w kilku klasach na start ;p

 

Robisz nową klase -> importujesz listener (implements listener) i tam dajesz ten event player join i potem w main przy onEnable

Bukkit.getServer().getPluginManager().registerEvents(new <Nazwa klasy>(), this);
Opublikowano

@NetherSky_ a jak tego importa listenera walnąć ? :D bo dałem nową classę

package pl.ct8.knugi;

import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;

public class Listener implements listener{
	public void onJoinPlayer(PlayerJoinEvent evt){
		Player p = evt.getPlayer();
		evt.getEventName();
		p.sendMessage("xD");
	}
}

i w tym implements listener w tym listener jest podkreslone i nie czaję :D

 

Main:

package pl.ct8.knugi;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{
	@Override
	public void onEnable(){
		Bukkit.getServer().getPluginManager().registerEvents(new Listener(), this);
	}
	@Override
	public void onDisable(){
		
	}
	
}


w main jest podkredlone registerEvents()

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Odrazu mówię nie wiem czy bd. działać ;PP

 

Klasa onJoin:

 

import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;


public class Test implements Listener{


public void onJoin(PlayerJoinEvent evt){
Player p = evt.getPlayer();
p.sendMessage("Siemaneczko witam w mojej kuchni");
}


}

Oczywiście pozmieniaj sobie tam z Test na nazwe twojej klasy.

 
 
Main:
 
 
package pl.ct8.knugi;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{

    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(new Listener(), this);
    }

    public void onDisable(){
        
    }
    
}

Potem zaimportuj w klasie Main klase od wchodzenia na serwer u ciebie Listener (wiesz o co chodzi chyba) :P

Opublikowano

I że się tak wyrażę - piździec :/ nie działa :D

 

klasa Main:

package pl.ct8.knugi;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{
	@Override
	public void onEnable(){
		Bukkit.getServer().getPluginManager().registerEvents(new onJoin(), this);
	}
	@Override
	public void onDisable(){
		
	}
	
}

Klasa onJoin:

package pl.ct8.knugi;

import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class onJoin implements Listener{
	public void onJoinEvent(PlayerJoinEvent evt){
		Player p = evt.getPlayer();
		p.sendMessage("Test");
	}
}

Blędów nie ma i wiadomości też nie wyświetla :/

 

I ten listener to tak jakby łączenie klas ?

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Nie nazywaj swojej klasy też "Listener" bo to tylko zrobi problemy, szczególnie że nie możesz wtedy zrobic Listener implements Listener, tylko musisz się bawić w jakieś Listener implements org.bukkit.event.Listener
 
@NetherSky_
no na pewno nie "new Listener()"
Tylko masz stworzyć nową instancje tej klasy która implementuje listener.
czyli 
 Bukkit.getServer().getPluginManager().registerEvents(new Test(), this);
 
I metoda od eventu, MUSI mieć adnotacje @EventHandler. Czyli:
 

import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent; 

public class Test implements Listener {

@EventHandler 
public void onJoin(PlayerJoinEvent evt)
{
    Player p = evt.getPlayer(); p.sendMessage("Siemaneczko witam w mojej kuchni");
 } 
}
package pl.ct8.knugi;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{

    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(new Test(), this);
    }

    public void onDisable(){
        
    }
    
}

Dla bardzo małych eventów możesz się pokusić o klasy anonimowe, lub zrobić to w głównej.

1438614356923701010629.png

 

Opublikowano

Nie nazywaj swojej klasy też "Listener" bo to tylko zrobi problemy, szczególnie że nie możesz wtedy zrobic Listener implements Listener, tylko musisz się bawić w jakieś Listener implements org.bukkit.event.Listener

 

@NetherSky_

no na pewno nie "new Listener()"

Tylko masz stworzyć nową instancje tej klasy która implementuje listener.

czyli 

 Bukkit.getServer().getPluginManager().registerEvents(new Test(), this);

 

I metoda od eventu, MUSI mieć adnotacje @EventHandler. Czyli:

 

import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent; 

public class Test implements Listener {

@EventHandler public void onJoin(PlayerJoinEvent evt)
{
    Player p = evt.getPlayer(); p.sendMessage("Siemaneczko witam w mojej kuchni");
 } 
}
package pl.ct8.knugi;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin{

    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(new Test(), this);
    }

    public void onDisable(){
        
    }
    
}
Dla bardzo małych eventów możesz się pokusić o klasy anonimowe, lub zrobić to w głównej.

 

No tak ale ten Test to sobie stworzyłem w eclipse zobaczyć czy czegoś nie podkreśla a u niego jest Listener :P.

 

 

//Edit

 

Ło matko bosko zapomnialem o @EventHandler ;//

Opublikowano

Tak sobie myślałem i już sobie wyczilłem z tą małpą czyli:  @EventHandler że tego jakoś nie widzę w swoim klasie I proszę :D Pomogło :) i z tą nazwą klasy listener i implements listener sam się domyśliłem :D 

W takim razię dziękuję wszystkim za pomoc :*

 

 

 

I jeszcze jedna sprawa :D

 

Jak dać w pluginie nazwe gracza?

Bo jak dam tak:

p.sendMessage(ChatColor.RED+"Witaj "+ChatColor.GREEN+evt);

 

to wyswietla witaj org.bukkit.event.player.Player

 

a jak dam:

 

p.sendMessage(ChatColor.RED+"Witaj "+ChatColor.GREEN+p);

 

to wyswietla : Witaj CraftPlayer name ="knugi" lub coś w tym stylu :D

 

i jak to wpisać, aby było zwykłe standardowe:

 

Witaj knugi

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Podmień z:

Player p = evt.getPlayer();

na :

Player p = evt.getPlayer().getName();
Opublikowano

@NetherSky_ to trzeba dać w string :D

A jak zarejestrować event jak ona jest w głównej klasie ?

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@NetherSky_ to trzeba dać w string :D

A jak zarejestrować event jak ona jest w głównej klasie ?

Tzn., że masz w Main tak?

Bukkit.getServer().getPluginManager().registerEvents(this, this);

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...