Willkommen beim MinecraftForum, wir hoffen euch gefällt es bei uns :)

mik3_1802

User
  • Gesamte Inhalte

    18
  • Benutzer seit

  • Letzter Besuch

Ansehen in der Community

0 Noch unbekannt

Über mik3_1802

  • Rang
    Holzfäller

Profil Information

  • Geschlecht
    Männlich

Minecraft Information

  • Minecraft
    mik3_1802
  1. Das ist schade.. Ich hab mir jetzt ein eigenes kleines Permissions System geschrieben für meine Plugins. Funktioniert und das reicht mir so Problem gelöst MfG Mike
  2. Heey Leute Ich will die permissions.yml im Hauptverzeichnis nutzen. Ich weiß auch wie ich diese auslese, aber ich finde nichts dazu wie ich Werte ändere, einen Spieler hinzufügen/löschen, dem Spieler eine Permission geben, die Gruppe ändern kann. Und ich finde einfach mal nichts dazu im Internet. Nur dazu wie man die mit anderen Plugins wie PermissionsEx usw verwendet. Aber nichts dazu wie man die mit eigenen Plugins bzw der Spigot API verändern kann.. Weiß da jemand von euch weiter oder kennt eine Seite im Internet dazu die ich vielleicht noch nicht gefunden habe? Danke im Voraus für Antworten! MfG Mike
  3. Soo hier wie ich das gelöst habe: Das hier kommt an den Anfang der Klasse, das die Werte immer abgerufen werden können public double positx; public double posity; public double positz; public String schildname; public String schildart; public Sign sign; Hier das Event wenn ein Schild erstellt wird @EventHandler public void onSignChange(SignChangeEvent e) { sign = (Sign)e.getBlock().getState(); } Dann habe ich es hier etwas abgeändert, und zwar muss ich einen Befehl eingeben um das Schild zu erstellen Das passiert natürlich in einer onCommand Methode // Wenn der Befehl /signcreate <start|ziel> <schildname> ausgeführt wird if (label.equalsIgnoreCase("signcreate")) { Player player = (Player) sender; String username = player.getName(); String welt = player.getWorld().getName(); if (args.length == 2) { schildart = args[0]; schildname = args[1]; if (schildart.equalsIgnoreCase("ziel")) { // Position des zuvor erstellten Schildes ermitteln Location loc = sign.getLocation(); // Und dann an die Methode signUpdater() weitergeben signUpdater(loc); return true; } else if (schildart.equalsIgnoreCase("start")) { if (schildname == "") { player.sendMessage("§cDu musst einen Schildnamen in der dritten Reihe angeben!"); } else { player.sendMessage("§aDein Schild §9" + schildname + " §awurde erstellt!"); Location loc = sign.getLocation(); signUpdater(loc); return true; } } } } Und das hier ist die Methode signUpdater() public void signUpdater (Location loc) { World w = loc.getWorld(); Block a = w.getBlockAt(loc); if (a.getType() == Material.SIGN_POST || a.getType() == Material.WALL_SIGN) { Sign sign = (Sign) a.getState(); sign.setLine(0, "§a[Teleport]"); sign.setLine(1, schildart); sign.setLine(2, schildname); sign.update(true); } } Ich hoffe ich konnte jemandem helfen der auf das selbe Problem stößt, bzw wie ich nicht wusste das man ein Schild nicht in dem SignChangeEvent bearbeiten kann
  4. Danke für die Antwort Ja das habe ich mir abgeschaut, dachte es wäre richtig so. Aber gibt schon Sinn was du schreibst. Ich probier das jetzt mal aus und melde mich dann mit dem Ergebnis
  5. Hey Leute Ich bin gerade dabei ein kleines Plugin zum teleportieren zu schreiben. Die erste Funktion, den Spieler an irgendeinen zufällige Stelle der Map zu teleportieren klappt wunderbar. Jetzt will ich Schilder erstellen können, ein Schild als Start, und ein Schild als Ziel. Zum teleportieren also. Nur wenn ich ein Schild erstelle, bekomme ich direkt den Fehler in der Konsole: [17:39:32 ERROR]: Could not pass event SignChangeEvent to Teleport v1.0.3 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.jar:git-Spigot-7228328-af1c013] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.jar:git-Spigot-7228328-af1c013] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:2187) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.PacketPlayInUpdateSign.a(SourceFile:44) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.PacketPlayInUpdateSign.a(SourceFile:10) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_112] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_112] at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:747) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.12.jar:git-Spigot-7228328-af1c013] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112] Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_12_R1.block.CraftBlock cannot be cast to org.bukkit.block.Sign at tlprt.teleport.Main.onSignCreate(Main.java:82) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.jar:git-Spigot-7228328-af1c013] ... 15 more Ich weiß nicht woran das liegt... Also ja natürlich an dem SignChangeEvent, aber wodurch genau er da ausgelöst wird weiß ich leider nichts. Hier ist noch die Stelle die den Fehler verursacht: // Wenn ein Schild erstellt wird @EventHandler public void onSignCreate (SignChangeEvent e) { // Daten vom Schild holen Sign s = (Sign)e.getBlock(); Location sloc = e.getBlock().getLocation(); String[] lines = s.getLines(); Player player = (Player) e; String playername = player.getName(); // Überprüfen ob in der ersten Zeile [Teleport] steht if (lines.length == 2 && lines[0].equalsIgnoreCase("[Teleport]")) { // Wenn in der zweiten Zeile ziel steht if (lines[1].equalsIgnoreCase("ziel")) { // Die Koordinaten des Schildes speichern int posx = sloc.getBlockX(); int posy = sloc.getBlockY(); int posz = sloc.getBlockZ(); String signname = lines[2]; // Wenn in der dritten Zeile kein Schildname steht if (signname == null) { // Spieler benachrichtigen und Schild auf Rot stellen player.sendMessage("§cDu musst einen Schildnamen in der dritten Reihe angeben!"); e.setLine(0, "§c[Teleport]"); } else { // Wenn ein Schildname angegeben wurde, Schildname und Koordinaten in der config speichern e.setLine(0, "§1[Teleport]"); Main.cfg.set("Signs." + playername + "." + signname + ".X", posx); Main.cfg.set("Signs." + playername + "." + signname + ".Y", posy); Main.cfg.set("Signs." + playername + "." + signname + ".Z", posz); this.getConfig().options().copyDefaults(true); this.saveConfig(); } // Wenn start in der zweiten Zeile steht } else if (lines[1].equalsIgnoreCase("start")) { String ziel = lines[2]; // Versuchen Wert X aus der Config zu laden String exist = Main.cfg.getString("Signs." + playername + "." + ziel + ".X"); // Wenn der Wert X nicht null ist if (exist == null) { // Spieler benachrichtigen und Schild auf Rot stellen player.sendMessage("Das Ziel existiert nichts!"); e.setLine(0, "§c[Teleport]"); } else { } // Wenn kein Start oder Ziel angegeben wurde } else { player.sendMessage("§cDu musst in der zweiten Zeile start/ziel angeben"); } } } Ich hoffe das mir jemand weiterhelfen kann. Danke im Voraus für Antworten!
  6. Stimmt. Ja ich hab viel mit Google geschaut, aber da wird nie so richtig auf die Materie eingegangen.. Und ja das mit Java sollte ich echt mal machen Hab mich früher immer wieder mal dran versucht aber dann keine Lust mehr gehabt, weil es dann an irgendwas hing. Aber jetzt bin ich ja etwas älter und das Verständnis ist besser, deswegen will ich mich da wieder dran versuchen Also Danke dir nochmal für die Hilfe!
  7. Wow es klappt Super Danke!! Die Map sieht jetzt schon ganz verrückt aus mit den Spuren in der Luft haha Nur nochmal zum Verständnis: Zwei Events im Konstruktor ist ein Nogo? Und noch eine Frage: Kennst du eine gute Tutorial-Reihe oder sowas dass die Spigot API und Java gut erklärt? Weil mit der Javadoc komme ich irgendwie nicht zurecht bzw weiß nicht wie ich die richtig verstehen soll..
  8. So lange ich einen Stick oder Papier in der Haupt-Hand halte
  9. Das ist die Frage Wenn ich es im PlayerInteract mache, wird dass dann so lange ausgeführt wie ich dieses Item in der Hand habe, oder nur wenn ich auf das Item wechsle? Oder muss ich es dann doch eher im PayerMove machen, dass dann immer wenn ich mich bewege überprüft wird ob das Item in der Hand ist und das der Block dann erstellt wird?
  10. Hab gedacht das passt so. Wie gesagt weiß ich noch nicht wie ich das ganze richtig anwende. Ich finde viele Tutorials dazu, aber nur mit Code Beispiel. Ohne das wirklich erklärt wird, was das jetzt genau macht und wieso.. Mir ist eben doch was aufgefallen in der Konsole: [13:40:20 ERROR]: [Testplugin] Testplugin v1.0.3 attempted to register an invalid EventHandler method signature "public void test.testplugin.Listeners.onPlayerMove(org.bukkit.event.player.PlayerMoveEvent,org.bukkit.event.player.PlayerInteractEvent)" in class test.testplugin.Listeners
  11. Danke für die schnelle Antwort Nein in der Konsole passiert nichts, außer der Ausgabe dass das Plugin funktioniert, die ja in onEnable ausgeführt wird. Also es passiert einfach nichts. Kein Fehler, keine Meldung oder sonst was.
  12. Hey Leute Ich bin gerade dabei mich mit der Programmierung von Bukkit/Spigot Plugins auseinanderzusetzen. Ich benutze die Spigot API und Eclipse als Entwicklungsumgebung. Ich habe dieses Tutorial gefunden mit einem kleinen Code um Blöcke zu verändern. Hatte dann aus Spaß die Idee das immer unter dem Spieler ein Block erstellt wird, das man quasi einfach nach oben in die Luft laufen kann, was auch Super funktioniert. Ich weiß hat keinen Sinn Aber ich lerne eher durchs tun, als nur durchs lesen. Jetzt stört es mich aber das ich nicht mehr runter kann, da ja immer direkt unter dem Spieler der Block erstellt wird. Daher will ich das so machen, dass solange man ein Blatt in der Hand hält, der Block immer zwei Blöcke unter einem platziert wird, und wenn man einen Stick in der Hand hält, direkt unter einem. Ich benutze die Version 1.11.1 Vom Code her dürfte es (meiner Meinung nach ) klappen. Verstehe nur die API noch nicht so gut. Das Javadoc hilft mir da auch nicht weiter, bzw bin ich zu unfähig und weiß nicht wie ich das alles verstehen soll. Hab die Letzte Zeit fast nur mit PHP gearbeitet. Also hier ist erstmal die Listener Klasse in der die Methode steht. (Die Listener Klasse wird in der Main Klasse aus der onEnable Methode gestartet): package test.testplugin; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.inventory.ItemStack; public class Listeners implements Listener{ @EventHandler public void onPlayerMove(PlayerMoveEvent event, PlayerInteractEvent e) { Player player = e.getPlayer(); ItemStack item = player.getInventory().getItemInMainHand(); if (item.getType() == Material.PAPER) { Location loc = event.getPlayer().getLocation(); loc.setY(loc.getY() - 2); Block b = loc.getBlock(); b.setType(Material.GLASS); } else if (item.getType() == Material.STICK) { Location loc = event.getPlayer().getLocation(); loc.setY(loc.getY() - 1); Block b = loc.getBlock(); b.setType(Material.GLASS); } } } Also die Klasse und Methode funktioniert problemlos ohne die Abfrage welcher Block in der Hand ist. Aber sobald ich die Abfrage mache passiert nichts mehr. Was hab ich falsch gemacht? Was kann ich besser machen? Und könnte mit bitte jemand erklären wie ich die Javadoc verstehen und richtig anwende kann? Edit: Kann es sein das ich für das überprüfen des Items irgendwie eine eigene Methode machen muss? Vielen Dank im Voraus für Antworten!
  13. Hallo Leute, ich hab mir heute die Mod Custom NPCs (1.11.0.beta(03dec16)) und Optifine (HD_U_B8) installiert. Als ModLoader benutze ich Forge (13.19.1.2199). Nun zu meinem Problem, dass entweder nach einer Zeit ganz zufällig bei einer Aktion (Zum Beispiel das Handelsfenster eines NPCs schließen), oder wenn ich bei einem NPC im Handelsfenster auf ein "Produkt" klicke, wofür ich nicht genug Items habe um es zu bezahlen, stürzt das Spiel einfach mit dieser Meldung ab. Ich weiß nicht was ich machen soll... Eine paar Google-Suchen haben ergeben das ich meine Renderdistanz runterregeln soll, was leider nichts gebracht hat. Hab Minecraft jetzt auch 4096MB RAM zugewiesen, bringt auch nichts. Ich kopiere einfach mal die beiden Logs hier rein und hoffe, das mir jemand dabei helfen kann... ...logs\latest.log Und hier noch der Crash-Log ...\crash-reports\crash-201-7-06-16_21.13.32-client.txt Also Danke im Voraus für hilfreiche Antworten!
  14. Heey, ich hab ein "kleines" Problemchen... Mein Minecraft startet seit heute gar nicht mehr. Im Launcher steht nur das Minecraft abgestürzt ist und sonst nichts. Wenn ich das Ausgabeprotokoll laufen lasse kommt das dabei raus: 2357 debugs10 infos 21:51:08 launcher Preparing to launch minecraft client for 1.8.9 21:51:09 launcher Checking installations. 21:51:09 launcher Minecraft client 1.8.9 is ready to start. 21:51:09 launcher Starting! 21:51:09 launcher Using default game log configuration client-1.7.xml (outputs XML) 21:51:11 ave Setting user: mik3_1802 21:51:11 ave (Session ID is token:60ee4e5fb3074f92a88bb09a29ba9ea6:fca7c79fd4674d01a02c79ea461a84aa) 21:51:14 ave LWJGL Version: 2.9.4 21:51:17 launcher Process closed with exit code -1073740791 21:51:17 launcher Und im Log aus dem Minecraft Ordner steht das drinnen: [21:35:53] [Client thread/INFO]: Setting user: mik3_1802 [21:35:53] [Client thread/INFO]: (Session ID is token:60ee4e5fb3074f92a88bb09a29ba9ea6:fca7c79fd4674d01a02c79ea461a84aa) [21:35:54] [Client thread/INFO]: LWJGL Version: 2.9.4 Was ist dieses LWJGL? Hängt der Absturz damit zusammen? Wenn ja wie kann ich das beheben? Und könnte mir bitte einer verraten wie ich diese nervigen Schneeflocken hier auf dem Forum abstellen kann? Jeder andere Tab läuft top, nur dieser hier verbraucht alleine schon 400MB vom RAM... Die Schneeflocken laufen flüssig, aber wenn ich was schreibe sehe ich das erst alle 10 Sekunden... Vielen Dank im Voraus für jede hilfreiche Antwort!