Ustawiam w pluginie w playerjoinevent każdemu prywatnie jego scoreboard typu health o displayname równym jego max health
każdego gracza z jego tablicą trzymam w innej klasie jako obiekt i zapisuje te obiekty do listy, aby później na nich jeszcze raz wywołać
metodę ustawiania tablicy, tak aby gracz który wchodzi miał widoczny score dla gracza który jest już na serwerze (niestety nie działa to w drugą stronę)
ArrayList<GraczTablica> listaScoreboardowGraczy =newArrayList<>();@EventHandlerpublicvoid onPlayerJoin(PlayerJoinEvent e){Player gracz = e.getPlayer();GraczTablica gt =newGraczTablica(gracz);
gt.stworzTabliceGracza();
gt.ustawTabliceGraczowi();
listaScoreboardowGraczy.add(gt);Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this,newRunnable(){publicvoid run(){for(GraczTablica x : listaScoreboardowGraczy){
x.ustawTabliceGraczowi();}}},20L);}
publicclassGraczTablica{privatePlayer gracz;privateScoreboard tablica;Objective o;privateint maxhealth;GraczTablica(Player p){this.gracz = p;this.maxhealth =(int)p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue();this.tablica =Bukkit.getScoreboardManager().getNewScoreboard();}publicvoid stworzTabliceGracza(){this.o =this.tablica.registerNewObjective("health","health","health");this.o.setDisplaySlot(DisplaySlot.BELOW_NAME);this.o.setDisplayName("/ "+Integer.toString(this.maxhealth)+"§c ❤");}publicvoid ustawTabliceGraczowi(){this.gracz.setScoreboard(tablica);this.gracz.sendMessage("Ustawilem Ci scoreboard'a");this.gracz.sendMessage("Twoje max hp to: "+maxhealth);}}
jednak w efekcie końcowym na serwerze pod nickiem obcego gracza wyświetlany jest własny max health gracza
pomógłby ktoś to ogarnąć, aby każdemu graczowi wyświetlało prawidłowy max health oraz aby score aktualizował się również dla graczy którzy wchodzą na serwer żeby widzili score tych którzy już na nim są
Pytanie
pringles18 2
Siema potrzebuję pomocy przy scorze.
Ustawiam w pluginie w playerjoinevent każdemu prywatnie jego scoreboard typu health o displayname równym jego max health
każdego gracza z jego tablicą trzymam w innej klasie jako obiekt i zapisuje te obiekty do listy, aby później na nich jeszcze raz wywołać
metodę ustawiania tablicy, tak aby gracz który wchodzi miał widoczny score dla gracza który jest już na serwerze (niestety nie działa to w drugą stronę)
jednak w efekcie końcowym na serwerze pod nickiem obcego gracza wyświetlany jest własny max health gracza
pomógłby ktoś to ogarnąć, aby każdemu graczowi wyświetlało prawidłowy max health oraz aby score aktualizował się również dla graczy którzy wchodzą na serwer żeby widzili score tych którzy już na nim są
z góry dzięki
Odnośnik do komentarza
https://skript.pl/temat/44289-score-health-pod-nickiem/Udostępnij na innych stronach
2 odpowiedzi na to pytanie
Rekomendowane odpowiedzi