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

Poszukuję osoby która nauczyła by mnie co nieco o Java


Rekomendowane odpowiedzi

Opublikowano

Szukam jednej miłej osoby która pomogła by mi przy nauce Javy (głównie pisanie pluginów pod bukkit'a) , jakieś tam podstawy znam. 

Próbuje zrobić plugin na grupy myślę że mam już zrobione z 60%pluginu , plugin jako taki działa , ale Kod jest w tragicznym stanie i nie wiem gdzie popełniam błędy :/ <nie to że nie działa tylko jest źle zrobiony>

 

Kod jest w tak tragicznym stanie (eh i do tego moje twórcze nazewnictwo) że aż wstydzę się wstawić tutaj ten Kod

 

 

Opublikowano

znaczy się ja już mam 5 klas + główna , sam plugin na razie pozwala na wszystko co potrzeba do funkcjonowania grup (tzn tworzenie usuwanie grupy , zapraszanie wywalanie gracza , blokada ataku <to niedokończone> bookuje tylko ataki wręcz) ,chciałem dodać czat grupowy , usuwanie grup "nieaktywnych" oraz kilka dodatków do samych grup ale po co skoro Kod jest w tak złym stanie ze to nie ma sensu ciągnąć dalej , tak więc szukam kogoś kto by mi wytłumaczył na czym polega mój błąd

 

a co mi tam dam kod

 

 

 

package pl.o2.niciel.grupy;
 
import java.util.logging.Logger;
 
 
import org.bukkit.plugin.java.JavaPlugin;
 
public class Glowna extends JavaPlugin {
Logger log = Logger.getLogger("Minecraft");
public final ListenerEntitydamageByEntity Listener = new ListenerEntitydamageByEntity();
@Override
public void onEnable() {
getCommand("grupa").setExecutor(new Komendy());//tu jest blad
getServer().getPluginManager().registerEvents(this.Listener, this);
}
@Override
public void onDisable() {
 
}
public void log(String message) {
log.info(message);
}
}

 

 

Dane

 

 

import java.util.HashMap;
import java.util.List;
 
import org.bukkit.entity.Player;
 
public class Dane {    
    
    private static HashMap<Player,Grupa> mapaGrup = new HashMap<Player,Grupa>();
    private static HashMap<Player,Rekrut> mapaRekrutow = new HashMap<Player,Rekrut>();    //panie narazie ja z tego rezygnuje
    
    public static Grupa dajGrupe(Player player){
        return mapaGrup.get(player);
    }
//    zwraca true jesli gracz jest w grupie
    public static boolean czyGraczJestWGrupie(Player player){
        if (mapaGrup.containsKey(player)==true){
            return true;
        }
        return false;
    }
    
    public static void dodajGrupe(Player player){
        Grupa grupa = new Grupa(player);
        mapaGrup.put(player, grupa);
    }
    public static void dodajGrupe(Player player,Grupa grupa){
        mapaGrup.put(player, grupa);
    }
    
    public static void usunGrupe(Player player){
        List<Player> doUsuniecia = mapaGrup.get(player).dajListeCzlonkow();
        for (int i=0;i<doUsuniecia.size();i++){
            mapaGrup.remove(doUsuniecia.get(i));
        }
    }
 
    
    public static void dodajDoMapyRekrutacji(Player player,Grupa grupa){
        Rekrut rekrut = new Rekrut(grupa);
        mapaRekrutow.put(player, rekrut);
    }
    
    public static Rekrut dajMapeRekrutacji(Player player){
        return mapaRekrutow.get(player);
    }

 

 

 

 

 

Rekrut

 

 

public class Rekrut {
    
    long czas;
    Grupa grupa;
    
    public Rekrut(Grupa grupa){
        this.grupa = grupa;
        czas = System.currentTimeMillis();
    }
    
    public boolean CzyCzasNieMinol(){
        if (czas*1000*30<System.currentTimeMillis()){
            return true;
        }
        return false;
    }
    public Grupa dajGrupe(){
        return grupa;
    }
}

 

 

 

 

 

 

Grupa

 

 

import java.util.ArrayList;
import java.util.HashMap;
//import java.util.HashMap;
//import java.util.List;
 
import org.bukkit.entity.Player;
 
public class Grupa {
    
    private ArrayList<Player> czlonkowie = new ArrayList<Player>();
//    private boolean zamknieta = true;
    private HashMap<Player,Long> mapaZaproszen = new HashMap<Player,Long>();
//    private ArrayList<Player> listaRekrutow = new ArrayList<Player>();
    private Player zalozyciel;
    
    
    
    public Grupa(Player player){
        czlonkowie.add(player);
        zalozyciel = player;
    }
    
    
    public void wyczyscMape(){
        mapaZaproszen.clear();
    }
    public void dodajDoMapy(Player player){
        mapaZaproszen.put(player,System.currentTimeMillis());
    }
    
//    jakie piekne tworcze nazwy zwraca true jesli gracz jest w mapie i czas jest mni
    public boolean CzyCzasSieZgadza(Player player){
        if (mapaZaproszen.get(player)==null){
            return false;
        }
        else if (System.currentTimeMillis()<mapaZaproszen.get(player)+1000*30){
            return true;
        }
        else return false;
    }
//zwraca liste czlonkow
    public ArrayList<Player> dajListeCzlonkow(){
        return czlonkowie;
    }
    public boolean usunGracza(Player player){
        if (czlonkowie.remove(player)==true){
            return true;
        }
        else return false;
    }
//    jesli dodawanie sie powiedzie  zwroci true
    public boolean dodajGracza(Player player){
        if (czlonkowie.add(player)==true){
            return true;
        }
        else return false;
    }
    public String[] dajNazwyCzlonkow(){
        String[] tab = new String[czlonkowie.size()];
        for (int i=0; i<czlonkowie.size();i++){
            tab[i] = czlonkowie.get(i).getName();
        }
        return tab;
    }
//    zwraca true jesli player jest zalozycielem
    public Player dajZalozyciel(){
            return zalozyciel;
        
    }
    public void WyslijDoWszystkich(String wiadomosc){
        for (int i=0;i<czlonkowie.size();i++){
            czlonkowie.get(i).sendMessage(wiadomosc);
        }
    }
        public void WyslijDoWszystkich(String wiadomosc,Player player){
            for (int i=0;i<czlonkowie.size();i++){
                if (czlonkowie.get(i).equals(player)==false){
                    czlonkowie.get(i).sendMessage(wiadomosc);
                
                }
            }
        }
    }

 

 

Listener

 

 

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
 
public class ListenerEntitydamageByEntity implements Listener {
    
    
    
    
    @EventHandler
    public void onEntityDamage(EntityDamageByEntityEvent event) {
    if (event.getDamager() instanceof Player){
        if (event.getEntity() instanceof Player){
            Player atakujacy = (Player) event.getDamager();
            Player broniacy = (Player) event.getEntity();
            if (Dane.czyGraczJestWGrupie(atakujacy) && Dane.czyGraczJestWGrupie(broniacy)==true){
                if (Dane.dajGrupe(atakujacy).equals(Dane.dajGrupe(broniacy))==true){
                    event.setCancelled(true);
                }
            }
        
        }
    }
    }
}

 

 

 

 

 

 

Komendy

 

 

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
 
public class Komendy implements CommandExecutor {
    
    
    
    
//    public Komendy(Komendy plugin) {
//        this.plugin = plugin;
//    }
 
    @SuppressWarnings("deprecation")
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
        if (sender instanceof Player){
            Player player = (Player) sender;
//grupa
            if (label.equalsIgnoreCase("grupa")==true){
                if (args.length==0){
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatColor.GOLD + "/grupa ? pokazuje liste czlonkow grupy");
                    sender.sendMessage(ChatColor.GOLD + "/grupa zaproszenie wysyla zaprosenie do gracza");
                    sender.sendMessage(ChatColor.GOLD + "/grupa wyrzuc wywala gracza");
                    sender.sendMessage(ChatColor.GOLD + "/grupa usun usuwa grupe");
                    sender.sendMessage(ChatColor.GOLD + "/grupa akceptuj akceptujesz zaproszenie");
                    sender.sendMessage(ChatColor.GOLD + "/grupa opusc opuszczasz grupe");
                    sender.sendMessage(" ");
                }
//grupa stworz
                else if (args.length==1){                    
                    if (args[0].equalsIgnoreCase("stworz")==true){
                        if (Dane.dajGrupe(player) == null){
                            Dane.dodajGrupe(player);
                            sender.sendMessage("pomyslnie stworzono grupe");
                        }
                        else sender.sendMessage("Nie mozesz tworzyc nowej grupy");
                    }
//grupa ?
                    else if (args[0].equalsIgnoreCase("?")==true){
                        if (Dane.dajGrupe(player) != null){
                            for (int i = 0;i<Dane.dajGrupe(player).dajListeCzlonkow().size();i++){
                                sender.sendMessage(Dane.dajGrupe(player).dajListeCzlonkow().get(i).getName() +" " + Dane.dajGrupe(player).dajListeCzlonkow().get(i).getHealth() + "Hp");
                            }
                        }
                        else sender.sendMessage("nie jestes w zadnej grupie !!");
                    }
//grupa opusc
                    else if (args[0].equalsIgnoreCase("opusc")==true){
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajGrupe(player).dajZalozyciel().equals(player)==true){
                                sender.sendMessage("cos ty !!.nie mozesz opuscic swojej grupy !!!");
                            }
                            else {
                                Dane.dajGrupe(player).WyslijDoWszystkich("Gracz: " + player.getName() +"opuszcza grupe", player);
                                Dane.dajGrupe(player).usunGracza(player);
                                sender.sendMessage("opusiciles grupe!");
                            }
                        }
                    }
//grupa usun
                    else if (args[0].equalsIgnoreCase("usun")==true){
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajGrupe(player).dajZalozyciel().equals(player)==true){
                                Dane.dajGrupe(player).WyslijDoWszystkich("Grupa zostala usunieta !!");
                                Dane.usunGrupe(player);
                            }
                            else sender.sendMessage("Pogielo cie nie mozesz usunac nie swojej grupy!!");
                        }
                    }
//grupa akceptuj
                    else if (args[0].equalsIgnoreCase("akceptuj")==true){
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajMapeRekrutacji(player).CzyCzasNieMinol()==false){
                                sender.sendMessage("sory kompadre ale nie masz do kad dolaczyc , nikt cie nie chce");
                            }
                            else {
                                Dane.dajMapeRekrutacji(player).dajGrupe().dodajGracza(player);
                                Dane.dodajGrupe(player, Dane.dajMapeRekrutacji(player).dajGrupe());
                                sender.sendMessage("Brawo zostales dodany do grupy");
                                Dane.dajGrupe(player).WyslijDoWszystkich("Gracz " + sender.getName() + " dolaczyl do grupy!!",player);
                            }
                        }
                    }
                    
                }
                else if (args.length==2){
                    if (Dane.dajGrupe(player) != null){//wysyla zaproszenie od zalozyciela do gracza
                        if (Dane.dajGrupe(player).dajZalozyciel().equals(player)==true){
//grupa zapros [nick gracza]
                            if (args[0].equalsIgnoreCase("zapros")==true){
                                Player rekrut;
                                rekrut = Bukkit.getPlayer(args[1]);
                                if (rekrut!=null){
                                    if (rekrut.isOnline()==true){
                                        if (Dane.dajGrupe(rekrut)==null){
                                            Dane.dodajDoMapyRekrutacji(rekrut, Dane.dajGrupe(player));
                                            rekrut.sendMessage("zostales zaproszony do grupy przez " + player.getName());
                                            sender.sendMessage("wyslales zaproszenie do gracza " + rekrut.getName());
                                        }
                                        else sender.sendMessage("Ten gracz jest w innej grupie !!");
                                    }
                                    else sender.sendMessage("Podany nick jest nie wlasciwy !!");
                                }
                                sender.sendMessage("nie poprawny nick");
                            }
//grupa akceptuj [nick gracza]
                            else if (args[0].equalsIgnoreCase("akceptuj")==true){//akceptuje zaproszenie przez zalozyciela jesli gracz byl na liscie
                                Player rekrut;
                                rekrut = Bukkit.getPlayer(args[1]);
                                if (rekrut!=null){
                                    if (rekrut.isOnline()==true){
                                        if (Dane.dajGrupe(rekrut)==null){
                                            if (Dane.dajGrupe(player).CzyCzasSieZgadza(rekrut)==true){
                                                Dane.dajGrupe(player).dodajGracza(rekrut);
                                                rekrut.sendMessage("zostales dodany do grupy "+ Dane.dajGrupe(player).dajZalozyciel().getName());
                                            }
                                        }
                                    }
                                }
                                else sender.sendMessage("nie poprawny nick");
                            }
                        }
                        else sender.sendMessage("Tylko zalozyciel moze zapraszac nowych graczy");
                    }
//grupa zapros [nazwa grupy]
                    else if (args[0].equalsIgnoreCase("zapros")==true){    
                        Player rekrut = Bukkit.getPlayer(args[1]);
                        if (rekrut !=null){
                            if (Dane.dajGrupe(rekrut)!=null){
                                Dane.dajGrupe(rekrut).dodajDoMapy(player);
                            }
                            else sender.sendMessage("nie znaleziono grupy");
                        }
                        else sender.sendMessage("zla nazwa gracza !!");
                    }    
                }
            }
        }
 
        return true;
    }
 
}

 

 

