You are not logged in.

  • Login

[Bukkit-Plugin] /workbench und /enderchest

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

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

1

Saturday, November 5th 2016, 12:21pm

/workbench und /enderchest

Hallo Leute,

ich habe vor einiger Zeit mal Plugins gecodet und mich jetzt mal wieder drangesetzt.
Ich weiss einfach nichts mehr! Ich will einen /enderchest und einen /workbench Befehl machen!
Soweit ist das ja sehr simple, wenn ich alles in die "main" schreibe funktioniert es ja auch einwandfrei,
wenn ich es allerdings in verschiedene Klassen schreibe, kommt eine Fehlermeldung! (siehe Anhang)
Daraus konnte ich entnehmen, dass der Fehler in commands.ender (line 11) und in kingdoms.main (line 13) steht!

Hier der Code der beiden classes!

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package kingdoms;

import org.bukkit.Bukkit;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class main extends JavaPlugin implements CommandExecutor{
	public void onEnable() {
		System.out.println("[Kingdoms] Gestartet!");
		getCommand("enderchest").setExecutor(new commands.ender());
		getCommand("workbench").setExecutor(new commands.workbench());
	}
	
	
	public void onDisable(){
		System.out.println("[Kingdoms] Gestoppt!");
	}

}




Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package commands;

import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ender extends JavaPlugin implements CommandExecutor{
	
	public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String [] args) {
		
	Player p = (Player)sender;
		
	if (cmd.getName().equalsIgnoreCase("enderchest")){
		
			p.openInventory(p.getEnderChest());
			p.sendMessage("§d Enderchest!");
			p.playSound(p.getLocation(), Sound.ENDERMAN_TELEPORT, 1, 1);
		}
	
	return true;
		
	}
}
PhilippBasti has attached the following file:

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

2

Saturday, November 5th 2016, 12:22pm

Code mal vernünftig formatieren pls -.-

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

3

Saturday, November 5th 2016, 12:24pm

Code mal vernünftig formatieren pls -.-

sry, hatte vergessen wie das geht ._." xd

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

4

Saturday, November 5th 2016, 12:25pm

In der main registeriert? schick mal die main. :P

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

5

Saturday, November 5th 2016, 12:26pm

d
In der main registeriert? schick mal die main. :P

das obere ist doch die main :o

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

6

Saturday, November 5th 2016, 12:30pm

das war nen #fail von mir xD
dDie klasse ender braucht nen constructor.

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

7

Saturday, November 5th 2016, 12:31pm

das war nen #fail von mir xD
dDie klasse ender braucht nen constructor.

d.h.? :c
wie gesagt weiss gar nix mehr xD war damals auch net sooo gut

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

8

Saturday, November 5th 2016, 12:38pm

Also ich mache das immer SO wie in dieser klasse und registern ist schon richtig.
also so:

Spoiler Spoiler

Source code

1
2
3
4
	LuckyBlocks plugin;
        	public GetOpenedLuckyBlocks(LuckyBlocks main) {
        		this.plugin = main;
        	}

xImClassicPro

User / Kunde

  • "xImClassicPro" is male

Posts: 205

Location: Niedersachsen

Occupation: Schüler eines Gymnasiums

  • Send private message

9

Saturday, November 5th 2016, 12:38pm

main ist bereits registriert.

Klassennamen schreibt man groß, Pakete klein.

Man sollte seine Klasse nicht main nennen. Weil sonst das Plugin wegen doppelten main-s nicht starten kann.

"main is already inita..."
~ Life is unbelievable. But the world's web is indispensable.

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

10

Saturday, November 5th 2016, 12:39pm

main ist bereits registriert.

Klassennamen schreibt man groß, Pakete klein.

Man sollte seine Klasse nicht main nennen. Weil sonst das Plugin wegen doppelten main-s nicht starten kann.

"main is already inita..."

Asoooo stimmt xD daran hatt ich garnicht gedacht... Sorry wieder ein fail vom mir xD
Ansonsten kann ich dem TO auch die JavaInsel empfehlen :thumbsup:

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

11

Saturday, November 5th 2016, 12:43pm

Also ich mache das immer SO wie in dieser klasse und registern ist schon richtig.
also so:

Spoiler Spoiler

Source code

1
2
3
4
	LuckyBlocks plugin;
        	public GetOpenedLuckyBlocks(LuckyBlocks main) {
        		this.plugin = main;
        	}

Source code

1
2
3
4
5
	 ender plugin;

	public ender(ender main) {
		this.plugin = main;
	}


hab ich das jetzt richtig gemacht?
und was bringt das?
außerdem wird mir jetzt in der main ein fehler angezeigt!

Source code

1
		getCommand("enderchest").setExecutor(new commands.ender());

da ist new commands.ender() rot unterstrichen

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

12

Saturday, November 5th 2016, 12:44pm

DA musst du noch "this" ohne anführungszeichen als Parameter übergeben.
Ansonsten mal @xImClassicPro s beitrag lesen.

xImClassicPro

User / Kunde

  • "xImClassicPro" is male

Posts: 205

Location: Niedersachsen

Occupation: Schüler eines Gymnasiums

  • Send private message

13

