Skocz do zawartości
  • 0

Lista graczy - plugin na prywatne wiadomosci


Pytanie

Witam,

 

Chciałbym napisać plugin zawierający w sobie listę graczy mających włączony tryb socialspy. Kiedy gracz używa komendy /socialspy na konsoli wyświetla się błąd. 

 

 

 

Jeszcze jedno:

W jaki sposób stworzyć "zmienna gracza" - w skryptach było to zmienna::%player%? Chodzi o zrobienie komendy /r która wyśle wiadomość do ostatniego gracza. (Najlepiej gdyby było to bez tworzenia plików)

Edytowane przez Wojciu
Wojciu

Dłuższy kod wstawiamy https://code.skript.pl/

Notatka dodana przez Wojciu

Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
if(socialspyPlayers.contains(p)) {      //tu jest blad po komendzie

Prawdopodobnie kolekcja jest nullem. Nie wiadomo o jakim błędzie mówisz, wyślij najlepiej cały stacktrace ;)

44 minuty temu, Virosel napisał:

W jaki sposób stworzyć "zmienna gracza" - w skryptach było to zmienna::%player%? Chodzi o zrobienie komendy /r która wyśle wiadomość do ostatniego gracza. (Najlepiej gdyby było to bez tworzenia plików)

Najlepiej sobie stworzyć pod zmienne dla danego gracza osobną klasę z jego encją. Na przykład - tworzysz sobie klasę "User", w której tworzysz odpowiednie konstruktory, ustawiając na przykład finalne UUID. W tej klasie umieszczasz wszelkie zmienne, które Ciebie interesują. Warto, abyś stworzył sobie jakiś manager od graczy, który przetrzymywałby mapę. W takim managerze możesz stworzyć odpowiadające metody pod pobieranie, dodawanie, usuwanie, zbieranie wszystkich graczy. Wszystko zależy czego potrzebujesz.
Nie obędzie się bez zapisu do pliku. W Skript masz od tego plik variables.csv. Tutaj musisz serializować dane - albo do pliku (typu YML, JSON na przykład), albo do bazy danych. Zapis również zależy od Ciebie ;) 

Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/#findComment-241509
Udostępnij na innych stronach

  • 0
1 minutę temu, Virosel napisał:

Kolekcja jest null. W definicji u góry jest List<Player> socialspyPlayers = null;

Ale jak to naprawić?

Stwórz po prostu instancję listy.

List<Player> socialSpyPlayers = new ArrayList<>();

:) 

Edytowane przez Savorski
Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/#findComment-241513
Udostępnij na innych stronach

  • 0

[22:32:52 INFO]: VIROZ_PL issued server command: /socialspy
[22:32:52 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'socialspy' in plugin vChatAddon v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_231]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_231]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.Error: Unresolved compilation problem:
        Unreachable code

        at pl.viroz.chataddon.Socialspy.onCommand(Socialspy.java:61) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        ... 15 more

Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/#findComment-241518
Udostępnij na innych stronach

  • 0
13 minut temu, Virosel napisał:

Caused by: java.lang.Error: Unresolved compilation problem:
        Unreachable code

        at pl.viroz.chataddon.Socialspy.onCommand(Socialspy.java:61) ~[?:?]

if(socialspyPlayers.contains(p)) {      //tu jest blad po komendzie

Jesteś pewien, że to w tym miejscu jest błąd? Z tego co ja wyczytuję po stacktrace, kompilator wadliwie skompilował plugin, wyrzucając niedostępny kod.

Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/#findComment-241522
Udostępnij na innych stronach

  • 0

teraz nie wiem, wcześniej błąd był w miejscu if(socialspyPlayers.contins(p)) (22 i 32 linijka)

 

Dzięki za pomoc, już wszystko działa jak powinno. ;)

Edytowane przez Virosel
Nieaktywny

Łączę posty.

Odnośnik do komentarza
https://skript.pl/temat/38189-lista-graczy-plugin-na-prywatne-wiadomosci/#findComment-241526
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...