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

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.

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

1

Thursday, November 20th 2014, 8:05pm

Event funktioniert nicht so wie gedacht

Bei meinem Code möchte ich das wenn ich die Kiste öffne die Nachricht "da" bekomme, obwohl ich das Event & den Listener richtig angelegt habe funktioniert es nicht, warum ? was mache ich falsch?

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
29
30
31
32
33
34
35
36
37
package Chest;

import main.Main;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

public class ChestManager implements Listener{
	
	private Main plugin;
	
	public ChestManager(Main plugin) {
		this.plugin = plugin;
	}
	
	@EventHandler
	public void onClick(PlayerInteractEvent e) {
		Player p = e.getPlayer();
		if((e.getAction() == Action.RIGHT_CLICK_BLOCK) &&
			(e.getClickedBlock().getType() == Material.CHEST)) {
			if(e.getClickedBlock().getWorld().getName().equals(this.plugin.getConfig().get("Config.world")))
			{
					if(e.getClickedBlock().getX() == this.plugin.getConfig().getInt("Config.X")) {
						if(e.getClickedBlock().getY() == this.plugin.getConfig().getInt("Config.Y")) {
							if(e.getClickedBlock().getZ() == this.plugin.getConfig().getInt("Config.Z")) {
								p.sendMessage("DA");
							}
						}
					}
				}
			}
		}
}

LostBattle

User / Kunde

Posts: 388

  • Send private message

2

Thursday, November 20th 2014, 8:37pm

Event registriert?
Wirds plugin geladen?
Versuchs mal mit debugmessages und schau wo es nicht weiter geht..

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

3

Thursday, November 20th 2014, 8:41pm

ich habs ja mit debug Messages gemacht, keine einzige wird versendet

Spoiler Spoiler


Event

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package Chest;

import main.Main;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

public class ChestManager implements Listener{
	
	private Main plugin;
	
	public ChestManager(Main plugin) {
		this.plugin = plugin;
	}
	
	@EventHandler
	public void onClick(PlayerInteractEvent e) {
		System.out.println("Debug1");
		Player p = e.getPlayer();
		if((e.getAction() == Action.RIGHT_CLICK_BLOCK) &&
			(e.getClickedBlock().getType() == Material.CHEST)) {
			System.out.println("Debug2");
			if(e.getClickedBlock().getWorld().getName().equals(this.plugin.getConfig().get("Config.world")))
			{
				System.out.println("Debug3");
					if(e.getClickedBlock().getX() == this.plugin.getConfig().getInt("Config.X")) {
						System.out.println("Debug4");
						if(e.getClickedBlock().getY() == this.plugin.getConfig().getInt("Config.Y")) {
							System.out.println("Debug4");
							if(e.getClickedBlock().getZ() == this.plugin.getConfig().getInt("Config.Z")) {
								System.out.println("Debug4");
								p.sendMessage("DA");
							}
						}
					}
				}
			}
		}
}

Main

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package main;

import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;



public class Main extends JavaPlugin{
	
	public void onEnable() {
		System.out.println("[Adventskalender] wurde enabled!");
		loadConfig();
		String dwelt = getConfig().getString("Config.world");
		World welt = this.getServer().getWorld(dwelt);
		int X = getConfig().getInt("Config.X");
		int Y = getConfig().getInt("Config.Y");
		int Z = getConfig().getInt("Config.Z");
		if(welt.getBlockAt(X, Y, Z).getType()!=Material.CHEST) {
		welt.getBlockAt(X,Y,Z).setType(Material.AIR);
		welt.getBlockAt(X,Y,Z).setType(Material.CHEST);
		System.out.println("[Adventskalender] Kiste nicht Gefunden, daher gesetzt.");
		}
	}
	
	public void onDisable() {
		
		System.out.println("[Adventskalender] wurde disabled!");		
	}

