szymonjjay
Użytkownik-
Ilość zawartości
100 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Treść opublikowana przez szymonjjay
-
A czy lepszym rozwiązaniem nie byłoby zrobić tylko jednego scoreboarda, albo nie robić go wcale i dać do głownego Bukkitowego? Wtedy wystarczyłoby zrobić jeden Objective i każdemu graczu co x czasu ustawiać score na jego hp.
-
e.getPlayer().setItemInHand(null); I taka rada, porównując typy enum nie musisz robić tego za pomocą .equals() a wystarczy ==
-
Według loga wygląda na to, że próbowałeś wykonać komendę za pomocą konsoli, a w kodzie komendy castujesz wykonującego komendę na gracza, a konsola nim nie jest.
-
Na końcu case'a z SUGAR brakuje break.
-
WaterFall bungeecord minecraft
szymonjjay odpowiedział(a) na SkryprowyPL pytanie w Pytania i problemy
Problem tkwi w tym, że pluginy przeznaczone na bukkita/spigota wgrywasz do bungeecorda. -
W linijce 156 brakuje przecinka po } }"MySQL Thread #" + this.ai.getAndIncrement())).start();
-
Błąd wskazuje na brak klasy z MCProtocolLib, zapewne nie kompiluje ci się z zawartością MCProtocolLib'a, sprawdz w artefaktach.
-
Zapisywanie statystyk gracza w hashmapie
szymonjjay odpowiedział(a) na CookieMonster85 pytanie w Pytania i problemy
private final Map<UUID, Map<Material, Integer>> oreCountMap = new HashMap<>(); public void incrementPlayerData(final Player p, final Material m, final int c){ final Map<Material, Integer> oreMap; if(!oreCountMap.containsKey(p.getUniqueId())){ oreMap = oreCountMap.put(p.getUniqueId(), new HashMap<>()); }else{ oreMap = oreCountMap.get(p.getUniqueId()); } if(oreMap.containsKey(m)){ oreMap.replace(m, oreMap.get(m)+c); }else{ oreMap.put(m, c); } oreCountMap.replace(p.getUniqueId(), oreMap); } public int getPlayerMinedOres(final Player p, final Material m){ if(!oreCountMap.containsKey(p.getUniqueId())) return 0; return oreCountMap.get(p.getUniqueId()).getOrDefault(m, 0); } Nie testowane, przechowuje ilość wykopanych materiałów (z eventu blockbreak możesz wziąć z twojwykopanyblok.getType()) Możesz tez zmienić Material na dowolną klasę jaką chcesz przechowywać. -
main: Paczka.bukkit.org.Main Nie pokazuje pluginu bo brakuje właśnie tej linijki
-
Jak rzuca nulla to znaczy, że ten obiekt nie ma wartości, może najpierw teleportujesz, potem ustawiasz, nie wiem jak to wygląda w tej klasie "LoginMenager"
-
Rzuca ci nulla bo próbujesz castować Playera (który jest nullem bo jak pisałeś nie było go na serwerze) na offlineplayera. OfflinePlayer offlinePlayer = Bukkit.getPlayerExact(args[0]);
-
Zamiennik on right click on player:
szymonjjay odpowiedział(a) na Vigintinek pytanie w Pytania i problemy
Twój kod może rzucać błędy, bo chcesz wziąć nazwę przedmiotu, a nie sprawdzasz wcześniej czy gracz w ogóle coś trzyma. Powinno być tak: @EventHandler public void onPlayerInteract(PlayerInteractEntityEvent e){ Player player = e.getPlayer(); Entity entity = e.getRightClicked(); if(entity instanceof Player){ if(player.getInventory().getItemInMainHand()==null) return; if(player.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals("Inventory")){ } } } -
xyz.getPlugin(xyz.class).getConfig() Musisz wziąć instancje Plugin z klasy głównej. To co podałem, to jest jedna z opcji, gdzie zamiast 'xyz' wpisujesz nazwę twojej klasy, która extenduje JavaPlugin
-
/gamerule doMobSpawning false Wyłączysz resp zwykłych mobów, te z pluginu dalej będą się respiły.
-
No jak zrobisz obiekt to normalnie możesz np w następnej linijce ustawić direction, tak jak miałeś. public static Location getLocation(String path){ YamlConfiguration config = YamlConfiguration.loadConfiguration(FileManager.locationsFile); World world = Bukkit.getWorld(config.getString(path + ".world")) double blockX = config.getDouble(path + ".blockX"); double blockY = config.getDouble(path + ".blockY"); double blockZ = config.getDouble(path + ".blockZ"); double dirX = config.getDouble(path + ".direction.X"); double dirY = config.getDouble(path + ".direction.Y"); double dirZ = config.getDouble(path + ".direction.Z"); Location loc = new Location(world, blockX, blockY, blockZ); loc.setDirection(new Vector(dirX, dirY, dirZ)); return loc; }
-
Przypisujesz wartości do nulla. Najpierw zrób nowy obiekt Location, a dopiero później przypisuj, do nulla nie można. Zamień Location loc = null; na Location loc = new Location(world, x, y, z)
-
Jeżeli chcesz odpalić komendę napisaną w skrypcie w pluginie to musisz zaimportować bibliotekę skripta i następnie wywołać metodę Skript.dispatchCommand(sender, command) o ile się nie mylę
-
Robisz taska, który wykona się po określonym czasie: new BukkitRunnable(){ @Override public void run() { <twój kod> } }.runTaskLater(instancja pluginu, ilosc tickow 20 to jedna sekunda);
-
plugin.yml nie jest w projekcie, przenieś go do src
-
Użyj polecenia: htop, wskaż serwer i kliknij bodajże F9 potem enter żeby zabić proces Jeżeli nie działa: apt install htop
-
float XPBar = XP / XPTl; Rzutuj XP i XPTl na floata i zadziała: float XPBar = (float)XP / (float)XPTl;
-
Jak tworzysz finalne zmienne to musisz do nich coś przypisać.
-
usun _
-
Zlecę napisanie pluginu pod bungee (no-premium) aby były główki ze skinami na tabliście oraz jak nie ma gracza to jest główka np. Stone i to, że tablista ma cały czas największy rozmiar (tak jak jest 80 graczy) wersja 1.8, cena do uzgodnienia na PW.
-
Ale to się zaprzecza. Jak nie chcesz obciążać serwera to nie używaj skryptów.
