mirror of
https://github.com/Xiao-MoMi/Custom-Fishing.git
synced 2026-01-04 15:41:35 +00:00
fix fishing bag
This commit is contained in:
@@ -158,7 +158,8 @@ public class CustomFishingPluginImpl extends CustomFishingPlugin {
|
||||
((StatisticsManagerImpl) this.statisticsManager).load();
|
||||
((PlaceholderManagerImpl) this.placeholderManager).unload();
|
||||
((PlaceholderManagerImpl) this.placeholderManager).load();
|
||||
this.commandManager.loadCommands();
|
||||
this.commandManager.unload();
|
||||
this.commandManager.load();
|
||||
}
|
||||
|
||||
private void loadDependencies() {
|
||||
|
||||
@@ -17,18 +17,17 @@
|
||||
|
||||
package net.momirealms.customfishing.command;
|
||||
|
||||
import dev.jorel.commandapi.CommandAPI;
|
||||
import dev.jorel.commandapi.CommandAPIBukkitConfig;
|
||||
import dev.jorel.commandapi.CommandAPICommand;
|
||||
import dev.jorel.commandapi.CommandPermission;
|
||||
import dev.jorel.commandapi.*;
|
||||
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
|
||||
import net.momirealms.customfishing.CustomFishingPluginImpl;
|
||||
import net.momirealms.customfishing.adventure.AdventureManagerImpl;
|
||||
import net.momirealms.customfishing.api.CustomFishingPlugin;
|
||||
import net.momirealms.customfishing.api.manager.CommandManager;
|
||||
import net.momirealms.customfishing.api.util.LogUtils;
|
||||
import net.momirealms.customfishing.command.sub.*;
|
||||
import net.momirealms.customfishing.setting.Locale;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@@ -42,7 +41,7 @@ public class CommandManagerImpl implements CommandManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCommands() {
|
||||
public void load() {
|
||||
new CommandAPICommand("customfishing")
|
||||
.withAliases("cfishing")
|
||||
.withPermission(CommandPermission.OP)
|
||||
@@ -57,18 +56,25 @@ public class CommandManagerImpl implements CommandManager {
|
||||
)
|
||||
.register();
|
||||
|
||||
new CommandAPICommand("sellfish")
|
||||
.withPermission("customfishing.sellfish")
|
||||
.executesPlayer((player, args) -> {
|
||||
plugin.getMarketManager().openMarketGUI(player);
|
||||
})
|
||||
.register();
|
||||
if (plugin.getMarketManager().isEnable()) {
|
||||
new CommandAPICommand("sellfish")
|
||||
.withPermission("customfishing.sellfish")
|
||||
.executesPlayer((player, args) -> {
|
||||
if (plugin.getMarketManager().isEnable())
|
||||
plugin.getMarketManager().openMarketGUI(player);
|
||||
})
|
||||
.register();
|
||||
}
|
||||
|
||||
if (plugin.getBagManager().isBagEnabled()) {
|
||||
if (plugin.getBagManager().isEnabled()) {
|
||||
FishingBagCommand.INSTANCE.getBagCommand().register();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unload() {
|
||||
}
|
||||
|
||||
private CommandAPICommand getReloadCommand() {
|
||||
return new CommandAPICommand("reload")
|
||||
.executes((sender, args) -> {
|
||||
@@ -80,17 +86,39 @@ public class CommandManagerImpl implements CommandManager {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private CommandAPICommand getMarketCommand() {
|
||||
return new CommandAPICommand("market").withSubcommand(
|
||||
new CommandAPICommand("open")
|
||||
.withArguments(new EntitySelectorArgument.ManyPlayers("player"))
|
||||
.executes((sender, args) -> {
|
||||
Collection<Player> players = (Collection<Player>) args.get("player");
|
||||
assert players != null;
|
||||
for (Player player : players) {
|
||||
plugin.getMarketManager().openMarketGUI(player);
|
||||
CommandAPICommand command = new CommandAPICommand("open");
|
||||
if (plugin.getMarketManager().isEnable()) {
|
||||
command.withSubcommand(
|
||||
new CommandAPICommand("market")
|
||||
.withArguments(new EntitySelectorArgument.ManyPlayers("player"))
|
||||
.executes((sender, args) -> {
|
||||
Collection<Player> players = (Collection<Player>) args.get("player");
|
||||
assert players != null;
|
||||
for (Player player : players) {
|
||||
plugin.getMarketManager().openMarketGUI(player);
|
||||
AdventureManagerImpl.getInstance().sendMessageWithPrefix(sender, Locale.MSG_Market_GUI_Open.replace("{player}", player.getName()));
|
||||
}
|
||||
}));
|
||||
}
|
||||
if (plugin.getBagManager().isEnabled()) {
|
||||
command.withSubcommand(
|
||||
new CommandAPICommand("bag")
|
||||
.withArguments(new EntitySelectorArgument.ManyPlayers("player"))
|
||||
.executes((sender, args) -> {
|
||||
Collection<Player> players = (Collection<Player>) args.get("player");
|
||||
assert players != null;
|
||||
for (Player player : players) {
|
||||
Inventory inventory = plugin.getBagManager().getOnlineBagInventory(player.getUniqueId());
|
||||
if (inventory != null) {
|
||||
player.openInventory(inventory);
|
||||
AdventureManagerImpl.getInstance().sendMessageWithPrefix(sender, Locale.MSG_Market_GUI_Open.replace("{player}", player.getName()));
|
||||
} else {
|
||||
LogUtils.warn("Player " + player.getName() + "'s bag data has not been loaded.");
|
||||
}
|
||||
}));
|
||||
}
|
||||
}));
|
||||
}
|
||||
return command;
|
||||
}
|
||||
|
||||
private CommandAPICommand getAboutCommand() {
|
||||
|
||||
@@ -20,6 +20,7 @@ package net.momirealms.customfishing.command.sub;
|
||||
import dev.jorel.commandapi.CommandAPICommand;
|
||||
import dev.jorel.commandapi.arguments.PlayerArgument;
|
||||
import dev.jorel.commandapi.arguments.UUIDArgument;
|
||||
import net.momirealms.customfishing.CustomFishingPluginImpl;
|
||||
import net.momirealms.customfishing.adventure.AdventureManagerImpl;
|
||||
import net.momirealms.customfishing.api.CustomFishingPlugin;
|
||||
import net.momirealms.customfishing.api.data.user.OfflineUser;
|
||||
@@ -40,11 +41,13 @@ public class FishingBagCommand {
|
||||
.withPermission("fishingbag.user")
|
||||
.withSubcommands(getEditOnlineCommand(), getEditOfflineCommand())
|
||||
.executesPlayer(((player, args) -> {
|
||||
var inv = CustomFishingPlugin.get().getBagManager().getOnlineBagInventory(player.getUniqueId());
|
||||
if (inv != null) {
|
||||
player.openInventory(inv);
|
||||
} else {
|
||||
AdventureManagerImpl.getInstance().sendMessageWithPrefix(player, Locale.MSG_Data_Not_Loaded);
|
||||
if (CustomFishingPlugin.get().getBagManager().isEnabled()) {
|
||||
var inv = CustomFishingPlugin.get().getBagManager().getOnlineBagInventory(player.getUniqueId());
|
||||
if (inv != null) {
|
||||
player.openInventory(inv);
|
||||
} else {
|
||||
AdventureManagerImpl.getInstance().sendMessageWithPrefix(player, Locale.MSG_Data_Not_Loaded);
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -22,15 +22,19 @@ import net.momirealms.customfishing.api.CustomFishingPlugin;
|
||||
import net.momirealms.customfishing.api.data.user.OfflineUser;
|
||||
import net.momirealms.customfishing.api.manager.BagManager;
|
||||
import net.momirealms.customfishing.api.mechanic.bag.FishingBagHolder;
|
||||
import net.momirealms.customfishing.api.mechanic.condition.Condition;
|
||||
import net.momirealms.customfishing.setting.Config;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
@@ -46,7 +50,7 @@ public class BagManagerImpl implements BagManager, Listener {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBagEnabled() {
|
||||
public boolean isEnabled() {
|
||||
return Config.enableFishingBag;
|
||||
}
|
||||
|
||||
@@ -89,6 +93,32 @@ public class BagManagerImpl implements BagManager, Listener {
|
||||
plugin.getStorageManager().saveUserData(offlineUser, true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInvClick(InventoryClickEvent event) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
if (!(event.getInventory().getHolder() instanceof FishingBagHolder))
|
||||
return;
|
||||
Inventory clicked = event.getClickedInventory();
|
||||
if (clicked != event.getWhoClicked().getInventory())
|
||||
return;
|
||||
ItemStack clickedItem = event.getCurrentItem();
|
||||
if (clickedItem == null || clickedItem.getType() == Material.AIR)
|
||||
return;
|
||||
if (Config.bagWhiteListItems.contains(clickedItem.getType()))
|
||||
return;
|
||||
String id = plugin.getItemManager().getAnyItemID(clickedItem);
|
||||
if (plugin.getEffectManager().getEffect("rod", id) != null)
|
||||
return;
|
||||
if (plugin.getEffectManager().getEffect("bait", id) != null)
|
||||
return;
|
||||
if (plugin.getEffectManager().getEffect("util", id) != null)
|
||||
return;
|
||||
if (Config.bagStoreLoots && plugin.getLootManager().getLoot(id) != null)
|
||||
return;
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onQuit(PlayerQuitEvent event) {
|
||||
OfflineUser offlineUser = tempEditMap.remove(event.getPlayer().getUniqueId());
|
||||
|
||||
@@ -69,6 +69,7 @@ public class MarketManagerImpl implements MarketManager, Listener {
|
||||
private double earningLimit;
|
||||
private boolean allowItemWithNoPrice;
|
||||
private final ConcurrentHashMap<UUID, MarketGUI> marketGUIMap;
|
||||
private boolean enable;
|
||||
|
||||
public MarketManagerImpl(CustomFishingPlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
@@ -94,6 +95,8 @@ public class MarketManagerImpl implements MarketManager, Listener {
|
||||
|
||||
private void loadConfig() {
|
||||
YamlConfiguration config = plugin.getConfig("market.yml");
|
||||
this.enable = config.getBoolean("enable", true);
|
||||
if (!this.enable) return;
|
||||
this.layout = config.getStringList("layout").toArray(new String[0]);
|
||||
this.title = config.getString("title", "market.title");
|
||||
this.formula = config.getString("price-formula", "{base} + {bonus} * {size}");
|
||||
@@ -355,4 +358,9 @@ public class MarketManagerImpl implements MarketManager, Listener {
|
||||
public BuildableItem getFunctionIconDenyBuilder() {
|
||||
return functionIconDenyBuilder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnable() {
|
||||
return enable;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user