	public boolean onCommand(CommandSender sender, Command cmd, String label,
			String[] args) {
		
		if(cmd.getName().equalsIgnoreCase("adventcreate")) {
			
			if(sender instanceof ConsoleCommandSender) {
				
				System.out.println("Dieser Befehl koennen nur Spieler setzen!");
				return true;
			}
			Player p = (Player) sender;
			if(args.length>=4) {
				p.sendMessage("§a[§Adventskalender§a] §cZu viele Argumente!");
				return true;
			}
			if(args.length<3) {
				p.sendMessage("§a[§Adventskalender§a] §c/adventcreate X Y Z!");
				return true;
			}
			this.getConfig().set("Config.X", new Integer(args[0]));
			this.getConfig().set("Config.Y", new Integer(args[1]));
			this.getConfig().set("Config.Z", new Integer(args[2]));
			World pwelts = p.getWorld();
			String pwelt = pwelts.getName();
			this.getConfig().set("Config.world", pwelt);
			this.saveConfig();
			pwelts.getBlockAt(new Integer(args[0]),new Integer(args[1]),new Integer(args[2])).setType(Material.AIR);
			pwelts.getBlockAt(new Integer(args[0]),new Integer(args[1]),new Integer(args[2])).setType(Material.CHEST);
			String nachricht = "§bAdventchest an " + args[0] + " " + args[1] + " " + args[2] + " in Welt " + pwelt + " erstellt!";
			p.sendMessage(nachricht);
			return true;
		}
		return false;
	}


	private void loadConfig()
	{
		String Xs = "Config.X";
		String Ys = "Config.Y";
		String Zs = "Config.Z";
		String world = "Config.world";
		getConfig().addDefault(Xs, 0);
		getConfig().addDefault(Ys, 64);
		getConfig().addDefault(Zs, 0);
		getConfig().addDefault(world, "world");
		FileConfiguration cfg = this.getConfig();
		cfg.options().copyDefaults(true);
		saveConfig();
	}
	
}

This post has been edited 1 times, last edit by "AlexanderL123" (Nov 20th 2014, 8:47pm)


LostBattle

User / Kunde

Posts: 388

  • Send private message

4

Thursday, November 20th 2014, 8:50pm

Wird debug1 gesendet?

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

5

Thursday, November 20th 2014, 9:10pm

Nein / Mal am Rand des Themas, wie kann ich in Java einen Timestamp machen damit ich mir die Countdown Zeit bis Nächsten Tag (0:00) ausrechnen kann ?

flugcraftFTB

User / Kunde

  • "flugcraftFTB" is male

Posts: 849

Location: Münster

Thanks: 1

  • Send private message

6

Thursday, November 20th 2014, 9:27pm

Fluglotsen Service auf IVAO an folgen Flughäfen: EDDM(München), EDDS(Stuttgart), EDDG(Münster/Osnabrück), EDDH(Hamburg), EDDN(Nürnberg), EDDT(Berlin-Tegel), EDDB(Berlin-Schönefeld), EDDL(Düsseldorf) EDDK(Köln-Bonn), EDDF(Frankfurt/Main) und EDDW(Bremen). Als Kontrollturm und Boden online!

Anno35

User / Kunde

Posts: 1,223

Thanks: 3

  • Send private message

7

Thursday, November 20th 2014, 9:34pm

Es kann an den getInt(); liegen.
Du willst ja den genauen Double wert von dem Block vergleichen, holst dir aber nur den Int aus der Config (was dann auch rundet wenn du vorher ein Double gespeichert haben solltest).
Es gäbe da 2 Lösungen: Entweder du liest vom Block die .getBlockX/Y/Z() Werte aus oder du holst dir den Double aus der Config (getDouble()).

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

8

Thursday, November 20th 2014, 9:37pm

Ne ich habe feste Koordinaten, oder haste schonmal ein Blocke an X 0,5 gesehen

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

9

Thursday, November 20th 2014, 9:37pm

Du musst ihn deiner Mainklasse noch die Listener Klasse registrieren. Also ich kann das zumindest nirgendwo finden, dass du sie registrierst

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

10

Thursday, November 20th 2014, 10:11pm

