Skocz do zawartości
  • 0

Could not pass event PlayerJoinEvent to HypixelPunishment 1.0


Pytanie

Pomoże ktoś?

Konsola:

[10:36:21 ERROR]: Could not pass event PlayerJoinEvent to HypixelPunishment v1.0

org.bukkit.event.EventException: null

at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[server.jar:git-Bukkit-45c8386]

at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Bukkit-45c8386]

at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [server.jar:git-Bukkit-45c8386]

at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.PlayerList.onPlayerJoin(PlayerList.java:330) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.PlayerList.a(PlayerList.java:151) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.LoginListener.b(LoginListener.java:131) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.LoginListener.e(LoginListener.java:57) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:224) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.ServerConnection.c(SourceFile:187) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:768) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:371) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:651) [server.jar:git-Bukkit-45c8386]

at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:555) [server.jar:git-Bukkit-45c8386]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]

Caused by: java.lang.IllegalArgumentException: Cannot set to an empty path

at org.apache.commons.lang.Validate.notEmpty(Validate.java:321) ~[server.jar:git-Bukkit-45c8386]

at org.bukkit.configuration.MemorySection.set(MemorySection.java:167) ~[server.jar:git-Bukkit-45c8386]

at org.bukkit.configuration.MemorySection.set(MemorySection.java:201) ~[server.jar:git-Bukkit-45c8386]

at dev.Trolek_Bartu.HypixelPunishment.events.JoinLeaveEvent.onJoin(JoinLeaveEvent.java:68) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]

at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:296) ~[server.jar:git-Bukkit-45c8386]

... 14 more

 

 

A tu klasa w pluginie:

package dev.Trolek_Bartu.HypixelPunishment.events;

