Villager Trades & Block

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

Villager Trades & Block

Beitragvon Summerfeeling » Sa 26. Apr 2014, 06:27

Hey,
Ich verbessere derzeit mein Rush Plugin, und habe dafür auch die Villager selber gecodet. Nun ist mir aufgefallen, dass wenn man ein Item öfters verkauft, also ein Item z.B. 2x drinnen steht, es nur 1x anzeigt wird. Ist es möglich, alle 3 anzuzeigen?

Code: Alles auswählen
  1.       /* -== ArmorRED ==- */
  2.       Villager.recipes = new ArrayList<>();
  3.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("bronze", 1)), CraftItemStack.asNMSCopy(Villager.getArmor(Material.LEATHER_HELMET, "§cHelm", Color.RED, Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 1)))));
  4.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("bronze", 1)), CraftItemStack.asNMSCopy(Villager.getArmor(Material.LEATHER_LEGGINGS, "§cHose", Color.RED, Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 1)))));
  5.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("bronze", 1)), CraftItemStack.asNMSCopy(Villager.getArmor(Material.LEATHER_BOOTS, "§cSchuhe", Color.RED, Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 1)))));
  6.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("silber", 1)), CraftItemStack.asNMSCopy(Villager.getItem(Material.CHAINMAIL_CHESTPLATE, "§bBrustplatte", Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 1)))));
  7.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("silber", 3)), CraftItemStack.asNMSCopy(Villager.getItem(Material.CHAINMAIL_CHESTPLATE, "§bBrustplatte", Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 2)))));
  8.       Villager.recipes.add(new MerchantRecipe(CraftItemStack.asNMSCopy(Villager.getMaterials("silber", 7)), CraftItemStack.asNMSCopy(Villager.getItem(Material.CHAINMAIL_CHESTPLATE, "§bBrustplatte", Arrays.asList(Enchantment.ARROW_INFINITE, Enchantment.PROTECTION_ENVIRONMENTAL), Arrays.asList(1, 3)))));
  9.       for(MerchantRecipe recipe : Villager.recipes) {
  10.          recipe.a(1000000000);
  11.          armorReds.a(recipe);
  12.       }
  13.       try {
  14.          Field field = Class.forName("net.minecraft.server." + Rush.VERSION + ".EntityVillager").getDeclaredField("bu");
  15.          field.setAccessible(true);
  16.          field.set(armorRed, armorReds);
  17.       } catch(Exception e) {
  18.          e.printStackTrace();
  19.       }

Hier wird nur 1x die Chestplate angezeigt.

2. Frage: Wie kann ich den Block VOR und HINTER dem Player rausbekommen? Ich will in mein Rush n Liner als Specialitem einbauen, welches Unter, vor und hinterm Spieler ein Block setzt.

Hoffe ihr könnt mir helfen :)
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Villager Trades & Block

Beitragvon Jofkos » Sa 26. Apr 2014, 14:45

Summerfeeling hat geschrieben:2. Frage: Wie kann ich den Block VOR und HINTER dem Player rausbekommen? Ich will in mein Rush n Liner als Specialitem einbauen, welches Unter, vor und hinterm Spieler ein Block setzt
Habe ich mal gebraucht in einem Plugin. Angepasste version, müsste gehen (anpassung nicht getestet):
Code: Alles auswählen
  1.    public Location getBlockInFront(Location player) {
  2.       int dir = (int) player.getYaw();
  3.       
  4.       if (dir < 0) {
  5.          dir += 360;
  6.       }
  7.       
  8.       dir = (dir + 45) / 90;
  9.       if (dir == 4) {
  10.          dir = 0;
  11.       }
  12.       
  13.       
  14.       double x = player.getX();
  15.       double y = player.getY();
  16.       double z = player.getZ();
  17.       
  18.       if (dir == 0) z += 1;
  19.       if (dir == 1) x -= 1;
  20.       if (dir == 2) z -= 1;
  21.       if (dir == 3) x += 1;
  22.       
  23.       return new Location(player.getWorld(), x, y, z);
  24.    }
Zuletzt geändert von Jofkos am Sa 26. Apr 2014, 20:53, insgesamt 1-mal geändert.
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: Villager Trades & Block

Beitragvon monst12 » Sa 26. Apr 2014, 15:29

