• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Jobs Plugin

Calib0ur

Kuhfänger
Gesperrt
Registriert
16 November 2013
Beiträge
72
Diamanten
0
Minecraft
CubeyHD
Hey,
Ich hatte vor ein Jobs Plugin zu programmieren...
Erstmal zwei Jobs einmal Fischer und einmal Miner.
So jetzt zu den eigentlichen Fragen...
1. Was ist hierdran falsch...?????
1.Fehler: Syntax error, insert "{" to complete Methode Body
2.Fehler: Syntax error, insert "}" to complete Methode Body,
Syntax error insert "else Statement" to complete BlockStatement
Syntax error insert "else Statement" to complete IfStatement

Code:
package cJobs;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Commands extends JavaPlugin { 
	public void onEnable() {
		System.out.println("[cJobs]Plugin gestartet");
			}
	public void onDisable() {
		System.out.println("[cJobs]Plugin gestoppt");
	} <-----1.Fehler Habe dahinter noch eine Klammer gemacht geht aber auch nicht

public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) { 

	Player p = (Player)sender;
	if (cmd.getName().equalsIgnoreCase("job liste")) {
		if(p.hasPermission("cjobs.liste")) {
			if (args.length == 0) {
				p.sendMessage("§2Fischer == /job starten Fischer");
				p.sendMessage("§2Miner   == /job starten Miner");

	if (cmd.getName().equalsIgnoreCase("job hilfe")) {
		if(p.hasPermission("cjobs.hilfe")) {
			if (args.length == 0) {
				p.sendMessage("§2/job starten [Job]");
				p.sendMessage("§2/job hilfe");
				p.sendMessage("§2/job liste");
	 if (cmd.getName().equalsIgnoreCase("/job starten")) {
		 if(p.hasPermission("cjobs.starten")) {
			 if (args.length == 0) {
				 p.sendMessage("§2Bitte mache /job starten [Job]");
				 
	if (cmd.getName().equalsIgnoreCase("/job")) {
		if(p.hasPermission("cjobs.job")) {
			if (args.length == 0) {
				p.sendMessage("§2Bitte mache /job hilfe für Hilfe");
				
	if (cmd.getName().equalsIgnoreCase("/job beenden Fischer")) {
		if(p.hasPermission("cjobs.beenden.fischer")) {
			if (args.length == 0) {
				p.sendMessage("§2Du hast deinen Job als Fischer beendet");
				
	if (cmd.getName().equalsIgnoreCase("/job beenden Miner")) {
		if(p.hasPermission("cjobs.beenden.miner")) {
			if (args.length == 0) {
				p.sendMessage("§2Du hast deinen Job als Miner beendet");
	
			}
		}
	}
			 }
		 }
	 }
			}
		}

	}
    		  } 
    		}
    		return true;
    	}
    	else {
    		return false;
    	}
    	}
		}
	}
			}
		}
	} <-----2.Fehler
2. Wie kriege ich es hin einen Job zu speichern das wenn jemand diese Befehle ausführt z.B. dem Job beitritt.
Mir wäre ein kleines Beispiel echt hilfreich
 
Zuletzt bearbeitet:

To_Bii

Minecrafter
Registriert
27 Januar 2014
Beiträge
14
Diamanten
0
Wichtig wäre die Angabe in welcher Zeile der Fehler auftritt, ich habe wenig Lust alles zu durchsuchen ;)! Sollte eigentlich darunterstehen oder wenn du eine Entwicklungsumgebung nutzt, steht das irgendwo rot unterstrichen!
Im Endeffekt fehlt dir bei Fehler 1 einmal { } mit nem else irgendwo halt ;)!
 

Pappi

Schafhirte
Gesperrt
Registriert
28 Oktober 2012
Beiträge
141
Alter
40
Diamanten
0
Minecraft
Pappi / PapaHarni
Probier es mal so aus :
Code:
package cJobs;

