• 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!

Hilfe beim Programmieren nur kleine Frage!

MineForce

Schafhirte
Gesperrt
Registriert
17 Oktober 2012
Beiträge
122
Diamanten
0
Hallo, Liebe Community

Ich möchte:
Einen Ordner mit einer Klasse drin die folgendes kann:
In der Klasse sollen alle Befehle die es gibt drin sein mit ihren jeweiligen Dingen die sie können.
Nur was muss ich schreiben/programmieren das das funktioniert und von der Hauptklasse abgeleitet wird..

Vielen Dank vorraus:D

- - - Aktualisiert - - -

Hallo, Liebe Community

Ich möchte:
Einen Ordner mit einer Klasse drin die folgendes kann:
In der Klasse sollen alle Befehle die es gibt drin sein mit ihren jeweiligen Dingen die sie können.
Nur was muss ich schreiben/programmieren das das funktioniert und von der Hauptklasse abgeleitet wird..

Vielen Dank vorraus:D


PS: Kurz und Knapp ich möchte nicht alles in der Hauptklasse drin haben..
 

MrOAriO

Schafhirte
Registriert
6 Oktober 2012
Beiträge
135
Diamanten
0
Minecraft
OAriO
Hallo, Liebe Community

Ich möchte:
Einen Ordner mit einer Klasse drin die folgendes kann:
In der Klasse sollen alle Befehle die es gibt drin sein mit ihren jeweiligen Dingen die sie können.
Nur was muss ich schreiben/programmieren das das funktioniert und von der Hauptklasse abgeleitet wird..

Vielen Dank vorraus:D

- - - Aktualisiert - - -




PS: Kurz und Knapp ich möchte nicht alles in der Hauptklasse drin haben..

Mit einem CommandExecutor, bsp :
package me.oario.commands;

import me.oario.Data;
import me.oario.LobbySystem;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class spawn implements CommandExecutor {

LobbySystem plugin;

public spawn(LobbySystem instance) {
plugin = instance;
}

@Override
public boolean onCommand(CommandSender sender, org.bukkit.command.Command cmd, String label, String[] args) {
Player p = (Player) sender;
if (cmd.getName().equalsIgnoreCase("spawn")) {
p.teleport(Data.spawn);
p.sendMessage("§3[Lobby]§bDu wurdest zum Spawn Teleportiert !");
}
return false;
}
}

Und in die Main Klasse (OnEnable Methode) :

getCommand("spawn").setExecutor(new spawn(this));
 

MineForce

Schafhirte
Gesperrt
Registriert
17 Oktober 2012
Beiträge
122
Diamanten
0
Du verstehst das falsch!

Ich möchte folgendes:
- Ich trage etwas in der Hauptklasse ein.
- Dann erstelle ich in meinen Plugin einen neuen Ordner.
- Dorthinein eine Klasse.
- Und in diese Klasse kommen die Befehle rein und ihre Methoden der rest soll in den Hauptklassen sein.
 
C

Chrisliebaer

Guest
Du verstehst das falsch!

Ich möchte folgendes:
- Ich trage etwas in der Hauptklasse ein.
- Dann erstelle ich in meinen Plugin einen neuen Ordner.
- Dorthinein eine Klasse.
- Und in diese Klasse kommen die Befehle rein und ihre Methoden der rest soll in den Hauptklassen sein.

Du willst, dass du das, was die Befehle machen sollen einfach nachträglich ändern kannst, wenn die .jar Datei schongepackt ist? Das geht nicht. Dafür müsstest du den Code während der Laufzeit kompilieren.

Und ansonsten ist ein CommandExecutor genau das, was du willst.
 
C

ChunkNorris

Guest
Wenn ich das richtig verstehe, dann willst du sowas wie ein kleines CommandFramework. Am besten schreibst du dir eine Methode, die über Reflection die Klassen aus dem command-package holt und dann die Commands bei Bukkit registriert. Damit dein Framework weiß welche Befehle eine Klasse hat, kannst du zB. Annotations nutzen.
 

Jorre222

Minecrafter
Registriert
11 Juli 2013
Beiträge
22
Diamanten
0
Minecraft
Gambero77
Beispielcode

Main schrieb:
this.getCommand("Befehl").setExecutor(new Befehl());

Befehl.java schrieb:
public class Befehl implements CommandExecutor() {
public boolean onCommand(...) {
Was dein Befehl nun mal so machen soll.
}
}

So hier einmal für dich ein kleiner Beispielcode.
Auch hier gilt mal wieder: "Dieser Code ist aus dem Kopf geschrieben! Daher können Zeichen falsch gesetzt sein oder ein Groß/Klein schreib Fehler da sein!"
 

ThunderFlo

Kuhfänger
Registriert
22 September 2013
Beiträge
53
Diamanten
0
Ich weiß jetzt nicht kannst genau was du meinst, aber wenn du die Klassen mit deinen Commands woanders haben möchtest und nicht immer in dem gleichem Packet dann solltest du das hier machen bei dem onEnable Teil in deiner Hauptklasse:

Code:
	@Override
	public void onEnable() {
		
		//DeinCode
		this.getCommand("CommandName").setExecutor(new KlassenName());

Der KlassenName wird dir dann noch rot unterterstrichen da du dann noch dein Packege importieren musst mit der Klasse und wenn du das dann gemacht hast sollte es funktionieren.
 
Oben