Minecraft Event Plugin

T

TaMoBiDa

Mitglied
Hallo! Ich habe ein Problem mit meinem Plugin. Ich habe ein Plugin gemacht, mit dem man einen Warp machen/löschen/tpn kann mit folgenden Befehlen:

/tevent (Event)
/tsetevent (Event)
/tdelevent (Event)
(Event = Warp)


Nun hab ich aber das Problem, dass mir nur /tdelevent in Minecraft angezeigt wird.
1585250542407.png


Laut Console scheint es etwas in Main zu sein:
1585250591944.png


Aber ich verstehe nicht was ich in Main bei /tdelevent anders gemacht habe als bei den anderen..

Hier sind meine Quellcodes für alle Dateien die im Plugin sind:

EventFunction:
Java:
package EventFunc;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

public class EventFunction{
    public static String speicherort = "plugins/TaMoBiDa's Events/Events";
    
    public static void CheckOrdner() {
        File file = new File("speicherort");
        if(file.isDirectory()==false)file.mkdirs();
    }

    public static void SetTEvent (Player p, String EventName) throws IOException{
        File file = new File("plugins/TaMoBiDa's Events/Events", EventName.toLowerCase()+".yml");
        EventFunction.CheckOrdner();
        if(!file.exists()) {
            
            file.createNewFile();
            FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
            cfg.set("Location.X", p.getLocation().getX());
            cfg.set("Location.Y", p.getLocation().getY());
            cfg.set("Location.Z", p.getLocation().getZ());
            cfg.set("Location.Yaw", p.getLocation().getYaw());
            cfg.set("Location.Pitch", p.getLocation().getPitch());
            cfg.set("Location.World", p.getWorld().getName());
            cfg.save(file);
            
        }else {
            p.sendMessage("§4Fehler: §cDieses Event existiert bereits!");
            return;
        }

    }
    
    public static void DelTEvent (Player p, String EventName){
        File file = new File("plugins/TaMoBiDa's Events/Events", EventName.toLowerCase()+".yml");
        if(!file.exists()) {
            file.delete();
        }
        p.sendMessage("§4Fehler: §cDieses Event existiert nicht!");
    }
    
    public static void TEvent (Player p, String EventName){
        File file = new File("plugins/TaMoBiDa's Events/Events", EventName.toLowerCase()+".yml");
        if(!file.exists()) {
            p.sendMessage("§4Fehler: §cDieses Event existiert nicht!");
            
        }
        FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);   
        double x = cfg.getDouble("Location.X");
        double y = cfg.getDouble("Location.Y");
        double z = cfg.getDouble("Location.Z");
        float yaw = (float) cfg.getDouble("Location.Yaw");
        float pitch = (float) cfg.getDouble("Location.Ptch");
        String worldname = cfg.getString("Location.World");
        
        Location loc = p.getLocation();
        loc.setX(x);
        loc.setX(y);
        loc.setX(z);
        loc.setX(yaw);
        loc.setX(pitch);
        loc.setWorld(Bukkit.getWorld(worldname));
        
        p.teleport(loc);
        p.sendMessage("$6Du hast dich zu dem Event §c"+ EventName + "$6teleportiert!");
        
    }
    
}

EventCommands
Java:
package EventCom;

import java.io.IOException;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;

import EventFunc.EventFunction;

public class EventCommands implements CommandExecutor{

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        
        