import java.util.logging.Level;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Commands extends JavaPlugin {
    public void onEnable() {
        this.getLogger().log(Level.INFO, "Plugin gestartet");
    }
    
    public void onDisable() {
        this.getLogger().log(Level.INFO, "Plugin beendet");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) { 

	Player p = (Player)sender;
	if (!cmd.getName().equalsIgnoreCase("job"))
            return false;
        
        if(args.length < 1) {
            p.sendMessage("Verwende /job (list/hilfe/starten/beenden)");
            return false;
        }
        
        switch(args[0].toLowerCase()) {
            case "liste":
                //Mach was hier
                break;
            case "hilfe":
                //Mach was hier
                break;
            case "starten":
                //Mach was hier
                break;
            case "beenden":
                //Mach was hier
                break;
            default:
                p.sendMessage("Verwende /job (list/hilfe/starten/beenden)");
                break;
        }
        return true;
    }
}

Wobei du den Befehl besser in eine extra Datei packst statt diesen in deiner Main Class laufen zu lassen. Ist einfach Ordentlicher.
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Mit "Mach was hier" ist das gemeint, was passieren soll, wenn das 1. Arguemnt des Befehles das Word nach "case" in der oberen Zeile ist.
Code:
case "liste":
//Hier der Code, der ausgeführt werden soll, wenn man als 1. Arguemnt "liste" benutzt
break;

Hier wird dem Spieler eine Nachricht gesendet, wenn das 1. Argument "liste" ist:
Code:
case "liste":
  p.sendMessage("Du hast als 1. Argument 'liste' benutzt");
break;
 

Calib0ur

Kuhfänger
Gesperrt
Registriert
16 November 2013
Beiträge
72
Diamanten
0
Minecraft
CubeyHD
Ok danke..
wie kann man wenn man ein plugin programmiert auf ein anderes plugin zugreifen
denn ich will ja wenn man /job starten Fischer macht das man pro Fisch geld auf sein IConomy konto bekommt
wäre nett wenn ihr mir sagt wie das geht! :D
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Es ist eher empfehlenswert, wenn du die API von Vault benutzt. Jedes Plugin, welches ein Economysystem benutzt, benutzt dafür Vault. Es ist also auf (fast) jedem Server, der solch ein System hat. IConomy ist nicht auf so vielen Servern. Daher solltest du die VaultAPI benutzen, wenn du das Plugin veröffentlichen willst. Ansonsten kannst du auch die IConomyAPI benutzen, wenn du sonst auch IConomy benutzt.
 

Calib0ur

Kuhfänger
Gesperrt
Registriert
16 November 2013
Beiträge
72
Diamanten
0
Minecraft
CubeyHD
Ich habe es jetzt mit dias versucht...
Hier der Code

package cJobs;

import java.util.logging.Level;

import org.apache.logging.log4j.core.net.Priority;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerFishEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class Kommandos extends JavaPlugin implements Listener{
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
this.getLogger().log(Level.INFO, "Plugin gestartet");
}

public void onDisable() {
this.getLogger().log(Level.INFO, "Plugin beendet");
}

public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {

Player p = (Player)sender;
if (!cmd.getName().equalsIgnoreCase("job"))
return false;

if(args.length < 1) {
p.sendMessage("§eVerwende /job (liste/hilfe/starten/beenden)");
return false;
}

switch(args[0].toLowerCase()) {
case "liste":
p.sendMessage("§eFischer <=> /job starten Fischer");
p.sendMessage("§eMiner <=> /job starten Miner ");
break;
case "hilfe":
//Mach was hier
break;
case "starten Fischer":
@EventHandler
public void onFish(PlayerFishEvent e) { // <----------------- Fehler
p.getInventory().addItem(new ItemStack (264, 1));
break;
}
case "starten Miner":
//madad
break;
case "beenden":
//Mach was hier
break;
default:
p.sendMessage("Verwende /job (list/hilfe/starten/beenden)");
break;
}
return true;
}
}
 
Oben