Skocz do zawartości

szymonjjay

Użytkownik
  • Ilość zawartości

    100
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez szymonjjay

  1. 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.
  2. e.getPlayer().setItemInHand(null); I taka rada, porównując typy enum nie musisz robić tego za pomocą .equals() a wystarczy ==
  3. 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.
  4. Na końcu case'a z SUGAR brakuje break.
  5. Problem tkwi w tym, że pluginy przeznaczone na bukkita/spigota wgrywasz do bungeecorda.
  6. W linijce 156 brakuje przecinka po } }"MySQL Thread #" + this.ai.getAndIncrement())).start();
  7. Błąd wskazuje na brak klasy z MCProtocolLib, zapewne nie kompiluje ci się z zawartością MCProtocolLib'a, sprawdz w artefaktach.
  8. 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ć.
  9. main: Paczka.bukkit.org.Main Nie pokazuje pluginu bo brakuje właśnie tej linijki
  10. 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"
  11. 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]);
  12. 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")){ } } }
  13. 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
  14. szymonjjay

    Problem

    /gamerule doMobSpawning false Wyłączysz resp zwykłych mobów, te z pluginu dalej będą się respiły.
  15. 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; }
  16. 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)
  17. szymonjjay

    Błąd

    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ę
  18. 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);
  19. plugin.yml nie jest w projekcie, przenieś go do src
  20. szymonjjay

    VPS

    Użyj polecenia: htop, wskaż serwer i kliknij bodajże F9 potem enter żeby zabić proces Jeżeli nie działa: apt install htop
  21. float XPBar = XP / XPTl; Rzutuj XP i XPTl na floata i zadziała: float XPBar = (float)XP / (float)XPTl;
  22. Jak tworzysz finalne zmienne to musisz do nich coś przypisać.
  23. 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.
  24. Ale to się zaprzecza. Jak nie chcesz obciążać serwera to nie używaj skryptów.
×
×
  • Dodaj nową pozycję...