        if(sender instanceof ConsoleCommandSender){
            System.out.println("Dieser Befehl kann über die Console nicht ausgeführt werden!");
            return true;
        }
        Player p = (Player) sender;
        
        
        if(cmd.getName().equalsIgnoreCase("tevent")) {
            if(!p.hasPermission("TaMo.TEvent"));
                p.sendMessage("§4Fehler: $cKeine Berechtigung!");
                return true;
                
        }
            if(args.length == 0) {
                p.sendMessage("$cZu wenig Argumente!");
                return true;
            }
            if(args.length == 1) {
                EventFunction.TEvent(p, args[0]);
                return true;
                
            }
            
        
        if(cmd.getName().equalsIgnoreCase("settevent")) {
            if(!p.hasPermission("TaMo.setTEvent"));
            p.sendMessage("§4Fehler: $cKeine Berechtigung!");
            return true;
            
    }
        if(args.length == 0) {
            p.sendMessage("$cZu wenig Argumente!");
            return true;
        }
        if(args.length == 1) {
            try {
                EventFunction.SetTEvent(p, args[0]);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return true;
            
        }
            
        
        if(cmd.getName().equalsIgnoreCase("deltevent")) {
            if(!p.hasPermission("TaMo.delTEvent"));
            p.sendMessage("§4Fehler: $cKeine Berechtigung!");
            return true;
            
    }
        if(args.length == 0) {
            p.sendMessage("$cZu wenig Argumente!");
            return true;
        }
        if(args.length == 1) {
            EventFunction.DelTEvent(p, args[0]);
            return true;
            
        }
    
        
        
        return false;
    }

}


Main

Java:
package me.TaMoBiDa.TaMoBiDaEvents;

import org.bukkit.plugin.java.JavaPlugin;

import EventCom.EventCommands;

public class Main extends JavaPlugin{
    
    
    public void onEnable() {
        System.out.println("Plugin wurde erfolgreich aktiviert!");
        this.getCommand("tevent").setExecutor(new EventCommands());
        this.getCommand("settevent").setExecutor(new EventCommands());
        this.getCommand("deltevent").setExecutor(new EventCommands());
        
        
        
    }
    
    
    public void onDisable() {
        
        
        
        
    }
    
    

}

Plugin.yml

Java:
name: TaMoBiDaEvents
author: TaMoBiDa
version: 1.0
main: me.TaMoBiDa.TaMoBiDaEvents.Main

commands:
     tevent:
        description: Teleportiere dich zu einem Event-Punkt
        usage: /<command> (Event)

commands:
    settevent:
        description: Setze einen Event-Punkt
        usage: /<command> (Event)

commands:
     deltevent:
        description: Entferne einen Event-Punkt
        usage: /<command> (Event)





Bitte um Hilfe!!

Danke!
~Dominik
 
F

fhoffmann

Top Contributor
Ich kenne mich mit minecraft nicht aus und habe auch nicht deinen gesamten Code angeguckt.
Ich würde dir aber raten, einmal folgenden Code einzubauen, um den Fehler einzugrenzen:

