Merge branch 'development'

This commit is contained in:
Brianna 2019-10-20 11:33:57 -04:00
commit 506b510397
4 changed files with 30 additions and 25 deletions

View File

@ -4,7 +4,7 @@ stages:
variables:
name: "UltimateKits"
path: "/builds/$CI_PROJECT_PATH"
version: "2.4.4"
version: "2.4.5"
build:
stage: build

View File

@ -62,6 +62,8 @@ public class UltimateKits extends SongodaPlugin {
private DataMigrationManager dataMigrationManager;
private DataManager dataManager;
private boolean loaded = false;
/**
* Grab instance of UltimateKits
*
@ -268,6 +270,7 @@ public class UltimateKits extends SongodaPlugin {
keyManager.addKey(key);
}
}
this.loaded = true;
}, 10);
}
@ -388,6 +391,7 @@ public class UltimateKits extends SongodaPlugin {
* Saves registered kits to file.
*/
public void saveKits() {
if (!loaded) return;
// Hot fix for kit file resets.
if (kitConfig.contains("Kits"))

View File

@ -3,7 +3,6 @@ package com.songoda.ultimatekits.key;
import com.songoda.core.utils.TextUtils;
import com.songoda.ultimatekits.UltimateKits;
import com.songoda.ultimatekits.kit.Kit;
import com.songoda.ultimatekits.utils.Methods;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
@ -19,14 +18,14 @@ public class Key {
private String name;
// The amount of items this key will give you. -1 is all;
private int amt;
private int amount;
// The amount of kit given when the key is used.
private int kitAmount;
public Key(String name, int amt, int kitAmount) {
public Key(String name, int amount, int kitAmount) {
this.name = name;
this.amt = amt;
this.amount = amount;
this.kitAmount = kitAmount;
}
@ -58,7 +57,7 @@ public class Key {
desc1 = desc1.replace("[", "").replace("]", "");
lore.add(desc1);
if (this.amt == -1)
if (this.amount == -1)
lore.add(plugin.getLocale().getMessage("interface.key.description2").getMessage());
else
lore.add(plugin.getLocale().getMessage("interface.key.description3").getMessage());
@ -77,8 +76,8 @@ public class Key {
return name;
}
public int getAmt() {
return amt;
public int getAmount() {
return amount;
}
public int getKitAmount() {

View File

@ -115,9 +115,8 @@ public class Kit {
plugin.getLocale().getMessage("event.key.success")
.processPlaceholder("kit", showableName).sendPrefixedMessage(player);
if (player.getInventory().getItemInHand().getAmount() != 1) {
ItemStack is = item;
is.setAmount(is.getAmount() - 1);
player.setItemInHand(is);
item.setAmount(item.getAmount() - 1);
player.setItemInHand(item);
} else {
player.setItemInHand(null);
}
@ -267,19 +266,22 @@ public class Kit {
CompatibleSound.ENTITY_PLAYER_LEVELUP.play(player, 0.6F, 15.0F);
List<KitItem> innerContents = new ArrayList<>(getContents());
int amt = innerContents.size();
int amtToGive = key == null ? amt : key.getAmt();
int kitSize = innerContents.size();
// Amount of items from the kit to give to the player.
int itemGiveAmount = key == null ? kitSize : key.getAmount();
if (itemGiveAmount == -1) itemGiveAmount = kitSize;
if (key != null) itemGiveAmount = itemGiveAmount * key.getKitAmount();
if (amt != amtToGive || kitAnimation != KitAnimation.NONE)
Collections.shuffle(innerContents);
return generateRandomItem(innerContents, amtToGive, player, -1);
return generateRandomItem(innerContents, itemGiveAmount, player, -1);
}
private boolean generateRandomItem(List<KitItem> innerContents, int amtToGive, Player player, int forceSelect) {
private boolean generateRandomItem(List<KitItem> innerContents, int itemGiveAmount, Player player, int forceSelect) {
if (getContents().size() != itemGiveAmount || kitAnimation != KitAnimation.NONE)
Collections.shuffle(innerContents);
int canChoose = 0;
for (KitItem item : innerContents) {
if (amtToGive == 0) break;
if (itemGiveAmount == 0) break;
int ch = canChoose++ == forceSelect || item.getChance() == 0 ? 100 : item.getChance();
double rand = Math.random() * 100;
if (rand < ch || ch == 100) {
@ -293,13 +295,13 @@ public class Kit {
} catch (NumberFormatException ex) {
ex.printStackTrace();
}
amtToGive--;
itemGiveAmount--;
continue;
} else if (item.getContent() instanceof KitContentCommand) {
String parsed = ((KitContentCommand) item.getContent()).getCommand();
parsed = parsed.replace("{player}", player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), parsed);
amtToGive--;
itemGiveAmount--;
continue;
}
@ -318,7 +320,7 @@ public class Kit {
if (parseStack.getType() == Material.AIR) continue;
amtToGive--;
itemGiveAmount--;
if (kitAnimation != KitAnimation.NONE) {
// TODO: this is a very bad way to solve this problem.
@ -336,9 +338,9 @@ public class Kit {
}
}
if (amtToGive != 0 && canChoose != 0 && forceSelect == -1) {
return generateRandomItem(innerContents, amtToGive, player, (int) (Math.random() * canChoose));
} else if (amtToGive != 0) {
if (itemGiveAmount != 0 && canChoose != 0 && forceSelect == -1) {
return generateRandomItem(innerContents, itemGiveAmount, player, (int) (Math.random() * canChoose));
} else if (itemGiveAmount != 0) {
return false;
}