Skocz do zawartości


Zdjęcie

PluginMaster - Poradnik pisania pluginów Bukkit - #1 - Pierwsza KOMENDA!


  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1 CPlay

CPlay

    Nowy

  • Użytkownik
  • 41 postów
  • MCPlayG

Napisano 07 July 2014 - 08:43

No siemanko! Witajcie w oficjalnie pierwszym poradniku pisania pluginów.

SPIS PORADNIKÓW:

#0 - https://craftportal....dstawa-pluginu/

 

Dziś napiszemy prostą komendę wysyłającą "Hello World" do gracza.

 

Z POWODU, IŻ NAPISAŁEM PORADNIK ŹLE POSTANOWIŁEM GO NAPISAĆ JESZCZE RAZ.

POPRZEDNIA WERSJA STRACONA.

==================================================================

Zaczynajmy!

 

Pierwszą rzeczą będzie w onCommand(...) sprawdzenie, czy została wprowadzona nasza komenda.

Czyli:

if(cmd.equalsIgnoreCase("hello")
{

}

 

Tutaj będziemy wpisywać, co będzie się działo w komendzie.

Nasza komenda zapomniałem powiedzieć będzie TYLKO dla gracza.

 

Dlatego w naszym sprawdzeniu dopisujemy

if(sender instanceof Player)
{

}
else
{

}

 

Else oznacza komendy, które się wykonają, gdy warunek nie zostanie spełniony.

A w If(sender...)

stwórzmy zmienną typu Player o wartości (Player) sender;

Czyli:

Player p = (Player) sender;

 

Taki kod jest poprawny, sam z niego korzystam.

 

Teraz możemy wpisać metodę która będzie wysyłała do gracza "Hello World"

Metoda wygląda tak:

p.sendMessage("Hello World!");

 

Dobrze gotowe.

Następnie w else piszemy:

Bukkit.getServer().getConsoleSender().sendMessage("Musisz być graczem!");

 

Czyli tak będzie wyglądał gotowy kod:

if(cmd.equalsIgnoreCase("hello")
{
  if(sender instanceof Player)
  {
    Player p = (Player) sender;
    p.sendMessage("Hello World!");
  }
  else
  {
    Bukkit.getServer().getConsoleSender().sendMessage("Musisz być graczem!");
  }
}

 

Oczywiście możemy zrobić, by tekst był na kolorowo!

Więc zmieńmy p.sendMessage(...) na:

p.sendMessage(ChatColor.GREEN + "Hello World");

To wyśle również do gracza wiadomość, ALE o kolorze zielonym.

Pisząc ChatColor. możemy zobaczyć wszystkie możliwe kolory, również format.

 

Dobrze. Komenda gotowa. Teraz musimy ją zarejestrować w plugin.yml.

Dlatego w plugin.yml piszemy:


 

commands:
  hello:
    description: Wpisz, by dostac wiadomosc!

 

Dobra.

(Ja mam zainstalowany inny styl Eclipse)

Na "prośbę" innych pokażę jak eksportować plugin:

Krok 1:

Otwórz menu "File".

eksportowanie1.PNG
 
Krok 2:
Kliknij "Export":
eksportowanie2.PNG
 
Krok 3:
Wybierz metodę eksportowania. W tym przypadku JAR File:
eksportowanie3.PNG
 
Krok 4:
Wybierz projekt/y do wyeksportowanie i położenie
eksportowanie4.PNG
 
Krok 5:
Kliknij Finish. Gotowe.

Użytkownik CPlay edytował ten post 07 July 2014 - 12:31

  • terminatorXL i RalphClink lubią to

I Programming in java-logo2.png JAVA


craftportal

Craftserve to największy i najlepszy polski hosting serwerów Minecraft, jest solidny i tani więc go polecam

#2 KPM2003

KPM2003

    Znawca

  • Użytkownik
  • 266 postów

Napisano 07 July 2014 - 10:09

Czy na CraftPortal nie było przypadkiem znacznika code?

#3 AdamGrzegorz

AdamGrzegorz

    Nowy

  • Użytkownik
  • 29 postów
  • AdamGrzegorz

Napisano 07 July 2014 - 10:11

Szkoda że nie pokazałeś wszystkiego, jak napisać, wyeksportować, i zapisać plugin ponieważ jak ktoś zabiera się za pisanie pluginów, to raczej takie podstawy zna.

Mogłeś też zrobić to w "code".

bo nic nie widać :-/
w pliku plugin.yml dajemy nie tylko to :)
 
Player p = (Player) sender;
Takie coś jest błędne! To jest prawidłowe!
Player p = sender.getName(); 
a po za tym jest to niepotrzebne do sendMessage :) Można użyć sender.sendMessage("");

 

