mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 10:43:14 +00:00
Rarity stuffs
This commit is contained in:
parent
39b7563d3a
commit
7f3b7df710
@ -1,6 +1,7 @@
|
||||
package com.volmit.iris.command;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.volmit.iris.object;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.Damageable;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
@ -56,6 +57,35 @@ public class IrisLoot
|
||||
@Desc("Maximum durability percent")
|
||||
private double maxDurability = 1;
|
||||
|
||||
@MinNumber(1)
|
||||
@MaxNumber(10)
|
||||
@DontObfuscate
|
||||
@Desc("Minimum Enchantment level")
|
||||
private int minEnchantLevel = 1;
|
||||
|
||||
@MinNumber(1)
|
||||
@MaxNumber(10)
|
||||
@DontObfuscate
|
||||
@Desc("Maximum Enchantment level")
|
||||
private int maxEnchantLevel = 1;
|
||||
|
||||
@MinNumber(0)
|
||||
@MaxNumber(10)
|
||||
@DontObfuscate
|
||||
@Desc("Minimum Enchantmentments")
|
||||
private int minEnchants = 0;
|
||||
|
||||
@MinNumber(0)
|
||||
@MaxNumber(10)
|
||||
@DontObfuscate
|
||||
@Desc("Maximum Enchantmentments")
|
||||
private int maxEnchants = 0;
|
||||
|
||||
@MinNumber(1)
|
||||
@DontObfuscate
|
||||
@Desc("The chance for every attempt to add an enchantment 1 in X")
|
||||
private int enchantmentRarity = 4;
|
||||
|
||||
@Required
|
||||
@Desc("This is the item or block type. Does not accept minecraft:*. Only materials such as DIAMOND_SWORD or DIRT.")
|
||||
private String type = "";
|
||||
@ -94,11 +124,35 @@ public class IrisLoot
|
||||
{
|
||||
Damageable d = (Damageable) m;
|
||||
int max = getType().getMaxDurability();
|
||||
d.setDamage((int) Math.round(Math.max(0, Math.min(max, rng.d(getMinDurability(), getMaxDurability()) * max))));
|
||||
d.setDamage((int) Math.round(Math.max(0, Math.min(max, (1D - rng.d(getMinDurability(), getMaxDurability())) * max))));
|
||||
}
|
||||
|
||||
KList<String> lore = new KList<>();
|
||||
|
||||
if(minEnchants > 0 || maxEnchants > 0)
|
||||
{
|
||||
KList<Enchantment> c = new KList<Enchantment>(Enchantment.values());
|
||||
|
||||
for(int i = minEnchants; i < maxEnchants; i++)
|
||||
{
|
||||
if(rng.i(1, enchantmentRarity) == 1)
|
||||
{
|
||||
Enchantment e = c.get(rng.nextInt(c.size()));
|
||||
|
||||
for(int ggh = 0; ggh < 8; ggh++)
|
||||
{
|
||||
if(e.canEnchantItem(is))
|
||||
{
|
||||
m.addEnchant(e, rng.i(getMinEnchantLevel(), getMaxEnchantLevel()), false);
|
||||
break;
|
||||
}
|
||||
|
||||
e = c.get(rng.nextInt(c.size()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(debug)
|
||||
{
|
||||
lore.add("From Table: " + table.getName() + " (" + Form.pc(1D / table.getRarity(), 5) + ")");
|
||||
|
Loading…
x
Reference in New Issue
Block a user