Ebenfalls zur 2. Frage:
Da ich nun ewigkeiten dafür gebraucht habe und gesucht habe, meine Lösung (Getestet) :
Code: Alles auswählen
  1. public Location behindPlayer(Player player) {
  2.         double rotation = (player.getLocation().getYaw() - 360) % 360;
  3.         Block b = player.getLocation().clone().subtract(0, 1, 0).getBlock();
  4.         if (rotation < 0) {
  5.             rotation += 360.0;
  6.         }
  7.         if (0 <= rotation && rotation < 22.5) {
  8.             return b.getRelative(BlockFace.NORTH).getLocation();
  9.         } else if (22.5 <= rotation && rotation < 67.5) {
  10.             return b.getRelative(BlockFace.NORTH_EAST).getLocation();
  11.         } else if (67.5 <= rotation && rotation < 112.5) {
  12.             return b.getRelative(BlockFace.EAST).getLocation();
  13.         } else if (112.5 <= rotation && rotation < 157.5) {
  14.             return b.getRelative(BlockFace.SOUTH_EAST).getLocation();
  15.         } else if (157.5 <= rotation && rotation < 202.5) {
  16.             return b.getRelative(BlockFace.SOUTH).getLocation();
  17.         } else if (202.5 <= rotation && rotation < 247.5) {
  18.             return b.getRelative(BlockFace.SOUTH_WEST).getLocation();
  19.         } else if (247.5 <= rotation && rotation < 292.5) {
  20.             return b.getRelative(BlockFace.WEST).getLocation();
  21.         } else if (292.5 <= rotation && rotation < 337.5) {
  22.            return b.getRelative(BlockFace.NORTH_WEST).getLocation() ;
  23.         } else if (337.5 <= rotation && rotation < 360.0) {
  24.             return b.getRelative(BlockFace.NORTH).getLocation();
  25.         } else {
  26.             return null;
  27.         }
  28.     }

Ändere einfach die rot unterstrichene Zahl:
double rotation = (player.getLocation().getYaw() -360) % 360;
Zum Beispiel für den Block vor dir in eine -180;

MfG monst12
Soweit die Theorie.

MfG
monst12
Benutzeravatar
monst12
 
Beiträge: 239
Registriert: Sa 19. Apr 2014, 22:14

Re: Villager Trades & Block

Beitragvon Summerfeeling » So 27. Apr 2014, 06:45

Hey.
Danke für eure Hilfe. IK_Raptor hatte mir bereits auf meinem Server geholfen^^.

Problem 2 gelöst! 1 besteht weiterhin^^
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Villager Trades & Block

Beitragvon Summerfeeling » Mi 30. Apr 2014, 13:11

#push
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Villager Trades & Block

Beitragvon IK_Raptor » Mi 30. Apr 2014, 15:55

Hab ich es richtig verstanden, dass von den drei Chestplate Rezepten nur eins angezeigt wird? Guck mal ob es wenn du bei jedem Angebot eine andere Rüstungsbetrieb benutz, funktioniert. dürfte ja eigentlich nicht daran liegen, dass alle Angebote an einer Position das selbe Material haben, da sie ja antönten anders sind.
Benutzeravatar
IK_Raptor
 
Beiträge: 609
Registriert: Mo 12. Aug 2013, 15:37

Re: Villager Trades & Block

Beitragvon Summerfeeling » Mi 30. Apr 2014, 21:40

IK_Raptor hat geschrieben:Hab ich es richtig verstanden, dass von den drei Chestplate Rezepten nur eins angezeigt wird? Guck mal ob es wenn du bei jedem Angebot eine andere Rüstungsbetrieb benutz, funktioniert. dürfte ja eigentlich nicht daran liegen, dass alle Angebote an einer Position das selbe Material haben, da sie ja antönten anders sind.


Ja, hast du richtig verstanden. Meinst du, dass ich den anderen Rüstungen, einfach ne Damage-ID geben soll?
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Villager Trades & Block

Beitragvon IK_Raptor » Mi 30. Apr 2014, 21:44

Ne ich meine, dass du (zum Testen) schaust ob der Fehler auch auftritt wenn du einmal eine kettenrüstung nimmst und dann eine Diamantrüstung. Dann wüssten wir ob es daran liegt, dass in allen 3 Chestplateangeboten das selbe Material benutzt wird.
Benutzeravatar
IK_Raptor
 
Beiträge: 609
Registriert: Mo 12. Aug 2013, 15:37

Re: Villager Trades & Block

Beitragvon Jofkos » Fr 22. Aug 2014, 20:06

Ich weiss, der Thread ist alt, aber @summerfeeling wurde das 1. Problem gelöst?
Hier hat nämlich jemand das gleiche -> wie kann man das Villiager trading gui öffenen
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: Villager Trades & Block

Beitragvon Summerfeeling » Fr 22. Aug 2014, 21:18

Jofkos hat geschrieben:Ich weiss, der Thread ist alt, aber @summerfeeling wurde das 1. Problem gelöst?
Hier hat nämlich jemand das gleiche -> wie kann man das Villiager trading gui öffenen

Leider nein :/
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Nächste

Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste

cron