habe es via

getServer().getPluginManager().registerEvents(new Chest.ChestManager(this), this);

Registriert jedoch bekomme ich immernoch keine Debug nachricht

Anno35

User / Kunde

Posts: 1,223

Thanks: 3

  • Send private message

11

Thursday, November 20th 2014, 10:40pm

Versuch es doch trotzdem mal mit getBlockX/Y/Z(), vielleicht klappt es ja.
Sonst mach mal ne Debug Nachricht direkt wenn das Event ausgeführt wird also ganz oben, dann kannst du prüfen ob das Event bzw. dein Code überhaupt aufgerufen wird.

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

12

Thursday, November 20th 2014, 10:49pm

? Verstehe nicht was du meinst, Ich glaube ich habe das Event falsch registrierd da nichtmal die erste Debug nachricht kommt

th3t0myb0y

User / Kunde

  • "th3t0myb0y" is male

Posts: 214

Location: Nordrhein-Westfalen

Occupation: Schüler

  • Send private message

13

Friday, November 21st 2014, 1:41am

Sicher, dass keine Fehlermeldung kommt?
Ich sehe auch nirgends wo der Listener regestriert wird, schick bitte nochmal deinen aktuellen Code.
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
~Linus Torvalds

AlexanderL123

User / Kunde

  • "AlexanderL123" started this thread

Posts: 56

  • Send private message

14

Friday, November 21st 2014, 11:10am

Habe es nochmal geändert so is jetzt der Code

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package main;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

public class Managers implements Listener{
	
	private Main plugin;
	
	public Managers(Main plugin) {
		this.plugin = plugin;
	}
	
	@EventHandler(priority = EventPriority.HIGH)
	public void onClick(PlayerInteractEvent e) {
		System.out.println("Debug1");
		Player p = e.getPlayer();
		if((e.getAction() == Action.RIGHT_CLICK_BLOCK) &&
			(e.getClickedBlock().getType() == Material.CHEST)) {
			System.out.println("Debug2");
			if(e.getClickedBlock().getWorld().getName().equals(this.plugin.getConfig().get("Config.world")))
			{
				System.out.println("Debug3");
					if(e.getClickedBlock().getX() == this.plugin.getConfig().getInt("Config.X")) {
						System.out.println("Debug4");
						if(e.getClickedBlock().getY() == this.plugin.getConfig().getInt("Config.Y")) {
							System.out.println("Debug4");
							if(e.getClickedBlock().getZ() == this.plugin.getConfig().getInt("Config.Z")) {
								System.out.println("Debug4");
								p.sendMessage("DA");
							}
						}
					}
				}
			}
		}
}

-------------------------------------------------------------------------------------------------------------------------

package main;


import java.util.ArrayList;

import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;




public class Main extends JavaPlugin{
	
	public void onEnable() {
		System.out.println("[Adventskalender] wurde enabled!");
		loadConfig();
		String dwelt = getConfig().getString("Config.world");
		World welt = this.getServer().getWorld(dwelt);
		int X = getConfig().getInt("Config.X");
		int Y = getConfig().getInt("Config.Y");
		int Z = getConfig().getInt("Config.Z");
		if(welt.getBlockAt(X, Y, Z).getType()!=Material.CHEST) {
		welt.getBlockAt(X,Y,Z).setType(Material.AIR);
		welt.getBlockAt(X,Y,Z).setType(Material.CHEST);
		System.out.println("[Adventskalender] Kiste nicht Gefunden, daher gesetzt.");
        getServer().getPluginManager().registerEvents(new Managers(null), this);
        System.out.println("[Adventskalender] Event wurde enabled!");
		}
	}
	
	public void onDisable() {
		
		System.out.println("[Adventskalender] wurde disabled!");		
	}