No i poradnik taki okrojony, dla mnie np. nie zbyt przydatny, ponieważ ja już pisze dość bardziej zaawansowane pluginy, ale komuś może się przydać... komuś...

 

Pozdrawiam! :)


Użytkownik AdamGrzegorz edytował ten post 07 July 2014 - 10:14


#4 CPlay

CPlay

    Nowy

  • Użytkownik
  • 41 postów
  • MCPlayG

Napisano 07 July 2014 - 11:47

Szkoda że nie pokazałeś wszystkiego, jak napisać, wyeksportować, i zapisać plugin ponieważ jak ktoś zabiera się za pisanie pluginów, to raczej takie podstawy zna.

Mogłeś też zrobić to w "code".

bo nic nie widać :-/
w pliku plugin.yml dajemy nie tylko to :)
 
Player p = (Player) sender;
Takie coś jest błędne! To jest prawidłowe!
Player p = sender.getName(); 
a po za tym jest to niepotrzebne do sendMessage :) Można użyć sender.sendMessage("");

 

No i poradnik taki okrojony, dla mnie np. nie zbyt przydatny, ponieważ ja już pisze dość bardziej zaawansowane pluginy, ale komuś może się przydać... komuś...

 

Pozdrawiam! :)

 

sender.getName() to String (Jak już to sender.getPlayer() :P), a poza tym zabiorę się za poprawianie xd

 

//EDIT: Poradnik przerobiony!

 

Wiem, że można użyć sender.sendMessage()


Użytkownik CPlay edytował ten post 07 July 2014 - 12:33

I Programming in java-logo2.png JAVA


#5 OlekCraft

OlekCraft

    Nowy

  • Użytkownik
  • 21 postów
  • kanapii2

Napisano 21 July 2014 - 14:31

Dobrze opisane ;) 



#6 terminatorXL

terminatorXL

    Nowy

  • Użytkownik
  • 32 postów
  • terminatorXL

Napisano 21 July 2014 - 18:09

Dziękuje ci(pisze to szczerze)
Dzięki tobie nareszcie się zacząłem uczyć
Z niecierpliwością czekam na następną część

 

@edit


Tam jest chyba błąd

 

if(cmd.equalsIgnoreCase("hello")

powinno być chyba

 

if(cmd.equalsIgnoreCase("hello"))

Użytkownik terminatorXL edytował ten post 21 July 2014 - 18:33

2chmhcx.png

#7 Olekkk

Olekkk

    Nowy

  • Użytkownik
  • 18 postów
  • kanapii2

Napisano 21 July 2014 - 23:23

Jest dobrze ;) 



#8 terminatorXL

terminatorXL

    Nowy

  • Użytkownik
  • 32 postów
  • terminatorXL

Napisano 22 July 2014 - 11:05

Jest dobrze ;)

to dlaczego Eclipse mi błąd wywala 


2chmhcx.png

#9 KPM2003

KPM2003

    Znawca

  • Użytkownik
  • 266 postów

Napisano 24 July 2014 - 09:48

Jest dobrze ;)

Jest źle, gunwa mu do rozumu nie wprowadzaj. W każdym języku każdy nawias trzeba zamknąć

Użytkownik KPM2003 edytował ten post 24 July 2014 - 09:49


#10 Jeff The Morderca

Jeff The Morderca

    Zbanowany

  • Użytkownik
  • 822 postów
  • nie wiem

Napisano 24 July 2014 - 10:04

Wkurzają mnie dzieci które myślą "o był na głównej poradnik to se zrobie swój" nie wiesz dokładnie o co chodzi w programowaniu tylko kopiujesz z innych poradników i nie wytłumaczysz nikomu co jest czym. 


Dołączona grafika
[img[http://www.troll.me/...d/wc-donald.png[/img]
glupota123.blogspot.com - R.I.P Normalny Internet [*]

MIAŁEM ESSENTIALS PRZETERMINOWANE.


ludzie nie miejcie serca z cabelston