You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

GamelifeLP

User / Kunde

  • "GamelifeLP" started this thread

Posts: 16

  • Send private message

1

Sunday, June 29th 2014, 3:09pm

Bukkit Plugin Programmieren befehl von Command Block ausführen lassen

Hi Leute,
ich Programmiere gerade mein erstes Plugin es funktioniert auch alles nur jetzt möchte ich gerne mein befehl über einen Command Block ausgeben lassen. Wie muss ich das denn Coden ???

iLikeGermany04

User / Kunde

  • "iLikeGermany04" is male

Posts: 27

Location: Sachsen

Occupation: Vater

  • Send private message

2

Sunday, June 29th 2014, 3:32pm

theoretisch brauchst du bei den Commandblocks nur einen funktionierenden befehl ..

ich kann aber auch falsch liegen da ich so etwas noch nie über commandblocks ausgeben lassen habe...

FrozenBrain

User / Kunde

  • "FrozenBrain" is male

Posts: 2,145

Thanks: 6

  • Send private message

3

Monday, June 30th 2014, 4:20pm


xXAlex10Xx

User / Kunde

  • "xXAlex10Xx" is male

Posts: 818

Location: Nirgends

Occupation: 'Schüler' - ist n' Insider

Thanks: 8

  • Send private message

4

Monday, June 30th 2014, 4:41pm

Gibt in der Bukkit-API eine Klasse "Command" in der subpackage "material". Ich nehm an dabei handelt es sich um einen Command-Block - Schau es dir mal an.
:thumbsup:

ketrwu14

Moderator

  • "ketrwu14" is male

Posts: 1,430

Thanks: 2

  • Send private message

5

Monday, June 30th 2014, 7:04pm

Versteh ich richtig, dass du willst das dein Befehl von einem CMD Block ausgeführt wird? Wenn dem so ist:
Prüfe ob der CommandSender eine Console ist. Du darfst halt die Console nicht zu einem Player casten. Nachrichten sendest du dann über sender.sendMessage() und der Rest ist meist gleich.

xXAlex10Xx

User / Kunde

  • "xXAlex10Xx" is male

Posts: 818

Location: Nirgends

Occupation: 'Schüler' - ist n' Insider

Thanks: 8

  • Send private message

6

Monday, June 30th 2014, 7:44pm

@ketrwu14
Ich weiss nicht für was dein Beitrag jetzt gut war. (Nicht bös gemeint, ich raffs nur nicht.)

Java source code

1
2
3
4
5
6
7
8
9
10
11
	public void sendCommandBlockCommand(String command) {
		final org.bukkit.material.Command cmd = new org.bukkit.material.Command();
		CommandBlock cb = (CommandBlock) cmd;
		cb.setCommand(command);
		cmd.setPowered(true);
		Bukkit.getScheduler().scheduleSyncDelayedTask(core, new Runnable() {
			public void run() {
				cmd.setPowered(false);
			}
		}, 20L);
	}


Hab nicht getestet ob es funktioniert. Tests aus ^^
:thumbsup:

crysis992

User / Kunde

Posts: 284

  • Send private message

7

Tuesday, July 1st 2014, 2:43am

Zur Info, um es noch spezifischer zu prüfen (Habe das mal für eines meiner Plugins gebraucht), du kannst auf prüfen ob der sender ein "BlockCommandSender" ist

so in der art, wenn ich mich nicht irre. Ist schon etwas länger her als ich das gebraucht habe.

Source code

1
2
3
if (sender instanceof BlockCommandSender) {
// Dein Code
}


Aber eigentlich kannst du auch Prüfen ob der sender ein Spieler ist, und falls nicht, fürst du in deinem else teil einfach dein code aus, ohne die Spieler variable zu benutzen. (Sorry falls es etwas schlecht erklärt ist, ist schon spät :p )

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net