Hallo bei meinem erstellten Command:
Es ist nur so das er Mehrfach hinzugefügt wird bei allen Tools die ich im Array festgelegt habe.
Habe dazu mal ein Gif gemacht für das Result:
Das rechte item wurde mittels /give command erstellt.
Die Anderen beiden durch /randomitems.
Ich habe also versucht den Standardschaden der Schaufel von 3.5 auf 10 zu erhöhen.
Was nicht ganz funktionierte.
Das item wird Zwar generiert und teilt auch den Angezeigten Schaden aus.
Aber die Lore etc hat zuviele infos:
Es dürfte eigentlich nur dastehen:
When in Main hand:
+10 Attack Damage
Habe ich ein Problem der Angriffschaden den ich modifiziere stimmt sofern ich das seh.import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;
import org.bukkit.Material;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class Command_RandomItem implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
// TODO Auto-generated method stub
if(sender instanceof Player) {
Player p = (Player) sender;
if (args.length == 0) {
String[] Mats = {
"IRON_SHOVEL",
"IRON_PICKAXE",
"IRON_AXE",
"FLINT_AND_STEEL",
"BOW",
"WOODEN_SHOVEL",
"WOODEN_PICKAXE",
"WOODEN_AXE",
"STONE_SHOVEL",
"STONE_PICKAXE",
"STONE_AXE",
"DIAMOND_SHOVEL",
"DIAMOND_PICKAXE",
"DIAMOND_AXE",
"GOLDEN_SHOVEL",
"GOLDEN_PICKAXE",
"GOLDEN_AXE",
"STONE_HOE",
"IRON_HOE",
"DIAMOND_HOE",
"LEGACY_WOOD_HOE",
"COMPASS",
"FISHING_ROD",
"CLOCK",
"FILLED_MAP",
"SHEARS",
"MAP",
"CARROT_ON_A_STICK",
"LEAD",
"TOTEM_OF_UNDYING",
"SHULKER_SHELL",
"IRON_NUGGET",
"GRINDSTONE",
"STONECUTTER",
"BELL",
"LANTERN",
"NETHERITE_SHOVEL",
"NETHERITE_PICKAXE",
"NETHERITE_AXE",
"NETHERITE_HOE",
"WARPED_FUNGUS_ON_A_STICK",
"SOUL_LANTERN",
"SOUL_CAMPFIRE",
"SPYGLASS"
};
int min = 0;
int max = Mats.length - 1;
int id = ThreadLocalRandom.current().nextInt(min, max);
System.out.println((int)(Math.random() * ((max - min) + 1)) + min);
System.out.println("the max contents of the materials array are: " + max);
p.sendMessage("You are about to be given a tool: " + Mats[id]);
String itemid = Mats[id];
p.sendMessage("the ItemID is: " + itemid);
ItemStack itemdb = new ItemStack(Material.valueOf(itemid));
ItemMeta meta = itemdb.getItemMeta();
String[] text = {
"The New Item",
"The Other Item",
"The Nice Item",
"The Bad Item."
};
int textmin = 0;
int textmax = text.length - 1;
int textid = ThreadLocalRandom.current().nextInt(textmin, textmax);
String loretext = text[textid];
ArrayList<String> lore = new ArrayList<>();
lore.add(loretext);
meta.setLore(lore);
meta.addEnchant(Enchantment.DURABILITY, 2, true);
meta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, new AttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE.toString(), 10, AttributeModifier.Operation.ADD_NUMBER));
itemdb.setItemMeta(meta);
p.getInventory().addItem(itemdb);
p.sendMessage("You get: " + itemid);
} else {
p.sendMessage("wrong syntax!");
}
}
return true;
}
}
Es ist nur so das er Mehrfach hinzugefügt wird bei allen Tools die ich im Array festgelegt habe.
Habe dazu mal ein Gif gemacht für das Result:
Das rechte item wurde mittels /give command erstellt.
Die Anderen beiden durch /randomitems.
Ich habe also versucht den Standardschaden der Schaufel von 3.5 auf 10 zu erhöhen.
Was nicht ganz funktionierte.
Das item wird Zwar generiert und teilt auch den Angezeigten Schaden aus.
Aber die Lore etc hat zuviele infos:
Es dürfte eigentlich nur dastehen:
When in Main hand:
+10 Attack Damage
Zuletzt bearbeitet: