Kit Crates will now only give one item at a time.

This commit is contained in:
Brianna O'Keefe 2019-01-31 20:30:49 -05:00
parent dc7ce1b0ad
commit 2ead1ef2e9
2 changed files with 6 additions and 10 deletions

View File

@ -279,8 +279,7 @@ public class Kit {
int amt = innerContents.size();
int amtToGive = key == null ? amt : key.getAmt();
if (amt != amtToGive)
if (amt != amtToGive || kitAnimation != KitAnimation.NONE)
Collections.shuffle(innerContents);
for (int i = 0; i < innerContents.size(); i ++) {
@ -312,8 +311,8 @@ public class Kit {
amtToGive--;
if (kitAnimation != KitAnimation.NONE) {
final CrateAnimateTask cTask = new CrateAnimateTask(plugin, player, this, item.getItem(), i == (innerContents.size() - 1));
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, cTask::start, 140 * i);
new CrateAnimateTask(plugin, player, this, item.getItem());
return;
} else {
Map<Integer, ItemStack> overfilled = player.getInventory().addItem(item.getItem());
for (ItemStack item2 : overfilled.values()) {

View File

@ -33,16 +33,14 @@ public class CrateAnimateTask extends BukkitRunnable {
private boolean slow = false;
private boolean finish = false;
private boolean done = false;
private boolean last;
private int num = 0;
private Listener listener;
public CrateAnimateTask(UltimateKits plugin, Player player, Kit kit, ItemStack give, boolean last) {
public CrateAnimateTask(UltimateKits plugin, Player player, Kit kit, ItemStack give) {
this.plugin = plugin;
this.player = player;
this.give = give;
this.last = last;
this.inventory = Bukkit.createInventory(null, 27, TextComponent.formatText(kit.getShowableName()));
List<KitItem> items = kit.getContents();
@ -65,9 +63,10 @@ public class CrateAnimateTask extends BukkitRunnable {
};
Bukkit.getPluginManager().registerEvents(listener, UltimateKits.getInstance());
start();
}
public void start() {
private void start() {
if (instance == null) instance = this;
instance.runTaskTimer(plugin, 0, 3);
@ -130,9 +129,7 @@ public class CrateAnimateTask extends BukkitRunnable {
private void finish() {
instance.cancel();
HandlerList.unregisterAll(listener);
if (last) {
listener = null;
player.closeInventory();
}
}
}