Adds most of the code necessary for #11
This commit is contained in:
@ -12,6 +12,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.Damageable;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
@ -32,6 +33,7 @@ public class ReforgeSession implements Runnable {
|
||||
private final NPC npc;
|
||||
private final ItemStack itemToReforge;
|
||||
private int taskId;
|
||||
private long finishTime = 0;
|
||||
private final NPCSettings config;
|
||||
private static final String[] enchantments = new String[Enchantment.values().length];
|
||||
private static final Random random = new Random();
|
||||
@ -48,15 +50,27 @@ public class ReforgeSession implements Runnable {
|
||||
this.blacksmithTrait = blacksmithTrait;
|
||||
this.player = player;
|
||||
this.npc = npc;
|
||||
itemToReforge = player.getInventory().getItemInMainHand();
|
||||
this.itemToReforge = player.getInventory().getItemInMainHand();
|
||||
this.config = config;
|
||||
|
||||
int i = 0;
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
enchantments[i++] = enchantment.getKey().toString();
|
||||
//Populate enchantments the first time this is run
|
||||
if (enchantments[0] == null) {
|
||||
int i = 0;
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
enchantments[i++] = enchantment.getKey().toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the time in milliseconds when this reforging session will finish
|
||||
*
|
||||
* @return <p>The time the reforging will finish</p>
|
||||
*/
|
||||
public long getFinishTime() {
|
||||
return this.finishTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the actual reforge which fixes the item and gives it back to the player
|
||||
*/
|
||||
@ -237,16 +251,17 @@ public class ReforgeSession implements Runnable {
|
||||
* Begins the actual item reforging
|
||||
*/
|
||||
public void beginReforge() {
|
||||
BukkitScheduler scheduler = BlacksmithPlugin.getInstance().getServer().getScheduler();
|
||||
int reforgeDelay;
|
||||
if (!config.getDisableCoolDown()) {
|
||||
//Finish the reforging after a random delay between the max and min
|
||||
taskId = BlacksmithPlugin.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(
|
||||
BlacksmithPlugin.getInstance(), this, (new Random().nextInt(config.getMaxReforgeDelay()) +
|
||||
config.getMinReforgeDelay()) * 20L);
|
||||
reforgeDelay = new Random().nextInt(config.getMaxReforgeDelay()) + config.getMinReforgeDelay();
|
||||
} else {
|
||||
//Finish the reforging as soon as possible
|
||||
taskId = BlacksmithPlugin.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(
|
||||
BlacksmithPlugin.getInstance(), this, 0);
|
||||
reforgeDelay = 0;
|
||||
}
|
||||
this.finishTime = System.currentTimeMillis() + (reforgeDelay * 1000L);
|
||||
taskId = scheduler.scheduleSyncDelayedTask(BlacksmithPlugin.getInstance(), this, reforgeDelay * 20L);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user