Klasa Komenda ze switch'ami

 

 

 

package pl.o2.niciel.grupy;
 
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
 
public class Komendy implements CommandExecutor {
    
    
    
    
//    public Komendy(Komendy plugin) {
//        this.plugin = plugin;
//    }
 
    @SuppressWarnings("deprecation")
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
        if (sender instanceof Player){
            Player player = (Player) sender;
//grupa
            if (label.equalsIgnoreCase("grupa")){
                switch (args.length){
                case 0:
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatColor.GOLD + "/grupa ? pokazuje liste czlonkow grupy");
                    sender.sendMessage(ChatColor.GOLD + "/grupa zaproszenie wysyla zaprosenie do gracza");
                    sender.sendMessage(ChatColor.GOLD + "/grupa wyrzuc wywala gracza");
                    sender.sendMessage(ChatColor.GOLD + "/grupa usun usuwa grupe");
                    sender.sendMessage(ChatColor.GOLD + "/grupa akceptuj akceptujesz zaproszenie");
                    sender.sendMessage(ChatColor.GOLD + "/grupa opusc opuszczasz grupe");
                    sender.sendMessage(" ");
                    break;
                case 1 :
                    switch (args[0]){
                    case "?":
                        if (Dane.dajGrupe(player) != null){
                            for (int i = 0;i<Dane.dajGrupe(player).dajListeCzlonkow().size();i++){
                                sender.sendMessage(Dane.dajGrupe(player).dajListeCzlonkow().get(i).getName() +" " + Dane.dajGrupe(player).dajListeCzlonkow().get(i).getHealth() + "Hp");
                            }
                        }
                        else sender.sendMessage("nie jestes w zadnej grupie !!");
                        break;
                    case "stworz":
                        if (Dane.dajGrupe(player) == null){
                            Dane.dodajGrupe(player);
                            sender.sendMessage("pomyslnie stworzono grupe");
                        }
                        else sender.sendMessage("Nie mozesz tworzyc nowej grupy");
                        break;
                    case "opusc":
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajGrupe(player).dajZalozyciel().equals(player)){
                                sender.sendMessage("cos ty !!.nie mozesz opuscic swojej grupy !!!");
                            }
                            else {
                                Dane.dajGrupe(player).WyslijDoWszystkich("Gracz: " + player.getName() +"opuszcza grupe", player);
                                Dane.dajGrupe(player).usunGracza(player);
                                sender.sendMessage("opusiciles grupe!");
                            }
                        }
                        break;
                    case "usun":
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajGrupe(player).dajZalozyciel().equals(player)){
                                Dane.dajGrupe(player).WyslijDoWszystkich("Grupa zostala usunieta !!");
                                Dane.usunGrupe(player);
                            }
                            else sender.sendMessage("Pogielo cie nie mozesz usunac nie swojej grupy!!");
                        }
                        break;
                    case "akceptuj":
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajMapeRekrutacji(player).CzyCzasNieMinol()==false){
                                sender.sendMessage("sory kompadre ale nie masz do kad dolaczyc , nikt cie nie chce");
                            }
                            else {
                                Dane.dajMapeRekrutacji(player).dajGrupe().dodajGracza(player);
                                Dane.dodajGrupe(player, Dane.dajMapeRekrutacji(player).dajGrupe());
                                sender.sendMessage("Brawo zostales dodany do grupy");
                                Dane.dajGrupe(player).WyslijDoWszystkich("Gracz " + sender.getName() + " dolaczyl do grupy!!",player);
                            }
                        }
                        break;
                        default : sender.sendMessage("Nie prawidlowa komenda!!");break;
                    }
                case 2 : {
                    switch (args[1]){
                    case "akceptuj":
                        if (Dane.dajGrupe(player) != null){
                            if (Dane.dajGrupe(player).dajZalozyciel().equals(player)==true){
                                Player rekrut;
                                rekrut = Bukkit.getPlayer(args[1]);
                                if (rekrut!=null){
                                    if (rekrut.isOnline()==true){
                                        if (Dane.dajGrupe(rekrut)==null){
                                            if (Dane.dajGrupe(player).CzyCzasSieZgadza(rekrut)==true){
                                                Dane.dajGrupe(player).dodajGracza(rekrut);
                                                rekrut.sendMessage("zostales dodany do grupy "+ Dane.dajGrupe(player).dajZalozyciel().getName());
                                            }
                                        }
                                    }
                                }
                                else sender.sendMessage("nie poprawny nick");
                            }
                        }
                        else sender.sendMessage("Tylko zalozyciel moze zapraszac nowych graczy");
                        break;
                    case "zapros":
                        if (Dane.dajGrupe(player)==null){
                            Player rekrut = Bukkit.getPlayer(args[1]);
                            if (rekrut!=null){
                                if (Dane.dajGrupe(rekrut)!=null){
                                    Dane.dajGrupe(rekrut).dodajDoMapy(player);
                            }
                            else sender.sendMessage("nie znaleziono grupy");
                            }
                        }
                        else if (Dane.dajGrupe(player).dajZalozyciel().equals(player)){
                            Player rekrut = Bukkit.getPlayer(args[1]);
                            if (rekrut!=null){
                                if (rekrut.isOnline()==true){
                                    if (Dane.dajGrupe(rekrut)==null){
                                        Dane.dodajDoMapyRekrutacji(rekrut, Dane.dajGrupe(player));
                                        rekrut.sendMessage("zostales zaproszony do grupy przez " + player.getName());
                                        sender.sendMessage("wyslales zaproszenie do gracza " + rekrut.getName());
                                    }
                                else sender.sendMessage("Ten gracz jest w innej grupie !!");
                                }
                            else sender.sendMessage("Podany nick jest nie wlasciwy !!");
                            }
                        sender.sendMessage("nie poprawny nick");
                        }
                        }
                    }        
                }
            }
        }
        return true;
    }
}

 

 