	public boolean onCommand(CommandSender sender, Command cmd, String label,
			String[] args) {
		
		if(cmd.getName().equalsIgnoreCase("adventcreate")) {
			
			if(sender instanceof ConsoleCommandSender) {
				
				System.out.println("Dieser Befehl koennen nur Spieler setzen!");
				return true;
			}
			Player p = (Player) sender;
			if(args.length>=4) {
				p.sendMessage("§a[§Adventskalender§a] §cZu viele Argumente!");
				return true;
			}
			if(args.length<3) {
				p.sendMessage("§a[§Adventskalender§a] §c/adventcreate X Y Z!");
				return true;
			}
			this.getConfig().set("Config.X", new Integer(args[0]));
			this.getConfig().set("Config.Y", new Integer(args[1]));
			this.getConfig().set("Config.Z", new Integer(args[2]));
			World pwelts = p.getWorld();
			String pwelt = pwelts.getName();
			this.getConfig().set("Config.world", pwelt);
			this.saveConfig();
			pwelts.getBlockAt(new Integer(args[0]),new Integer(args[1]),new Integer(args[2])).setType(Material.AIR);
			pwelts.getBlockAt(new Integer(args[0]),new Integer(args[1]),new Integer(args[2])).setType(Material.CHEST);
			String nachricht = "§bAdventchest an " + args[0] + " " + args[1] + " " + args[2] + " in Welt " + pwelt + " erstellt!";
			p.sendMessage(nachricht);
			return true;
		}
		return false;
	}


	private void loadConfig()
	{
		String Xs = "Config.X";
		String Ys = "Config.Y";
		String Zs = "Config.Z";
		String world = "Config.world";
		String liste = "Config.Itemliste";
		getConfig().addDefault(Xs, 0);
		getConfig().addDefault(Ys, 64);
		getConfig().addDefault(Zs, 0);
		getConfig().addDefault(world, "world");
		ArrayList<String> defaultlist = null;
		defaultlist = new ArrayList<String>();
		if(defaultlist.isEmpty() || defaultlist.size() == 0) {
			defaultlist.add("276");
			defaultlist.add("267");
			}
		getConfig().addDefault(liste, defaultlist);
		FileConfiguration cfg = this.getConfig();
		cfg.options().copyDefaults(true);
		saveConfig();
	}
	
}


Kommt jedoch immernoch keine Debug nachricht

This post has been edited 3 times, last edit by "AlexanderL123" (Nov 21st 2014, 12:37pm)


ciaxx

User / Kunde

  • "ciaxx" is male

Posts: 346

Occupation: Schüler

  • Send private message

15

Friday, November 21st 2014, 12:49pm

Änder das

Java source code

1
getServer().getPluginManager().registerEvents(new Managers(null), this);

mal in

Java source code

1
2
PluginManager pm = this.getServer().getPluginManager();
pm.registerEvents(new Managers(this), this);

BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

16

Friday, November 21st 2014, 2:13pm

Java source code

1
2
3
4
5
6
7
if (welt.getBlockAt(X, Y, Z).getType()!=Material.CHEST) {
	welt.getBlockAt(X,Y,Z).setType(Material.AIR);
	welt.getBlockAt(X,Y,Z).setType(Material.CHEST);
	System.out.println("[Adventskalender] Kiste nicht Gefunden, daher gesetzt.");
        getServer().getPluginManager().registerEvents(new Managers(null), this);
        System.out.println("[Adventskalender] Event wurde enabled!");
}

Ist das wirklich gewollt, dass das Event nur registriert wird, wenn keine Kiste vorhanden ist?
Glaube ich eher nicht. Daher mach's so, dann geht's auch:

Java source code

1
2
3
4
5
6
7
if (welt.getBlockAt(X, Y, Z).getType()!=Material.CHEST) {
	welt.getBlockAt(X,Y,Z).setType(Material.AIR);
	welt.getBlockAt(X,Y,Z).setType(Material.CHEST);
	System.out.println("[Adventskalender] Kiste nicht Gefunden, daher gesetzt.");
}
Bukkit.getPluginManager().registerEvents(new Managers(this), this);
System.out.println("[Adventskalender] Event wurde enabled!");
Standard Standart eines Flamingos ist einbeinig.

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