mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-24 15:01:44 +01:00
Attempts to fix %player% command issue.
This commit is contained in:
parent
2319b56221
commit
2447957d15
@ -1,18 +1,8 @@
|
|||||||
package net.Indyuce.mmoitems.gui;
|
package net.Indyuce.mmoitems.gui;
|
||||||
|
|
||||||
import java.util.List;
|
import io.lumine.mythic.lib.MythicLib;
|
||||||
import java.util.UUID;
|
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||||
|
import io.lumine.mythic.lib.api.util.SmartGive;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.Inventory;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
import net.Indyuce.mmoitems.MMOItems;
|
import net.Indyuce.mmoitems.MMOItems;
|
||||||
import net.Indyuce.mmoitems.MMOUtils;
|
import net.Indyuce.mmoitems.MMOUtils;
|
||||||
import net.Indyuce.mmoitems.api.crafting.CraftingStation;
|
import net.Indyuce.mmoitems.api.crafting.CraftingStation;
|
||||||
@ -26,18 +16,24 @@ import net.Indyuce.mmoitems.api.crafting.recipe.CraftingRecipe;
|
|||||||
import net.Indyuce.mmoitems.api.crafting.recipe.Recipe;
|
import net.Indyuce.mmoitems.api.crafting.recipe.Recipe;
|
||||||
import net.Indyuce.mmoitems.api.event.PlayerUseCraftingStationEvent;
|
import net.Indyuce.mmoitems.api.event.PlayerUseCraftingStationEvent;
|
||||||
import net.Indyuce.mmoitems.api.item.util.ConfigItems;
|
import net.Indyuce.mmoitems.api.item.util.ConfigItems;
|
||||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
|
||||||
import net.Indyuce.mmoitems.api.util.message.Message;
|
import net.Indyuce.mmoitems.api.util.message.Message;
|
||||||
import net.Indyuce.mmoitems.listener.CustomSoundListener;
|
import net.Indyuce.mmoitems.listener.CustomSoundListener;
|
||||||
import io.lumine.mythic.lib.MythicLib;
|
import org.bukkit.Bukkit;
|
||||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
import org.bukkit.ChatColor;
|
||||||
import io.lumine.mythic.lib.api.util.SmartGive;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class CraftingStationView extends PluginInventory {
|
public class CraftingStationView extends PluginInventory {
|
||||||
private final CraftingStation station;
|
private final CraftingStation station;
|
||||||
private final Layout layout;
|
private final Layout layout;
|
||||||
private final PlayerData data;
|
|
||||||
|
|
||||||
private List<CheckedRecipe> recipes;
|
private List<CheckedRecipe> recipes;
|
||||||
private IngredientInventory ingredients;
|
private IngredientInventory ingredients;
|
||||||
|
|
||||||
@ -46,7 +42,6 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
public CraftingStationView(Player player, CraftingStation station, int page) {
|
public CraftingStationView(Player player, CraftingStation station, int page) {
|
||||||
super(player);
|
super(player);
|
||||||
|
|
||||||
this.data = PlayerData.get(player);
|
|
||||||
this.station = station;
|
this.station = station;
|
||||||
this.layout = station.getLayout();
|
this.layout = station.getLayout();
|
||||||
this.page = page;
|
this.page = page;
|
||||||
@ -60,7 +55,7 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
|
|
||||||
void updateData() {
|
void updateData() {
|
||||||
ingredients = new IngredientInventory(getPlayer());
|
ingredients = new IngredientInventory(getPlayer());
|
||||||
recipes = station.getAvailableRecipes(data, ingredients);
|
recipes = station.getAvailableRecipes(playerData, ingredients);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -83,7 +78,7 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
if (page > 1)
|
if (page > 1)
|
||||||
inv.setItem(layout.getRecipePreviousSlot(), ConfigItems.PREVIOUS_PAGE.getItem());
|
inv.setItem(layout.getRecipePreviousSlot(), ConfigItems.PREVIOUS_PAGE.getItem());
|
||||||
|
|
||||||
CraftingQueue queue = data.getCrafting().getQueue(station);
|
CraftingQueue queue = playerData.getCrafting().getQueue(station);
|
||||||
for (int j = queueOffset; j < queueOffset + layout.getQueueSlots().size(); j++) {
|
for (int j = queueOffset; j < queueOffset + layout.getQueueSlots().size(); j++) {
|
||||||
if (j >= queue.getCrafts().size()) {
|
if (j >= queue.getCrafts().size()) {
|
||||||
if (station.getItemOptions().hasNoQueueItem())
|
if (station.getItemOptions().hasNoQueueItem())
|
||||||
@ -131,7 +126,7 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void whenClicked(InventoryClickEvent event) {
|
public void whenClicked(InventoryClickEvent event) {
|
||||||
if (!data.isOnline())
|
if (!playerData.isOnline())
|
||||||
return;
|
return;
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
if (!MMOUtils.isMetaItem(event.getCurrentItem(), false))
|
if (!MMOUtils.isMetaItem(event.getCurrentItem(), false))
|
||||||
@ -177,7 +172,7 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
|
|
||||||
if (!(tag = item.getString("queueId")).equals("")) {
|
if (!(tag = item.getString("queueId")).equals("")) {
|
||||||
UUID uuid = UUID.fromString(tag);
|
UUID uuid = UUID.fromString(tag);
|
||||||
CraftingInfo recipeInfo = data.getCrafting().getQueue(station).getCraft(uuid);
|
CraftingInfo recipeInfo = playerData.getCrafting().getQueue(station).getCraft(uuid);
|
||||||
CraftingRecipe recipe = recipeInfo.getRecipe();
|
CraftingRecipe recipe = recipeInfo.getRecipe();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -185,14 +180,14 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
* to the player and remove the recipe from the queue
|
* to the player and remove the recipe from the queue
|
||||||
*/
|
*/
|
||||||
if (recipeInfo.isReady()) {
|
if (recipeInfo.isReady()) {
|
||||||
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(data, station, recipe,
|
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(playerData, station, recipe,
|
||||||
PlayerUseCraftingStationEvent.StationAction.CRAFTING_QUEUE);
|
PlayerUseCraftingStationEvent.StationAction.CRAFTING_QUEUE);
|
||||||
Bukkit.getPluginManager().callEvent(called);
|
Bukkit.getPluginManager().callEvent(called);
|
||||||
if (called.isCancelled())
|
if (called.isCancelled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
data.getCrafting().getQueue(station).remove(recipeInfo);
|
playerData.getCrafting().getQueue(station).remove(recipeInfo);
|
||||||
recipe.getTriggers().forEach(trigger -> trigger.whenCrafting(data));
|
recipe.getTriggers().forEach(trigger -> trigger.whenCrafting(playerData));
|
||||||
ItemStack craftedItem = recipe.getOutput().generate(playerData.getRPG());
|
ItemStack craftedItem = recipe.getOutput().generate(playerData.getRPG());
|
||||||
CustomSoundListener.stationCrafting(craftedItem, getPlayer());
|
CustomSoundListener.stationCrafting(craftedItem, getPlayer());
|
||||||
if (!recipe.hasOption(Recipe.RecipeOption.SILENT_CRAFT))
|
if (!recipe.hasOption(Recipe.RecipeOption.SILENT_CRAFT))
|
||||||
@ -205,13 +200,13 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
* ingredients back to the player
|
* ingredients back to the player
|
||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(data, station, recipe,
|
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(playerData, station, recipe,
|
||||||
PlayerUseCraftingStationEvent.StationAction.CANCEL_QUEUE);
|
PlayerUseCraftingStationEvent.StationAction.CANCEL_QUEUE);
|
||||||
Bukkit.getPluginManager().callEvent(called);
|
Bukkit.getPluginManager().callEvent(called);
|
||||||
if (called.isCancelled())
|
if (called.isCancelled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
data.getCrafting().getQueue(station).remove(recipeInfo);
|
playerData.getCrafting().getQueue(station).remove(recipeInfo);
|
||||||
getPlayer().playSound(getPlayer().getLocation(), station.getSound(), 1, 1);
|
getPlayer().playSound(getPlayer().getLocation(), station.getSound(), 1, 1);
|
||||||
for (Ingredient ingredient : recipeInfo.getRecipe().getIngredients())
|
for (Ingredient ingredient : recipeInfo.getRecipe().getIngredients())
|
||||||
new SmartGive(getPlayer()).give(ingredient.generateItemStack(playerData.getRPG()));
|
new SmartGive(getPlayer()).give(ingredient.generateItemStack(playerData.getRPG()));
|
||||||
@ -235,20 +230,20 @@ public class CraftingStationView extends PluginInventory {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!recipe.getRecipe().canUse(data, ingredients, recipe, station)) {
|
if (!recipe.getRecipe().canUse(playerData, ingredients, recipe, station)) {
|
||||||
updateData();
|
updateData();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(data, station, recipe,
|
PlayerUseCraftingStationEvent called = new PlayerUseCraftingStationEvent(playerData, station, recipe,
|
||||||
PlayerUseCraftingStationEvent.StationAction.INTERACT_WITH_RECIPE);
|
PlayerUseCraftingStationEvent.StationAction.INTERACT_WITH_RECIPE);
|
||||||
Bukkit.getPluginManager().callEvent(called);
|
Bukkit.getPluginManager().callEvent(called);
|
||||||
if (called.isCancelled())
|
if (called.isCancelled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
recipe.getRecipe().whenUsed(data, ingredients, recipe, station);
|
recipe.getRecipe().whenUsed(playerData, ingredients, recipe, station);
|
||||||
recipe.getIngredients().forEach(ingredient -> ingredient.getPlayerIngredient().reduceItem(ingredient.getIngredient().getAmount()));
|
recipe.getIngredients().forEach(ingredient -> ingredient.getPlayerIngredient().reduceItem(ingredient.getIngredient().getAmount()));
|
||||||
recipe.getConditions().forEach(condition -> condition.getCondition().whenCrafting(data));
|
recipe.getConditions().forEach(condition -> condition.getCondition().whenCrafting(playerData));
|
||||||
|
|
||||||
updateData();
|
updateData();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user