You are not logged in.

  • Login

[Hilfe] Bar

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

Fabian3355

User / Kunde

  • "Fabian3355" started this thread

Posts: 129

  • Send private message

1

Thursday, October 3rd 2013, 3:56pm

Bar

Hey Leute ich habe hier im forum einen Link zu diesem Code gesehen:

Source code

1
 public static final int ENTITY_ID = 1234;				private static HashMap<String, Boolean> hasHealthBar = new HashMap<String, Boolean>();				public static void sendPacket(Player player, Packet packet){			EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();						entityPlayer.playerConnection.sendPacket(packet);		}				//Accessing packets		public static Packet24MobSpawn getMobPacket(String text, Location loc){			Packet24MobSpawn mobPacket = new Packet24MobSpawn();						mobPacket.a = (int) ENTITY_ID; //Entity ID			mobPacket.b = (byte) EntityType.WITHER.getTypeId(); //Mob type (ID: 64)			mobPacket.c = (int) Math.floor(loc.getBlockX() * 32.0D); //X position			mobPacket.d = (int) Math.floor(loc.getBlockY() * 32.0D); //Y position			mobPacket.e = (int) Math.floor(loc.getBlockZ() * 32.0D); //Z position			mobPacket.f = (byte) 0; //Pitch			mobPacket.g = (byte) 0; //Head Pitch			mobPacket.h = (byte) 0; //Yaw			mobPacket.i = (short) 0; //X velocity			mobPacket.j = (short) 0; //Y velocity			mobPacket.k = (short) 0; //Z velocity						DataWatcher watcher = getWatcher(text, 300);						try{				Field t = Packet24MobSpawn.class.getDeclaredField("t");								t.setAccessible(true);				t.set(mobPacket, watcher);			} catch(Exception e){				e.printStackTrace();			}						return mobPacket;		}				public static Packet29DestroyEntity getDestroyEntityPacket(){			Packet29DestroyEntity packet = new Packet29DestroyEntity();						packet.a = new int[]{ENTITY_ID};						return packet;		}				public static Packet40EntityMetadata getMetadataPacket(DataWatcher watcher){			Packet40EntityMetadata metaPacket = new Packet40EntityMetadata();						metaPacket.a = (int) ENTITY_ID;						try{				Field b = Packet40EntityMetadata.class.getDeclaredField("b");								b.setAccessible(true);				b.set(metaPacket, watcher.c());			} catch(Exception e){				e.printStackTrace();			}						return metaPacket;		}					public static Packet205ClientCommand getRespawnPacket(){			Packet205ClientCommand packet = new Packet205ClientCommand();						packet.a = (int) 1;						return packet;		}				public static DataWatcher getWatcher(String text, int health){			DataWatcher watcher = new DataWatcher();						watcher.a(0, (Byte) (byte) 0x20); //Flags, 0x20 = invisible			watcher.a(6, (Float) (float) health);			watcher.a(10, (String) text); //Entity name			watcher.a(11, (Byte) (byte) 1); //Show name, 1 = show, 0 = don't show			//watcher.a(16, (Integer) (int) health); //Wither health, 300 = full health						return watcher;		}				//Other methods		public static void displayTextBar(String text, final Player player){			Packet24MobSpawn mobPacket = getMobPacket(text, player.getLocation());						sendPacket(player, mobPacket);			hasHealthBar.put(player.getName(), true);						new BukkitRunnable(){				@Override				public void run(){					Packet29DestroyEntity destroyEntityPacket = getDestroyEntityPacket();										sendPacket(player, destroyEntityPacket);					hasHealthBar.put(player.getName(), false);				}			}.runTaskLater(MinecraftFPS.getInstance(), 120L);		}				public static void displayLoadingBar(final String text, final String completeText, final Player player, final int healthAdd, final long delay, final boolean loadUp){			Packet24MobSpawn mobPacket = getMobPacket(text, player.getLocation());						sendPacket(player, mobPacket);			hasHealthBar.put(player.getName(), true);						new BukkitRunnable(){				int health = (loadUp ? 0 : 300);								@Override				public void run(){					if((loadUp ? health < 300 : health > 0)){						DataWatcher watcher = getWatcher(text, health);						Packet40EntityMetadata metaPacket = getMetadataPacket(watcher);												sendPacket(player, metaPacket);												if(loadUp){							health += healthAdd;						} else {							health -= healthAdd;						}					} else {						DataWatcher watcher = getWatcher(text, (loadUp ? 300 : 0));						Packet40EntityMetadata metaPacket = getMetadataPacket(watcher);						Packet29DestroyEntity destroyEntityPacket = getDestroyEntityPacket();												sendPacket(player, metaPacket);											sendPacket(player, destroyEntityPacket);						hasHealthBar.put(player.getName(), false);												//Complete text						Packet24MobSpawn mobPacket = getMobPacket(completeText, player.getLocation());												sendPacket(player, mobPacket);						hasHealthBar.put(player.getName(), true);												DataWatcher watcher2 = getWatcher(completeText, 300);						Packet40EntityMetadata metaPacket2 = getMetadataPacket(watcher2);												sendPacket(player, metaPacket2);												new BukkitRunnable(){							@Override							public void run(){								Packet29DestroyEntity destroyEntityPacket = getDestroyEntityPacket();																sendPacket(player, destroyEntityPacket);								hasHealthBar.put(player.getName(), false);							}						}.runTaskLater(MinecraftFPS.getInstance(), 40L);												this.cancel();					}				}			}.runTaskTimer(MinecraftFPS.getInstance(), delay, delay);		}				public static void displayLoadingBar(final String text, final String completeText, final Player player, final int secondsDelay, final boolean loadUp){			final int healthChangePerSecond = 300 / secondsDelay;						displayLoadingBar(text, completeText, player, healthChangePerSecond, 20L, loadUp);		}