import dev.Trolek_Bartu.HypixelPunishment.Main;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class JoinLeaveEvent implements Listener {
      @EventHandler
      public void onLeave(PlayerQuitEvent event) {
        String uuid = event.getPlayer().getUniqueId().toString();
        File playerfile = new File(((Main)Main.getPlugin(Main.class)).getDataFolder() + File.separator, "kary.yml");
        YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(playerfile);
        if (yamlConfiguration.contains(uuid) && 
          yamlConfiguration.getBoolean(String.valueOf(uuid) + ".ban.zbanowany"))
          event.setQuitMessage(null); 
      }
      
      @EventHandler
      public void onJoin(PlayerJoinEvent event) {
        File playerfile = new File(((Main)Main.getPlugin(Main.class)).getDataFolder() + File.separator, "kary.yml");
        YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(playerfile);
        String uuid = event.getPlayer().getUniqueId().toString();
        long unixTime = System.currentTimeMillis() / 1000L;
        if (yamlConfiguration.contains(uuid) && 
          yamlConfiguration.getBoolean(String.valueOf(uuid) + ".ban.zbanowany")) {
          if (yamlConfiguration.getInt(String.valueOf(uuid) + ".ban.dlugosc") <= unixTime && yamlConfiguration.getInt(String.valueOf(uuid) + ".ban.length") != -1)
            try {
              yamlConfiguration.set(String.valueOf(uuid) + ".ban.zbanowany", Boolean.valueOf(false));
              yamlConfiguration.set(String.valueOf(uuid) + ".ban.powod", "");
              yamlConfiguration.set(String.valueOf(uuid) + ".ban.dlugosc", Integer.valueOf(0));
              yamlConfiguration.set(String.valueOf(uuid) + ".ban.id", "");
              yamlConfiguration.save(playerfile);
            } catch (IOException exception) {
              exception.printStackTrace();
        }  
      event.setJoinMessage(null);
      if (yamlConfiguration.getInt(String.valueOf(uuid) + ".ban.dlugosc") == -1) {
        event.getPlayer().kickPlayer(
            "§cZostałeś zbanowany pernamentnie na tym serwerze!\n\n§7Powód: §f" + 
            yamlConfiguration.getString(String.valueOf(uuid) + ".ban.powod") + "\n" + 
            "§7Więcej znajdziesz na: §b§n"+ ((Main)Main.getPlugin(Main.class)).getConfig().getString("bandomain") + "\n\n" + 
            "§7ID bana: §f#"+ yamlConfiguration.getString(String.valueOf(uuid) + ".ban.id") + "\n" + 
            "§7Podaj swoje Id bana, żeby była możliwość rozpatrzenia twojego bana!");
      } else {
        if (yamlConfiguration.getInt(String.valueOf(uuid) + ".ban.dlugosc") == 0)
          return; 
        event.getPlayer().kickPlayer(
            "Zostałeś tymczasowo zbanowany na tym serwerze, unbana dostaniesz: §f"+ calculateTime(yamlConfiguration.getInt(String.valueOf(uuid) + ".ban.dlugosc") - unixTime) + "§c!\n\n" + 
            "§7Powód: §f " + yamlConfiguration.getString(String.valueOf(uuid) + ".ban.reason") + "\n" + 
            "§7Więcej znajdziesz na: §b§n"+ ((Main)Main.getPlugin(Main.class)).getConfig().getString("bandomain") + "\n\n" + 
            "§7ID bana: §f"+ yamlConfiguration.getString(String.valueOf(uuid) + ".ban.id") + "\n" + 
            "§7Podaj swoje Id bana, żeby była możliwość rozpatrzenia twojego bana!");
      } 
    } 
    if (!yamlConfiguration.contains(uuid))
      try {
        yamlConfiguration.createSection(uuid);
        yamlConfiguration.set(String.valueOf(uuid) + ".nazwa", event.getPlayer().getName());
        yamlConfiguration.createSection(String.valueOf(uuid) + ".ban");
        yamlConfiguration.createSection(String.valueOf(uuid) + ".mute");
        yamlConfiguration.set(String.valueOf(uuid) + ".ban.zbanowany", Boolean.valueOf(false));
        yamlConfiguration.set(String.valueOf(uuid) + ".ban.powod.", "");
        yamlConfiguration.set(String.valueOf(uuid) + ".ban.dlugosc", Integer.valueOf(0));
        yamlConfiguration.set(String.valueOf(uuid) + ".ban.id", "");
        yamlConfiguration.set(String.valueOf(uuid) + ".mute.wyciszony", Boolean.valueOf(false));
        yamlConfiguration.set(String.valueOf(uuid) + ".mute.powod", "");
        yamlConfiguration.set(String.valueOf(uuid) + ".mute.dlugosc", Integer.valueOf(0));
        yamlConfiguration.set(String.valueOf(uuid) + ".mute.id", "");
        yamlConfiguration.save(playerfile);
      } catch (IOException exception) {
        exception.printStackTrace();
      }  
  }
  
  public static String calculateTime(long seconds) {
    int days = (int)TimeUnit.SECONDS.toDays(seconds);
    long hours = TimeUnit.SECONDS.toHours(seconds) - (days * 24);
    long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toHours(seconds) * 60L;
    long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.SECONDS.toMinutes(seconds) * 60L;
    String time = (" " + days + "d " + hours + "h " + minute + "m " + second + "s").toString()
      .replace(" 0d", "")
      .replace(" 0h", "")
      .replace(" 0m", "")
      .replace(" 0s", "")
      .replaceFirst(" ", "");
    return time;
  }
}

 

Glicz

Wstawiam kod i błędy w code.

Notatka dodana przez Glicz

Odnośnik do komentarza
https://skript.pl/temat/48702-could-not-pass-event-playerjoinevent-to-hypixelpunishment-10/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Gość Usunięty#25876
13 minut temu, BrainNotFound napisał:

yamlConfiguration.set(String.valueOf(uuid) + ".ban.powod.", "");

Analogicznie patrząc po innych przykładach mogę zgadywać że chodzi o tę kropkę na końcu stringa przez co nie może znaleźć takiej ścieżki, lecz nie mam pewności czy to na pewno to, bo nie widziałem jak ten plik .yml jest skonstruowany. Swoją drogą polecam przypisać to String.valueOf(uuid) do jakiejś zmiennej uuid przez co kod byłby znacznie krótszy i bardziej przejrzysty.

Odnośnik do komentarza
https://skript.pl/temat/48702-could-not-pass-event-playerjoinevent-to-hypixelpunishment-10/#findComment-303488
Udostępnij na innych stronach

  • 0
Teraz, zrdzn napisał:

Analogicznie patrząc po innych przykładach mogę zgadywać że chodzi o tę kropkę na końcu stringa przez co nie może znaleźć takiej ścieżki, lecz nie mam pewności czy to na pewno to, bo nie widziałem jak ten plik .yml jest skonstruowany.

Okej, to spróbuje. Wrócę za 10 min

Odnośnik do komentarza
https://skript.pl/temat/48702-could-not-pass-event-playerjoinevent-to-hypixelpunishment-10/#findComment-303489
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ę...