Opublikowano

znaczy się ja już mam 5 klas + główna , sam plugin na razie pozwala na wszystko co potrzeba do funkcjonowania grup (tzn tworzenie usuwanie grupy , zapraszanie wywalanie gracza , blokada ataku <to niedokończone> bookuje tylko ataki wręcz) ,chciałem dodać czat grupowy , usuwanie grup "nieaktywnych" oraz kilka dodatków do samych grup ale po co skoro Kod jest w tak złym stanie ze to nie ma sensu ciągnąć dalej , tak więc szukam kogoś kto by mi wytłumaczył na czym polega mój błąd

wiec wstaw kod na jakimś forum o bukkicie i tam się zacznij pytać (forums.bukkit.org, bukkit.pl)

dzis w nocy..

Opublikowano

Bez przesady. Były na tym forum dużo, dużo gorsze kody. Poza tym tak jak Ci pisałem - To, że używasz OOP, już czyni Cię lepszym niż większość bukkitowych 'devów'. Może i to podstawa, ale jednak taka jest prawda. Polskie nazewnictwo trochę odrzuca, ale nie jest to najważniejsze. Wszystkiego w końcu się nauczysz. Kod działa i nie ma w nim rażących błędów. Widać tylko brak doświadczenia.

 

Szukam jednej miłej osoby która pomogła by mi przy nauce Javy (głównie pisanie pluginów pod bukkit'a) , jakieś tam podstawy znam.

Nikt Cię raczej za darmo Javy nie nauczy. Sam nawet lepiej wyjdziesz na problemach rozwiązywanych samodzielnie, przez google. W sytuacji krytycznej możesz do mnie napisać - kontakt mam w profilu.

708121422388637873334.png

Opublikowano

eh trudno :| , kursy są trochę drogi ,zwłaszcza że nie wiąże z programowaniem większych nadziei (w sumie to tylko minecraft) , ani nie wiem jak długo będzie mi się chciało bawić(bo inaczej tego nie ujmę) w programowanie ,

no nie wiem czy dobrze rozumiem obiektowość , bo wcześniej nie pisałem niczego większego (tylko jakieś pierdółki do nauki) . nie wiem czemu ale cały czas mnie razi odwoływanie się do pol statycznych :P jakoś przeszukiwałem github'a i ani razu nie znalazłem takiego sposobu z jakiego ja korzystam znaczy sie <nazwa Klasy statycznej>.pole_statyczne , tego jest znacznie wiecej ale spróbuje sam to jakoś ogarnąć poszperam , zapytam się wujka google i jakoś to będzie

Dzięki za pomoc

Opublikowano

 

Jakoś przeszukiwałem github'a i ani razu nie znalazłem takiego sposobu z jakiego ja korzystam znaczy sie <nazwa Klasy statycznej>.pole_statyczne

Czyli źle szukałeś. Tak się robi.

708121422388637873334.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...