In diesem Code wird mir aber dies : MinecraftFPS. und dies: ((CraftPlayer) player). unterstrichen. Weiß jemand warum?

TimBone

User / Kunde

Posts: 1,053

Thanks: 2

  • Send private message

2

Thursday, October 3rd 2013, 4:27pm

MinecraftFPS ist meines Wissens eine Klasse, die bei dem Code irgendwo dabei sein müsste und hinter dem Player musst du einfach die ")" entfernen.

Zitat von »Linus Torvalds«

Nur Weicheier benutzen Datensicherungen auf Band: richtige Männer laden ihren wichtigen Kram einfach auf einen FTP und lassen diesen vom Rest der Welt spiegeln

Fabian3355

User / Kunde

  • "Fabian3355" started this thread

Posts: 129

  • Send private message

3

Thursday, October 3rd 2013, 4:31pm

((CraftPlayer) player). da sind aber 2 Klammern

//Edit: Dies hier ist das Ganze: http://forums.bukkit.org/threads/tutoria…lth-bar.158018/.
Dort finde ich aber nichts von einer zweiten klasse

TimBone

User / Kunde

Posts: 1,053

Thanks: 2

  • Send private message

4

Thursday, October 3rd 2013, 4:41pm

Jo, ist mir auch gerade aufgefallen. Was nutz Du denn für einen Craftbukkit Version?

//Edit:

Hast du das hier gelesen?
Note: Whenever you see "MinecraftFPS.getInstance()", replace that with the instance of your main class (typically "plugin").

Zitat von »Linus Torvalds«

Nur Weicheier benutzen Datensicherungen auf Band: richtige Männer laden ihren wichtigen Kram einfach auf einen FTP und lassen diesen vom Rest der Welt spiegeln

Fabian3355

User / Kunde

  • "Fabian3355" started this thread

Posts: 129

  • Send private message

5

Thursday, October 3rd 2013, 4:48pm

Nein sorry das habe ich übersehen. Aber nun ist es unterstrichen und da steht: The method getInstance() is undefined for the type Main.
Und ich benutze die 1.6.2 Recommenden Build!

TimBone

User / Kunde

Posts: 1,053

Thanks: 2

  • Send private message

6

Thursday, October 3rd 2013, 4:54pm

Dann schaue mal, ob die Imports alle richtig sind (wegen dem EntityPlayer). Und wegen der Instanz: Du musst dir natürlich eine Methode schreiben, die eine Instanz returnt.

Zitat von »Linus Torvalds«

Nur Weicheier benutzen Datensicherungen auf Band: richtige Männer laden ihren wichtigen Kram einfach auf einen FTP und lassen diesen vom Rest der Welt spiegeln

Fabian3355

User / Kunde

  • "Fabian3355" started this thread

Posts: 129

  • Send private message

7

Thursday, October 3rd 2013, 4:58pm

Kannst du mir einmal diese methode schicken stehe gerade etwas auf dem schlauch :D

//Edit: Ich habe mir meine Imports nocheinmal angeguckt aber es geht immer noch nicht selbst wenn ihr alle lösche!

TimBone

User / Kunde

Posts: 1,053

Thanks: 2

  • Send private message

8

Thursday, October 3rd 2013, 5:03pm

Ich bin gerade nur aufm Handy, darum unformatiert:
Am Anfang der Klasse:
public static Main instance;
In der onEnable():
instance = this;
In der onDisable():
instance = null;

Und dann:
public Main getInstance(){
return instance;
}

Zitat von »Linus Torvalds«

Nur Weicheier benutzen Datensicherungen auf Band: richtige Männer laden ihren wichtigen Kram einfach auf einen FTP und lassen diesen vom Rest der Welt spiegeln

Fabian3355

User / Kunde

  • "Fabian3355" started this thread

Posts: 129

  • Send private message

9

Thursday, October 3rd 2013, 5:16pm

Ok danke :) Aber ich bin immernoch nicht mit diesem Problem weiter gekommen!


public static void sendPacket(Player player, Packet packet){
EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle();

entityPlayer.playerConnection.sendPacket(packet);
}

lualzockt

User / Kunde

  • "lualzockt" is male

Posts: 1,380

Occupation: Ferien

Thanks: 9

  • Send private message

10

Friday, October 4th 2013, 8:06am

Drück einfach noch mal STRG + O, Bukkit ändert nach jeder Version die Packagenamen. Es muss bei der 1.6.4 etwas mit net.minecraft.server.v1_6_3 und bei der 1.6.2 net.minecraft.server.v1_6_2 lauten ;)

Mfg Lukas

Zitat

It is not a bug, it a new feature.


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