|
You last visited: Today at 05:40
Advertisement
Probleme bei meinem PvP Plugin.
Discussion on Probleme bei meinem PvP Plugin. within the Minecraft forum part of the Other Online Games category.
07/24/2013, 18:24
|
#1
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
Probleme bei meinem PvP Plugin.
Hey,
ich arbeite zur Zeit an einem PvP Plugin und ich mache grade das Größte Teil vom Plugin und zwar den Shop Ich sende euch mal die EventHandler die ich habe:
Code:
@EventHandler
public void onSignKlick(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Player p = event.getPlayer();
BlockState bs = event.getClickedBlock().getState();
if (bs instanceof Sign) {
Sign sign = (Sign) bs;
if(sign.getLine(1).equalsIgnoreCase("Item Shop")){
Inventory inv = Bukkit.createInventory(null, 9, "PvP - ItemShop");
p.openInventory(inv);
//Shop Items
ItemStack schwert = new ItemStack(Material.DIAMOND_SWORD, 1);
ItemMeta schwertMeta = schwert.getItemMeta();
schwertMeta.setDisplayName(ChatColor.AQUA + "Schwerter");
schwert.setItemMeta(schwertMeta);
//Leder Rüstung
ItemStack leather = new ItemStack(Material.LEATHER_CHESTPLATE, 1);
ItemMeta lederMeta = leather.getItemMeta();
lederMeta.setDisplayName(ChatColor.BOLD + "Leder Rüstung");
leather.setItemMeta(lederMeta);
//Ketten Rüstung
ItemStack chain = new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1);
ItemMeta kettenMeta = chain.getItemMeta();
kettenMeta.setDisplayName(ChatColor.BOLD + "Ketten Rüstung");
chain.setItemMeta(kettenMeta);
//Eisen Rüstung
ItemStack iron = new ItemStack(Material.IRON_CHESTPLATE, 1);
ItemMeta ironMeta = iron.getItemMeta();
ironMeta.setDisplayName(ChatColor.BOLD + "Eisen Rüstung");
iron.setItemMeta(ironMeta);
//Portions
ItemStack potion = new ItemStack(Material.POTION, 1);
ItemMeta potionMeta = potion.getItemMeta();
potionMeta.setDisplayName(ChatColor.DARK_PURPLE + "Tränke");
potion.setItemMeta(potionMeta);
//Items in den Inventory:
inv.setItem(1, schwert);
inv.setItem(2, leather);
inv.setItem(3, chain);
inv.setItem(4, iron);
inv.setItem(5, potion);
p.openInventory(inv);
}
if(sign.getLine(1).equalsIgnoreCase("Random Teleport")){
World welt = p.getWorld();
Location loc1 = new Location(welt, -156, 66, 441);
Location loc2 = new Location(welt, -156, 66, 442);
Location loc3 = new Location(welt, -156, 66, 443);
Location loc4 = new Location(welt, -156, 66, 444);
Random rnd = new Random();
int zufallszahl = rnd.nextInt(3);
Location loc = null;
switch(zufallszahl){
case 0:
loc = loc1;
break;
case 1:
loc = loc2;
break;
case 2:
loc = loc3;
break;
case 3:
loc = loc4;
}
p.teleport(loc);
}
}
}
}
@EventHandler
public void onInventory(InventoryClickEvent e) {
Player p = (Player)e.getWhoClicked();
Inventory schwerter = Bukkit.createInventory(null, 9 , "PvP - Schwerter");
Inventory leder = Bukkit.createInventory(null, 9, "PvP - Leder Rüstung");
Inventory ketten = Bukkit.createInventory(null, 9, "PvP - Ketten Rüstung");
Inventory eisen = Bukkit.createInventory(null, 9, "PvP - Eisen Rüsung");
Inventory trank = Bukkit.createInventory(null, 9, "PvP - Tränke");
if(e.getInventory().getName().equalsIgnoreCase("PvP - ItemShop")) {
//Haupt Shop
if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD) {
p.openInventory(schwerter);
p.closeInventory(p.get);
} else if(e.getCurrentItem().getType() == Material.LEATHER_CHESTPLATE) {
p.openInventory(leder);
} else if(e.getCurrentItem().getType() == Material.CHAINMAIL_CHESTPLATE) {
p.openInventory(ketten);
} else if(e.getCurrentItem().getType() == Material.IRON_CHESTPLATE) {
p.openInventory(eisen);
} else if(e.getCurrentItem().getType() == Material.POTION) {
p.openInventory(trank);
}
//Schwerter Shop
schwerter.setItem(2, new ItemStack(Material.WOOD_SWORD));
schwerter.setItem(3, new ItemStack(Material.GOLD_SWORD));
schwerter.setItem(4, new ItemStack(Material.STONE_SWORD));
schwerter.setItem(5, new ItemStack(Material.IRON_SWORD));
schwerter.setItem(5, new ItemStack(Material.IRON_SWORD,1));
schwerter.setItem(6, new ItemStack(Material.DIAMOND_SWORD,1));
schwerter.setItem(7, new ItemStack(Material.DIAMOND_SWORD));
//Leder Shop
leder.setItem(2, new ItemStack(Material.LEATHER_HELMET));
leder.setItem(3, new ItemStack(Material.LEATHER_CHESTPLATE));
leder.setItem(4, new ItemStack(Material.LEATHER_LEGGINGS));
leder.setItem(5, new ItemStack(Material.LEATHER_BOOTS));
//Ketten Shop
ketten.setItem(2, new ItemStack(Material.CHAINMAIL_HELMET));
ketten.setItem(3, new ItemStack(Material.CHAINMAIL_CHESTPLATE));
ketten.setItem(4, new ItemStack(Material.CHAINMAIL_LEGGINGS));
ketten.setItem(5, new ItemStack(Material.CHAINMAIL_BOOTS));
//Eisen Shop
eisen.setItem(2, new ItemStack(Material.IRON_HELMET));
eisen.setItem(3, new ItemStack(Material.IRON_CHESTPLATE));
eisen.setItem(4, new ItemStack(Material.IRON_LEGGINGS));
eisen.setItem(5, new ItemStack(Material.IRON_BOOTS));
//Potion Shop
trank.setItem(2, new ItemStack(373,(short) 16385));
trank.setItem(3, new ItemStack(373,(short) 16389));
trank.setItem(4, new ItemStack(373,(short) 16458));
trank.setItem(5, new ItemStack(373,(short) 8201));
trank.setItem(6, new ItemStack(373,(short) 16396));
}
p.closeInventory();
}
}
Das mit dem Random Teleport müsst ihr nicht beachten. Der Fehler ist wenn ich Rechtsklick auf ein Schild mache mit dem Item Shop Öffnet sich der Shop und die Items aber wenn ich auf eines der Items klicke passiert nichts auser wenn ich auf Diamant Schwert klicke dann schließt sich das Fenster wieder...
Wo liegt der Fehler und Schudldigung wenn es so unübersichtlist ist ich wusste keine andere Möglichkeit es kleiner zu machen und die Item Meta in eine andere Klasse zu machen...wenn einer da och eine Idee hat kann er mich anschreiben.
|
|
|
07/24/2013, 19:48
|
#2
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
Code:
if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD) {
p.openInventory(schwerter);
p.closeInventory(p.get);
} else if(e.getCurrentItem().getType() == Material.LEATHER_CHESTPLATE) {
p.openInventory(leder);
} else if(e.getCurrentItem().getType() == Material.CHAINMAIL_CHESTPLATE) {
p.openInventory(ketten);
} else if(e.getCurrentItem().getType() == Material.IRON_CHESTPLATE) {
p.openInventory(eisen);
} else if(e.getCurrentItem().getType() == Material.POTION) {
p.openInventory(trank);
}
Ist doch selbstverständlich: Du hast nur bei dem Schwert
Code:
p.closeInventory(p.get);
eingetragen, du musst es bei jedem machen
|
|
|
07/24/2013, 22:48
|
#3
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
das soll aber nicht passieren es soll sich das neue inv öffnen!
|
|
|
07/24/2013, 22:57
|
#4
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
probier mal, das alte Inventar zu schließen
Code:
p.closeInventory(p.get);
und dann erst das neue zu öffnen
Code:
p.openInventory(leder);
|
|
|
07/24/2013, 23:08
|
#5
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
ok danke! !! aber inv wird als ein Fehler angezeigt!
|
|
|
07/24/2013, 23:12
|
#6
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
p.closeInventory(p.get);
|
|
|
07/24/2013, 23:14
|
#7
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
ok
Das klapt nicht wird als Fehler angezeigt
|
|
|
07/24/2013, 23:22
|
#8
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
Welcher Fehler kommt denn? Weil, es klappt ja bei dem Schwert mit p.get ..
Und definier mal die ganzen Items, bevor du das Inventar öffnest.
|
|
|
07/24/2013, 23:35
|
#9
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
Ich habe dort nur angefangen damit...ich habe das nicht zuende geschrieben ich glaube du verstehst es nicht! ein Klick auf das Item soll ein neues Inventar öffnen!
|
|
|
07/25/2013, 00:44
|
#10
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
|
Vielleicht übersehe ich grade was, aber aufjedenfall bin ich grade nicht in der Lage zu erkennen, wie "p.closeInventory(p.get)" zustande kommt ...
Ihr könnt mir das ja mal erklären, vielleicht verstehe ich dann das Problem:
1. Was ist "p.get"?
2. Warum nimmt "closeInventory" eine Parameter entgegen? Der auch noch vom Typ ... (??? was ist p.get ?) ist.
Ich hätte ich jetzt einfach gesagt, dass es komplett falsch ist, aber ihr Beide benutzt da so selbstverständlich ...
Ich würde es so sehen:
Code:
p.closeInventory(p.get); // falsch, sollte sogar einen Error beim kompilieren geben
p.closeInventory(); // richtig
Aber wie gesagt, ich lasse mich auch gerne von der Richtigkeit überzeugen.
Edit:
Ansonsten würde ich erstmal Kante' zustimmen, erst das Alte schließen und dann das neue öffnen. Außerdem sollte das close am Ende der Methode weg, sonst ist das Inventar ja sofort wieder geschlossen.
|
|
|
07/25/2013, 00:47
|
#11
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
Welcher Fehler kommt denn jetzt?!
--------
Es ist mir klar, aber wenn es doch bei dem Schwert klappt, dann müsst es auch bei den anderen unteren klappen, ich kann dir aber nicht mehr weiterhelfen, wenn du mir nicht die Frage beantwortest.
Edit: Ich kann mir eigentlich auch nicht vorstellen, dass es bei p.get klappt, aber wenn es ja klappt, dann müsst es ja so auch bei den anderen klappen.
|
|
|
07/25/2013, 03:18
|
#12
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
Also ich war grade dabei etwas zu schreiben und da habe ich das bei p.get gelassen danach habe ich diesen Thread hier eröffnet und habe vergessen das p.get raus zu tun
|
|
|
07/25/2013, 10:05
|
#13
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
|
Du solltest uns schon sagen was passiert, so können wir schlecht helfen ...
1. Was passiert zurzeit? Inventar 1 auf/zu/nichts, Inventar 2-5 auf/zu/nichts ... ?
2. Tritt ein Fehler auf? Wenn ja, welcher? Wo und Wann kommt er?
|
|
|
07/25/2013, 17:07
|
#14
|
elite*gold: 0
Join Date: Mar 2013
Posts: 297
Received Thanks: 7
|
Ich habe das eigentlich schon mal erklärt aber mache dies gerne noch mal.
Wenn ich auf das Schild mit "Item Shop" Rechtsklicke kommt ein neues Fenster (Ein neues Inventar) mit den Items die ich festgelegt habe. Nun wenn ich auf eines der Items klicke sollte sich ein neues Inventar öffnen aber das passiert nicht das ist das Problem es tretten aber keine Fehler auf! Keine in der Konsole und auch nicht beim Kompilieren!
Könnt ihr mit diesen Informationen etwas anfangen ?
MfG
|
|
|
07/25/2013, 17:23
|
#15
|
elite*gold: 135
Join Date: May 2011
Posts: 1,511
Received Thanks: 255
|
Quote:
Originally Posted by SBotDE
Ich habe das eigentlich schon mal erklärt aber mache dies gerne noch mal.
Wenn ich auf das Schild mit "Item Shop" Rechtsklicke kommt ein neues Fenster (Ein neues Inventar) mit den Items die ich festgelegt habe. Nun wenn ich auf eines der Items klicke sollte sich ein neues Inventar öffnen aber das passiert nicht das ist das Problem es tretten aber keine Fehler auf! Keine in der Konsole und auch nicht beim Kompilieren!
Könnt ihr mit diesen Informationen etwas anfangen ?
MfG
|
Code:
if(e.getInventory().getName().equalsIgnoreCase("PvP - ItemShop")) {
//Haupt Shop
if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD) {
p.closeInventory();
p.openInventory(schwerter);
} else if(e.getCurrentItem().getType() == Material.LEATHER_CHESTPLATE) {
p.closeInventory();
p.openInventory(leder);
} else if(e.getCurrentItem().getType() == Material.CHAINMAIL_CHESTPLATE) {
p.closeInventory();
p.openInventory(ketten);
} else if(e.getCurrentItem().getType() == Material.IRON_CHESTPLATE) {
p.closeInventory();
p.openInventory(eisen);
} else if(e.getCurrentItem().getType() == Material.POTION) {
p.closeInventory();
p.openInventory(trank);
}
Hast du das mittlerweile mal probiert?
|
|
|
 |
