9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2026-01-04 15:41:40 +00:00

Fixed reforging an item giving you the same reforge you started with

This commit is contained in:
Auxilor
2021-11-10 14:49:48 +00:00
parent 8fb79afe88
commit e131099f12
2 changed files with 24 additions and 2 deletions

View File

@@ -13,6 +13,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class ReforgeHandler extends PluginDependent<EcoPlugin> {
@@ -34,6 +35,8 @@ public class ReforgeHandler extends PluginDependent<EcoPlugin> {
return;
}
Reforge existingReforge = ReforgeUtils.getReforge(toReforge);
List<ReforgeTarget> target = ReforgeTarget.getForItem(toReforge);
Reforge reforge = null;
@@ -50,7 +53,11 @@ public class ReforgeHandler extends PluginDependent<EcoPlugin> {
}
if (reforge == null) {
reforge = ReforgeUtils.getRandomReforge(target);
List<Reforge> existing = new ArrayList<>();
if (existingReforge != null) {
existing.add(existingReforge);
}
reforge = ReforgeUtils.getRandomReforge(target, existing);
}
if (reforge == null) {

View File

@@ -45,9 +45,22 @@ public class ReforgeUtils {
/**
* Get a random reforge for a target.
*
* @param targets The targets.
* @param targets The targets.
*/
@Nullable
public static Reforge getRandomReforge(@NotNull final Collection<ReforgeTarget> targets) {
return getRandomReforge(targets, Collections.emptyList());
}
/**
* Get a random reforge for a target.
*
* @param targets The targets.
* @param disallowed The disallowed reforges.
*/
@Nullable
public static Reforge getRandomReforge(@NotNull final Collection<ReforgeTarget> targets,
@NotNull final Collection<Reforge> disallowed) {
List<Reforge> applicable = new ArrayList<>();
for (Reforge reforge : Reforges.values()) {
@@ -60,6 +73,8 @@ public class ReforgeUtils {
Collections.shuffle(applicable);
applicable.removeAll(disallowed);
if (applicable.isEmpty()) {
return null;
}