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:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user