|
Similar Threads
|
Problem bei meinem Bukkit Plugin
06/06/2013 - Minecraft - 1 Replies
WICHTIG:
Ich weiss nicht ob ich hier richtig bin, wenn nicht verschiebt mich bitte dahin wo es richtig ist!!!
Ich wollte eben ein Plugin programmieren bei dem man mit Rechtsklick mit einer Feder unsichtbar wird. Aber Eclipse zeigt immer Fehler an und ich weiss nicht woran das liegt...
Hier der Code:
package me.lachgummi978.test;
import java.awt.Desktop.Action;
import net.minecraft.server.v1_5_R3.ItemStack;
|
[Bukkit] Fehlermeldung bei meinem Plugin
03/13/2013 - Minecraft - 5 Replies
Folgende Fehlermeldung kommt, wenn ich den Server starte:
2013-03-13 19:47:58 Error occurred while enabling witzcraftBAN v1.0 (Is it up to date?)
java.lang.NullPointerException
at de.sandor.witzcraft.commands.CommandBAN.<init&g t;(CommandBAN.java:27)
at de.sandor.witzcraft.Witzcraft.onEnable(Witzcraft.j ava:17)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaP lugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlug in(JavaPluginLoader.java:457)
at...
|
[Bukkit] Fehlermeldung bei meinem Plugin
01/14/2013 - Minecraft - 4 Replies
Hii,
wenn ich mein Plugin auf den Server laden und ihn starte kommt diese Fehlermeldung.
2013-01-14 16:43:13 Could not load 'plugins/witzcraftJOIN.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: de/sandor/witzcraft/witzcraft : Unsupported major.minor version 51.0
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin (JavaPluginLoader.java:184)
at org.bukkit.plugin.SimplePluginManager.loadPlugin(S implePluginManager.java:305)...
|
[Bukkit] Fehlermeldung bei meinem Plugin
01/03/2013 - Minecraft - 4 Replies
Hii,
wenn ich mein Server starte, kommt direkt eine Fehlermeldung von meinem Plugin. Kann mir vielleicht jemand sagen, woran das liegen könnte.
|
Probleme mit meinem Bot
12/18/2010 - Browsergames - 2 Replies
Ich hab ein Problem. Wenn ich meinen UDOBot starten will, steht gleich danach: A newer version of UDOBot is avaible! Current version: 3.0.2 Newer version: 0.0.0 Aber bei mir ist schon längst die neue Version installiert. Kann mir jemand helfen?
|
All times are GMT +1. The time now is 05:40.
|
|