Java:
    public void onEnable() {
        System.out.println("Plugin wurde erfolgreich aktiviert!");
        if (this.getCommand("tevent") == null) {
            System.out.println("getCommand(\"tevent\") == null");
        }
 
T

TaMoBiDa

Mitglied
Ich kenne mich mit minecraft nicht aus und habe auch nicht deinen gesamten Code angeguckt.
Ich würde dir aber raten, einmal folgenden Code einzubauen, um den Fehler einzugrenzen:

Java:
    public void onEnable() {
        System.out.println("Plugin wurde erfolgreich aktiviert!");
        if (this.getCommand("tevent") == null) {
            System.out.println("getCommand(\"tevent\") == null");
        }
Hey!
Danke für die Antwort, ich habe den Code eingebaut und bekomme nun folgende Meldung in der Console:
1585253536924.png

1585253561597.png
 
kneitzel

kneitzel

Top Contributor
Also ich kenne mich auch nicht wirklich aus, aber deine Plugins.yml ist nicht korrekt wenn es nach der Dokumentation geht.

Du hast nur ein "commands:" und nicht mehrere:
Code:
commands:
     tevent:
        description: Teleportiere dich zu einem Event-Punkt
        usage: /<command> (Event)
    settevent:
        description: Setze einen Event-Punkt
        usage: /<command> (Event)
     deltevent:
        description: Entferne einen Event-Punkt
        usage: /<command> (Event)

So habe ich es zumindest auf einer Webseite zu einem Minecraft plugin gefunden.
 
T

TaMoBiDa

Mitglied
Also ich kenne mich auch nicht wirklich aus, aber deine Plugins.yml ist nicht korrekt wenn es nach der Dokumentation geht.

Du hast nur ein "commands:" und nicht mehrere:
Code:
commands:
     tevent:
        description: Teleportiere dich zu einem Event-Punkt
        usage: /<command> (Event)
    settevent:
        description: Setze einen Event-Punkt
        usage: /<command> (Event)
     deltevent:
        description: Entferne einen Event-Punkt
        usage: /<command> (Event)

So habe ich es zumindest auf einer Webseite zu einem Minecraft plugin gefunden.
Danke für den Tipp!
Ich werde mir das nacher gleich mal anschauen!
 
T

TaMoBiDa

Mitglied
Also ich kenne mich auch nicht wirklich aus, aber deine Plugins.yml ist nicht korrekt wenn es nach der Dokumentation geht.

Du hast nur ein "commands:" und nicht mehrere:
Code:
commands:
     tevent:
        description: Teleportiere dich zu einem Event-Punkt
        usage: /<command> (Event)
    settevent:
        description: Setze einen Event-Punkt
        usage: /<command> (Event)
     deltevent:
        description: Entferne einen Event-Punkt
        usage: /<command> (Event)

So habe ich es zumindest auf einer Webseite zu einem Minecraft plugin gefunden.
Ich hab nachgeschaut, das passt so wie ich das habe, ich habe mir einige Plugin Codes angeschaut, und dort ist es überall so :/

Trotzdem Danke!
 
kneitzel

kneitzel

Top Contributor
Wo hast Du nachgeschaut? Hast Du es wenigstens ausprobiert?

a) Von der Logik her heisst es "commands" und nicht "command" - also ist das die Angabe für die Befehle.
b) Wenn man sich das offizielle Beispiel des Sample Plugins von Bukkit anschaut, dann ist es da auch so: https://github.com/Bukkit/SamplePlugin/blob/master/src/main/resources/plugin.yml
c) Du hast bei den anderen Befehlen es ja im Code ebenso gemacht wie bei dem Befehl, der funktioniert. Das deutet auch darauf hin, dass es an der Beschreibungsdatei liegen müsste ...