Saturday, November 5th 2016, 12:45pm

Also ich mache das immer SO wie in dieser klasse und registern ist schon richtig.
also so:

Spoiler Spoiler

Source code

1
2
3
4
	LuckyBlocks plugin;
        	public GetOpenedLuckyBlocks(LuckyBlocks main) {
        		this.plugin = main;
        	}

Source code

1
2
3
4
5
	 ender plugin;

	public ender(ender main) {
		this.plugin = main;
	}


hab ich das jetzt richtig gemacht?
und was bringt das?
außerdem wird mir jetzt in der main ein fehler angezeigt!

Source code

1
		getCommand("enderchest").setExecutor(new commands.ender());

da ist new commands.ender() rot unterstrichen


Wie ich schon geschrieben habe, einfach deine Klassen so nennen:

de.deinname.pluginname.etc

Pakete klein, Klassen groß:

de.deinname.pluginname.Command_Enderchest

So zum Beispiel.


main sollte man seine ganzen Klassen nun mal nicht nennen, da der Server dies nur einmal aktivieren kann.
~ Life is unbelievable. But the world's web is indispensable.

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

14

Saturday, November 5th 2016, 12:45pm

DA musst du noch "this" ohne anführungszeichen als Parameter übergeben.
Ansonsten mal @xImClassicPro s beitrag lesen.

also soll ich das doch nicht machen? hä xD ich raff nix mehr xD falls jmd die Lösung weiss, kann er mir dann einfach den überarbeiteten code senden?

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

15

Saturday, November 5th 2016, 12:46pm

Die main einfach so nennen, wie das projekt heißt.

//edit:
Beide sachen solltest du machen, da du wenn diu die main im command brauchst so daran kommst.
außerdem vlt. mal DAS lesen.
uUnd den überarbeiteten code kann ich dir gern nachher senden, nur davon lernst du garnichts.

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

16

Saturday, November 5th 2016, 12:52pm

Die main einfach so nennen, wie das projekt heißt.

//edit:
Beide sachen solltest du machen, da du wenn diu die main im command brauchst so daran kommst.
außerdem vlt. mal DAS lesen.
uUnd den überarbeiteten code kann ich dir gern nachher senden, nur davon lernst du garnichts.

ich hab die main jetzt umbenannt, nur ändern tut das nicht :d

BlackSarius

User / Kunde

  • "BlackSarius" is male

Posts: 745

Location: Baden-Württemberg

Occupation: Abiturient

  • Send private message

17

Saturday, November 5th 2016, 12:54pm

Klassen groß, passt..
Aber das mit der Main.. ich nenne bei mir fast jede Main eines Spigot Plugins noch "Main".
Es darf dann nur nicht das selbe Package sein(selbe Gesamtpfad(da mit einbezogen die Klasse)),
deshalb empfehl ich:
com.website(/author).project
> Main

PS: Nur deine Main-Klasse darf von JavaPlugin erben -> Entfern das extends JavaPlugin in deiner Command-klasse

LinXX

User / Kunde

Posts: 1,018

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

18

Saturday, November 5th 2016, 12:54pm

Die main einfach so nennen, wie das projekt heißt.

//edit:
Beide sachen solltest du machen, da du wenn diu die main im command brauchst so daran kommst.
außerdem vlt. mal DAS lesen.
uUnd den überarbeiteten code kann ich dir gern nachher senden, nur davon lernst du garnichts.

ich hab die main jetzt umbenannt, nur ändern tut das nicht :d

Fehler? Schick mal die Klassen?

PhilippBasti

User / Kunde

  • "PhilippBasti" started this thread

Posts: 47

  • Send private message

19

Saturday, November 5th 2016, 12:55pm

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package kingdoms;

import org.bukkit.Bukkit;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class kingdoms extends JavaPlugin implements CommandExecutor{
	public void onEnable() {
		System.out.println("[Kingdoms] Gestartet!");
		getCommand("enderchest").setExecutor(new commands.ender());
		getCommand("workbench").setExecutor(new commands.workbench());
	}
	
	
	public void onDisable(){
		System.out.println("[Kingdoms] Gestoppt!");
	}

}


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package commands;

import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ender extends JavaPlugin implements CommandExecutor{
	
	
	public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String [] args) {
		
	Player p = (Player)sender;
		
	if (cmd.getName().equalsIgnoreCase("enderchest")){
		
			p.openInventory(p.getEnderChest());
			p.sendMessage("§d Enderchest!");
			p.playSound(p.getLocation(), Sound.ENDERMAN_TELEPORT, 1, 1);
		}
	
	return true;
		
	}
}


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package commands;

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

public class workbench extends JavaPlugin implements CommandExecutor{

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String [] args) {
		
	Player p = (Player)sender;
		
	if (cmd.getName().equalsIgnoreCase("workbench")){

		p.openWorkbench(null, true);
		}
	return false;
	}
}

BlackSarius

User / Kunde

  • "BlackSarius" is male

Posts: 745

Location: Baden-Württemberg

Occupation: Abiturient

  • Send private message

20

Saturday, November 5th 2016, 12:56pm

Entfern das extends JavaPlugin in deiner Enderchest-Command-Klasse.

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