Skocz do zawartości

iYowee

Użytkownik
  • Ilość zawartości

    44
  • Rejestracja

  • Ostatnia wizyta

Treść opublikowana przez iYowee

  1. dobra nie rozumiem tego, cos tam zmienilem ale nie dziala XD, wyslesz kod ktory zadziala? package me.kuzja.spectatecommand; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.UUID; public class SpectateCommand implements CommandExecutor { Map<Player, Location> playerLocation = new HashMap<>(); ArrayList<UUID> playerSpectating = new ArrayList<>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { Player p = (Player) sender; if (cmd.getName().equalsIgnoreCase("spectate")) { if (p.hasPermission("spectatecommand.spectate")) { if (args.length == 1) { Player ps = Bukkit.getServer().getPlayer(args[0]); if (ps != null) { if (!ps.getName().equalsIgnoreCase(p.getName())) { if (!playerSpectating.contains(ps.getUniqueId())) { playerLocation.put(p, p.getLocation()); playerSpectating.add(p.getUniqueId()); p.teleport(ps.getLocation()); p.setInvulnerable(true); p.setAllowFlight(true); for (Player plrs : Bukkit.getServer().getOnlinePlayers()) { plrs.hidePlayer(p); } p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand] &aSpectating player &7" + ps.getName() + "&a, to stop spectating type: &7/unspectate")); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate player, who's already spectating someone!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate yourself!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cThis player is not online, or doesn't exists")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou have to provide player name!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou don't have permission to execute this command!")); } } else if (cmd.getName().equalsIgnoreCase("unspectate")) { if (playerSpectating.contains(p.getUniqueId())) { p.teleport(playerLocation.get(p)); playerSpectating.remove(p.getUniqueId()); p.setInvulnerable(false); p.setAllowFlight(false); for (Player plrs : Bukkit.getServer().getOnlinePlayers()) { plrs.showPlayer(p); } p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &aStopped spectating!")); playerLocation.remove(p); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou aren't spectating anyone!")); } } return false; } }
  2. Jednak gdy poprawiłem to o czym wspomniales + wniosłem poprawki, że zamiast spectatora jest na vanishu z flyem to gdy wpisuje /unspectate to wyskakuje komunikat "You aren't spectating anyone" oto aktualny kod: package me.kuzja.spectatecommand; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class SpectateCommand implements CommandExecutor { Map<Player, Location> playerLocation = new HashMap<>(); ArrayList<Player> playerSpectating = new ArrayList<>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { Player p = (Player) sender; if (cmd.getName().equalsIgnoreCase("spectate")) { if (p.hasPermission("spectatecommand.spectate")) { if (args.length == 1) { Player ps = Bukkit.getServer().getPlayer(args[0]); if (ps != null) { if (!ps.getName().equalsIgnoreCase(p.getName())) { if (!playerSpectating.contains(ps)) { playerLocation.put(p, p.getLocation()); playerSpectating.add(p); p.teleport(ps.getLocation()); p.setInvulnerable(true); p.setAllowFlight(true); for (Player plrs : Bukkit.getServer().getOnlinePlayers()) { plrs.hidePlayer(p); } p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand] &aSpectating player &7" + ps.getName() + "&a, to stop spectating type: &7/unspectate")); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate player, who's already spectating someone!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate yourself!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cThis player is not online, or doesn't exists")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou have to provide player name!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou don't have permission to execute this command!")); } } else if (cmd.getName().equalsIgnoreCase("unspectate")) { if (playerSpectating.contains(p)) { p.teleport(playerLocation.get(p)); playerSpectating.remove(p); p.setInvulnerable(false); p.setAllowFlight(false); for (Player plrs : Bukkit.getServer().getOnlinePlayers()) { plrs.showPlayer(p); } p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &aStopped spectating!")); playerLocation.remove(p); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou aren't spectating anyone!")); } } return false; } }
  3. Dzięki za pomoc, co do kodu, to dopiero się uczę pisać.
  4. Hej, próbowałem napisać plugin na spectatowanei graczy, ale gdy go testuje w konsoli wyskakuje błąd podczas komendy, /unspectate Kod oraz błąd: package me.kuzja.spectatecommand; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.HashMap; import java.util.Map; public class SpectateCommand implements CommandExecutor { Map<Player, Location> playerLocation = new HashMap<>(); Map<Player, GameMode> playerGamemode = new HashMap<>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { Player p = (Player) sender; if (cmd.getName().equalsIgnoreCase("spectate")) { if (p.hasPermission("spectatecommand.spectate")) { if (args.length == 1) { Player ps = Bukkit.getServer().getPlayer(args[0]); if (ps.isOnline()) { if (!ps.getName().equalsIgnoreCase(p.getName())) { if (ps.getGameMode() != GameMode.SPECTATOR) { playerLocation.put(p, p.getLocation()); playerGamemode.put(p, p.getGameMode()); p.teleport(ps.getLocation()); p.setGameMode(GameMode.SPECTATOR); p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand] &aSpectating player &7" + ps.getName() + "&a, to stop spectating type: &7/unspectate")); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate player, who's already spectating someone!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou can't spectate yourself!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cThis player is not online, or doesn't exists")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou have to provide player name!")); } } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou don't have permission to execute this command!")); } } else if (cmd.getName().equalsIgnoreCase("unspectate")) { if (p.getGameMode() == GameMode.SPECTATOR) { p.teleport((Location) playerLocation); p.setGameMode(playerGamemode.get(p)); p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &aStopped spectating!")); playerLocation.clear(); playerGamemode.clear(); } else { p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&bSpectateCommand&8] &cYou aren't spectating anyone!")); } } return false; } } [23:34:49 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'unspec' in plugin SpectateCommand v1.0 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_20_R1.CraftServer.dispatchCommand(CraftServer.java:987) ~[paper-1.20.1.jar:git-Paper-196] at org.bukkit.craftbukkit.v1_20_R1.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.1.jar:git-Paper-196] at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[paper-1.20.1.jar:?] at net.minecraft.commands.Commands.performCommand(Commands.java:324) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:308) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2354) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$21(ServerGamePacketListenerImpl.java:2314) ~[?:?] at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1338) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1315) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1308) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1286) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1174) ~[paper-1.20.1.jar:git-Paper-196] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.20.1.jar:git-Paper-196] at java.lang.Thread.run(Thread.java:1583) ~[?:?] Caused by: java.lang.ClassCastException: class java.util.HashMap cannot be cast to class org.bukkit.Location (java.util.HashMap is in module java.base of loader 'bootstrap'; org.bukkit.Location is in unnamed module of loader java.net.URLClassLoader @1b9e1916) at me.kuzja.spectatecommand.SpectateCommand.onCommand(SpectateCommand.java:53) ~[SpectateCommand-1.0.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?] ... 23 more
  5. to na 1.20.1 jest?
  6. dziala, a da sie jakos zrobic ze np jest sie na lobby i jest komenda /ogloszenie to na lobby i na trybie wysyla?
  7. da sie na 1.20.1 jakos przeniesc z jednego podlaczonego servera na drugi?
  8. chodzi mi o to czy jest jakas funkcja ze mam np item w ekwipunku i po kliknieciu na niego ppm przenosi mnie na inny server za pomoca skripta
  9. dzieki, a da jakos bez zadnych addonow lub z jakimis pod 1.20.1 przeniesc sie z servera bungeecord na skripcie bo robie kompas z trybami
  10. chodzi o to ze w wlasnym ekwipunku nie dalo sie zmieniac slotu kompasu ktory jest w ekwipunku wersja skripta to 2.9.0 zadnych dodatkow nie ma
  11. Da sie ustawic zeby nie dalo sie slotow zmieniac itemow w ekwipunku powyzej jest skrypt? Edit. jednak na dole jest skrypt
  12. iYowee

    Vouchery z kodem

    a moglbys ustawic na 10 znakow te vouchery i dodac permamentne rangi
  13. iYowee

    Vouchery z kodem

    Jest jeden problem poniewaz jezeli wygeneruje kod i znajduja sie w nim wielkie litery to jak wchodze w ta liste to pokazuja sie tylko male, mozna by bylo zrobic ze gdy argument 3 nie jest ustawiony to ranga jest permamenta oraz ustawic dlugosc voucheru na 10 znakow?
  14. iYowee

    Vouchery z kodem

    mozna zmienic skrypt aby ustawic za pomoca komendy czas trwania rangi oraz liste aktywnych voucherow?
  15. iYowee

    Vouchery z kodem

    jednorazowosc chodzilo o to ze jak sie raz wykorzysta kod to drugi raz nie mozna - prosze o poprawiony skrypt w calosci
  16. iYowee

    /portfel - gui

    a jezeli mam komende do dodawania waluty to da sie zmienic w jakis sposob set {cash::%player-argument%} to arg 3 na dodanie tej waluty, a nie ustawienie jej?
  17. iYowee

    /portfel - gui

    Dziekuje a da sie zrobic zeby zamiast 0zl pisalo 0.00zl ?
  18. iYowee

    /portfel - gui

    z tym "mojnick" chodzilo mi o to ze w gui sie tak pokazuje, dodalem funkcje z tym on join ze ustawia zmienna na 0 jak nie jest ustawiona, lecz dalej nie dziala
  19. iYowee

    /portfel - gui

    Witam, Robie skrypt na komende /portfel lecz gdy ustawilem to podczas reloadowania skriptu nie wyskakuje zaden blad lecz gdy wchodze w gui i nakierowywuje mysz na ten 4 slot nie pokazuje ze gracz ma 0.00zl tylko {cash::mójnick}zl Jak to naprawic?
  20. iYowee

    Vouchery z kodem

    Witam, czy moglby ktos napisac mi vouchery z kodem ktore mozna wygenerowac za pomoca komendy /voucher utworz <ranga> a wykorzystac /voucher <kod> kod zeby skladal sie z 6 losowych liter/cyfer voucher powinien byc jednorazowy i jezeli sie da prosze o to zeby dalo sie utworzyc ich wiecej niz 1
  21. iYowee

    Tag nad glowa

    Moglby Pan wyslac ten dodatek jako plik? nie moge znalezc przycisku od pobierania
  22. iYowee

    Tag nad glowa

    Witam, Czy moglby ktos napisac mi skrypt na tag (Chodzi mi o napis nad glowa - [Wlasciciel] %player-argument's nick%)? Wersja 1.17.1, wersja skript 2.8.7
  23. iYowee

    Nadanie permisji

    Dziekuje do zamkniecia
  24. iYowee

    Nadanie permisji

    robie skrypt na rangi i wogole sie nie orientuje jak dzialaja te permisje, prosze o pomoc i wyrozumialosc
  25. moglbys napisac poprawnie ten skrypt?
×
×
  • Dodaj nową pozycję...