Aber ich bin damit auch raus - ich werde mir hier kein Minecraft-Server aufsetzen nur um dies zu testen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Minecraft "Griefergames" CobbleBot Spiele- und Multimedia-Programmierung 1
N Musikplayer in Minecraft Spiele- und Multimedia-Programmierung 0
G Minecraft PlayerBot (Listener Thread für jeden Spieler?) Spiele- und Multimedia-Programmierung 3
F Spigot 1.14 Minecraft Welt file löschen Spiele- und Multimedia-Programmierung 6
M Minecraft Spigot Plugin kompilieren Spiele- und Multimedia-Programmierung 4
N Minecraft Spigot-Plugin | Schusswaffe programmieren Spiele- und Multimedia-Programmierung 3
I Minecraft Support Bot Mod Spiele- und Multimedia-Programmierung 8
L wo sehe ich die Range und die Hitbox im Minecraft Sourcecode? Spiele- und Multimedia-Programmierung 2
M Minecraft Spieler move/run (bewegen) Spiele- und Multimedia-Programmierung 0
M Minecraft neue setDirection() (Blickrichtung) setzten Spiele- und Multimedia-Programmierung 5
Z Minecraft Multiplayer geht nicht Spiele- und Multimedia-Programmierung 2
A Minecraft Withdraw und Deposit Spiele- und Multimedia-Programmierung 1
A Minecraft Plugin, welches nur bestimmten Block zum bebauen festlegt Spiele- und Multimedia-Programmierung 26
L Minecraft 1.7.10 Server startet nicht Spiele- und Multimedia-Programmierung 1
B Minecraft Scoreboard Spiele- und Multimedia-Programmierung 3
B Programmieren wie der Befehl /ban in Minecraft geblockt wird aber nicht /ban mit einem Argument Spiele- und Multimedia-Programmierung 1
C [Minecraft] Launcher Spiele- und Multimedia-Programmierung 14
J Minecraft Coding BlockBreakEvent Spiele- und Multimedia-Programmierung 2
KeexZDeveoper Launcher (Minecraft) Spiele- und Multimedia-Programmierung 1
C Minecraft Coding Spiele- und Multimedia-Programmierung 8
C Minecraft Coding Spiele- und Multimedia-Programmierung 5
I Minecraft Plugin: Auf Spielerantwort warten Spiele- und Multimedia-Programmierung 1
I Minecraft: Craftingrecipe für Braustand ändern Spiele- und Multimedia-Programmierung 9
DanielsLPecke Minecraft Bukkit Scheduler. ALLGEMEIN. Spiele- und Multimedia-Programmierung 1
K Minecraft-Forge Mod Programmierung Spiele- und Multimedia-Programmierung 1
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
C Minecraft Plugin 'Ancient Gates' Spiele- und Multimedia-Programmierung 0
C +++Minecraft Plug-In Programmierer gesucht+++ Spiele- und Multimedia-Programmierung 3
L Minecraft - BungeePerms Spiele- und Multimedia-Programmierung 1
F Minecraft Bot Mouse Inputs Spiele- und Multimedia-Programmierung 3
lord239123 Minecraft Nur sichtbare Objekte rendern Spiele- und Multimedia-Programmierung 5
T Minecraft Bukkit Plugin Text Datei auslesen Spiele- und Multimedia-Programmierung 1
A Minecraft Plugin Teleport Fehler Spiele- und Multimedia-Programmierung 1
B Minecraft mehr Ram zuweißen Problem Spiele- und Multimedia-Programmierung 0
H [Minecraft] Eclipse Spiele- und Multimedia-Programmierung 3
F Minecraft Bukkit Plugin - Inventory wiederherstellung? Spiele- und Multimedia-Programmierung 2
M Minecraft Bukkit Programmierung Spiele- und Multimedia-Programmierung 3
B Hilfe bei Minecraft Plugin Spiele- und Multimedia-Programmierung 3
M Minecraft Bukkit Server VM Kann nicht Vergrößert werden Spiele- und Multimedia-Programmierung 20
Doopy Minecraft Launcher modden Spiele- und Multimedia-Programmierung 15
K 3D Game wie Minecraft Spiele- und Multimedia-Programmierung 3
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
H Change color on button event Spiele- und Multimedia-Programmierung 2
J In einer While-Schleife auf Event warten Spiele- und Multimedia-Programmierung 3
T Eigenes Event System Spiele- und Multimedia-Programmierung 17
P probleme mit key event Spiele- und Multimedia-Programmierung 11
eQui Problem mit Mouse Event Spiele- und Multimedia-Programmierung 3
G shop Plugin Spiele- und Multimedia-Programmierung 2
U Spigot-Plugin Spiele- und Multimedia-Programmierung 5
C Plugin Problem Spiele- und Multimedia-Programmierung 2
T Hilfe bei decompilen von Plugin Spiele- und Multimedia-Programmierung 6
C Plugin Coding MAIN Spiele- und Multimedia-Programmierung 4
C Spigot Plugin Spiele- und Multimedia-Programmierung 3
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
K Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 3
F Plugin Spracheinstellungen und Auslesen von Strings Spiele- und Multimedia-Programmierung 7
M Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 22
C Wo ist der MP3 Plugin für JMF? Spiele- und Multimedia-Programmierung 3
L Prüfen, ob mp3-plugin vorhanden Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben