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

Tworzenie pluginów dla Bukkit


piotrek54PL

Rekomendowane odpowiedzi

Opublikowano

maybe call me "Andret" ;)

 

dzięki za te ciepłe słowa, jednak jest kilka rzeczy, na którę MUSZĘ zwrócić uwagę. Mianowicie:

1. Jestem informatykiem programistą, uczę sięprogramować a w szkole obecnie przerabiam C++. Znam tzw. Syntaxa czyli składnię programistyczną, znam to co w każdym języku (PASCAL, C, C++, JAVA, ActionScript) jest takie samo jak np. w/w pętle ;)

 

2. Niestety brakuje mi wiedzy z bukkita, nie potrafie sam czegoś ogarnąć... znaczy potrafię, ale coś prostego. Jeżel byoby trzeba mógłbym napisać ten sam tut (za zgodą autora ofc ;)) ale bardziej pod kątem programistycznym ;p

 

3. Porady których udzielałem dotyczą właśnie składni języka i instrukcji prostych. Znam sie na programowaniu, nie na JAVIE. Twoje problemy są dla mnie proste ;p jeżeli miałbyś zamiar uczyć sie programować a nie tylko pod Minecrafta, to polecam Ci PASCALA, w ostateczności C++, ale nie porywaj sie na tak zaawansowany język jakim jest JAVA.

 

4. Lubię pomagać ;) do tego jak sam widzisz potrafię tłumaczyć, a jak juz tłumaczę to rzetelnie a nie, "żeby było" :P

Aha to duże wyjaśnia

  • Odpowiedzi 496
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

maybe call me "Andret" ;)

 

dzięki za te ciepłe słowa, jednak jest kilka rzeczy, na którę MUSZĘ zwrócić uwagę. Mianowicie:

1. Jestem informatykiem programistą, uczę sięprogramować a w szkole obecnie przerabiam C++. Znam tzw. Syntaxa czyli składnię programistyczną, znam to co w każdym języku (PASCAL, C, C++, JAVA, ActionScript) jest takie samo jak np. w/w pętle ;)

 

2. Niestety brakuje mi wiedzy z bukkita, nie potrafie sam czegoś ogarnąć... znaczy potrafię, ale coś prostego. Jeżel byoby trzeba mógłbym napisać ten sam tut (za zgodą autora ofc ;)) ale bardziej pod kątem programistycznym ;p

 

3. Porady których udzielałem dotyczą właśnie składni języka i instrukcji prostych. Znam sie na programowaniu, nie na JAVIE. Twoje problemy są dla mnie proste ;p jeżeli miałbyś zamiar uczyć sie programować a nie tylko pod Minecrafta, to polecam Ci PASCALA, w ostateczności C++, ale nie porywaj sie na tak zaawansowany język jakim jest JAVA.

 

4. Lubię pomagać ;) do tego jak sam widzisz potrafię tłumaczyć, a jak juz tłumaczę to rzetelnie a nie, "żeby było" :P

Wg mnie Java to niejest trudny język, ale wymaga sporego IQ żeby sobie wyobrazić jak działa - Bo jest oparty na programowaniu obiektowym. Ale osobieście przesiadłem się z c++ na jave bo jest dla mnie prostsza :D Nie chciało mi się bawić w szukanie/instalowanie itd. W javie poprostu daję "import [...]" i cały świat jest przede mną.

Opublikowano

Wg mnie Java to niejest trudny język, ale wymaga sporego IQ żeby sobie wyobrazić jak działa - Bo jest oparty na programowaniu obiektowym. Ale osobieście przesiadłem się z c++ na jave bo jest dla mnie prostsza :D Nie chciało mi się bawić w szukanie/instalowanie itd. W javie poprostu daję "import [...]" i cały świat jest przede mną.

w takim razie niech któryś z panów koksów powie mi jak zrobić żeby

package cos;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class main extends JavaPlugin {
public void onEnable(){
}
public void onDisable(){
}
public boolean onCommand(CommandSender sender,Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("wb"))
{
if(sender instanceof Player)
{
Player p = (Player) sender;
if (args[0].equalsIgnoreCase("set"));
{
if (args[1].equalsIgnoreCase("1"))
{
if (args[2].equalsIgnoreCase("blue"))
{
Location b = p.getLocation();
}
if (args[2].equalsIgnoreCase("red"))
{
Location r = p.getLocation();
}
if (args[2].equalsIgnoreCase("spawn"));
{
Location s = p.getLocation();
}
{
}
if (args[0].equalsIgnoreCase("join")) ;
{
if (args[1].equalsIgnoreCase("1"));
{
p.teleport(s);
}
}
}
}
return false;
}
}
}
}
to s z Location s = p.getLocation(); działało w p.teleport(s)
i sory że w ciebie zwątpiłem ale dawno nie było nic nowego
Opublikowano

Nie gniewam się, sam w siebie zwątpiłem bo mam takiego lenia że masakra.

 

Fajnie by było gdybyś podał błędy, poza tym twój kod działa tak że po wpisaniu set tworzy nową zmienną, a jak wpiszesz join to teleportuje do niej. Nie możesz tak zrobić bo każda zmienna zadeklarowana w metodzie kasuje się po zakończeniu wykonywania metody. Czyli jeśli wpiszesz /wb set to zmienna z lokalizacją utworzy się i odrazu zniknie, a gdy wpiszesz /wb join to już tej zmiennej nie będzie.

 

Musisz zrobić coś w stylu:

Location loc;
public boolean onCommand(CommandSender sender,Command cmd, String label, String[] args){
        if(cmd.getName().equalsIgnoreCase("wb"))
        {
            if(sender instanceof Player)
            {
                Player p = (Player) sender;
                if(args[0].equalsIgnoreCase("set"));
                {
                     loc = p.getLocation();
                }
                if (args[0].equalsIgnoreCase("join")) ;
                {
                     p.teleport(loc);
                }
                
            }
        }
        return false;
    }

Powinno działać.

PS Pamiętaj żeby jeszcze zabezpieczyć się sprawdzając czy liczba argumentów (args.length) jest większa od 0 :)

Opublikowano

skoro jednak autor żyje (w co zaczynałęm już wątpić :P) może podzieli się z nami informacją kiedy możemy sięspodziewać kolejnej dużej części? :D

Nie żyję, jak zmartwychwstanę to coś nabazgram. Może pojutrze ? :D

Opublikowano

nastepne pytania:

1. Jak się robiła listenera w głównej classie?

2.czy jak robie: private int to wtedy jest inne dla każdego gracza?

 

@edit

 

ok ale jak zrobic żeby jedna zmienna dzialala w dwóch klasach?

Opublikowano

@UP

na 2 umiem odp ;)

 

NIE

 

private oznacza, że poza klasą nie możesz tego uczyć czyli jak w klasie A masz private int a; to w klasie B a nie istnieje. żeby uzyskać efekt, o którym się domyślam jaki potrzebjesz zrób tablice... int tab[] - jednowymiarowa tablica liczb typu int, odwołanie tab[nr_indeksu], piewsza wartośćw tablicy ma indeks 0 xD

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...