1.2.2
This commit is contained in:
parent
fbc3897bff
commit
da57cbf773
|
@ -25,7 +25,11 @@
|
|||
- 绑定命令 `/aucard open` 打开魂卡背包
|
||||
- 初步已实现功能的安装和实装
|
||||
|
||||
## v1.1.6 - 2025/07/20
|
||||
## v1.1.8 - 2025/07/20
|
||||
- 取消`Item-NBT-API`的依赖
|
||||
- 击杀检测依赖更换为 `MythicMobs`
|
||||
- 已支持繁体
|
||||
- 已支持繁体
|
||||
- 掉落进行下调
|
||||
|
||||
## v1.2.0 - 2025/07/23
|
||||
- 完善 `数据绑定` 逻辑
|
|
@ -1,7 +1,9 @@
|
|||
package com.yaohun.cardbackpack;
|
||||
|
||||
import com.yaohun.cardbackpack.config.Config;
|
||||
import com.yaohun.cardbackpack.data.PlayerData;
|
||||
import com.yaohun.cardbackpack.gui.CardGui;
|
||||
import com.yaohun.cardbackpack.gui.CardGui_Others;
|
||||
import com.yaohun.cardbackpack.gui.ConfirmGui;
|
||||
import com.yaohun.cardbackpack.listener.KillMobsListener;
|
||||
import com.yaohun.cardbackpack.listener.PlayerListener;
|
||||
|
@ -29,6 +31,7 @@ public class AuCardBackpack extends JavaPlugin {
|
|||
getServer().getPluginManager().registerEvents(new ConfirmGui(), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new KillMobsListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new CardGui_Others(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -49,6 +52,7 @@ public class AuCardBackpack extends JavaPlugin {
|
|||
sender.sendMessage("");
|
||||
sender.sendMessage("§e------- ======= §6魂卡背包 §e======= -------");
|
||||
sender.sendMessage("§2/"+Command+" open §f- §2打开背包");
|
||||
sender.sendMessage("§2/"+Command+" open §e[玩家] §f- §2打开玩家背包");
|
||||
sender.sendMessage("§2/"+Command+" reload §f- §2重载配置文件");
|
||||
sender.sendMessage("§e------- ======= §6魂卡背包 §e======= -------");
|
||||
sender.sendMessage("");
|
||||
|
@ -59,6 +63,15 @@ public class AuCardBackpack extends JavaPlugin {
|
|||
sender.sendMessage("§f[§c魂卡§f] §a配置文件已重载.");
|
||||
return true;
|
||||
}
|
||||
if("open".equalsIgnoreCase(args[0])){
|
||||
if(args.length == 1){
|
||||
sender.sendMessage("[魂卡] 缺少目标玩家参数.");
|
||||
return true;
|
||||
}
|
||||
String othersName = args[1];
|
||||
CardGui_Others.openGui((Player) sender, othersName);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
106
src/main/java/com/yaohun/cardbackpack/gui/CardGui_Others.java
Normal file
106
src/main/java/com/yaohun/cardbackpack/gui/CardGui_Others.java
Normal file
|
@ -0,0 +1,106 @@
|
|||
package com.yaohun.cardbackpack.gui;
|
||||
|
||||
import com.yaohun.cardbackpack.AuCardBackpack;
|
||||
import com.yaohun.cardbackpack.data.CardData;
|
||||
import com.yaohun.cardbackpack.data.PlayerData;
|
||||
import com.yaohun.cardbackpack.manage.DataManager;
|
||||
import com.yaohun.cardbackpack.util.StackUtil;
|
||||
import me.Demon.DemonPlugin.DemonAPI;
|
||||
import me.Demon.DemonPlugin.data.NbtItem;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class CardGui_Others implements Listener {
|
||||
|
||||
private static String invTitle = "正在设置其他玩家的魂卡背包: ";
|
||||
|
||||
|
||||
public static void openGui(Player player, String othersName){
|
||||
Inventory inv = Bukkit.createInventory(null,27,invTitle+othersName);
|
||||
DataManager dataManager = AuCardBackpack.getDataManager();
|
||||
PlayerData playerData = dataManager.getPlayerData(othersName);
|
||||
inv.setItem(0, DemonAPI.glass(11,"§r"));
|
||||
inv.setItem(8, DemonAPI.glass(11,"§r"));
|
||||
for (int i = 9; i < 27;i++){
|
||||
inv.setItem(i,DemonAPI.glass(15,"§r"));
|
||||
}
|
||||
inv.setItem(21, DemonAPI.glass(15,"§r"));
|
||||
inv.setItem(22,DemonAPI.glass(0,"§7[§6魂卡背包§7]"));
|
||||
inv.setItem(23, DemonAPI.glass(15,"§r"));
|
||||
for (int i : new int[]{18,19,20,24,25,26}) {
|
||||
inv.setItem(i,DemonAPI.glass(0,"§7[§6魂卡背包§7]"));
|
||||
}
|
||||
inv.setItem(1, StackUtil.iconHide("§f十年魂卡槽"));
|
||||
inv.setItem(2,StackUtil.iconHide("§e百年魂卡槽"));
|
||||
inv.setItem(3,StackUtil.iconHide("§d千年魂卡槽"));
|
||||
inv.setItem(4,StackUtil.iconHide("§7万年魂卡槽"));
|
||||
inv.setItem(5,StackUtil.iconHide("§c异变魂卡槽"));
|
||||
inv.setItem(6,StackUtil.iconHide("§c十万年魂卡槽"));
|
||||
inv.setItem(7,StackUtil.iconHide("§r"));
|
||||
// 设置已穿戴的魂卡
|
||||
HashMap<Integer, ItemStack> stackHashMap = playerData.itemStackHashMap;
|
||||
for (Integer slot : stackHashMap.keySet()) {
|
||||
if (stackHashMap.get(slot) != null) {
|
||||
ItemStack stack = stackHashMap.get(slot).clone();
|
||||
if (!DemonAPI.itemIsNull(stack) && !DemonAPI.itemIsLore(stack)) {
|
||||
ItemMeta meta = stack.getItemMeta();
|
||||
meta.setDisplayName(meta.getDisplayName() + " §c§l[点击取出]");
|
||||
stack.setItemMeta(meta);
|
||||
inv.setItem(slot, stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
player.openInventory(inv);
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onClick(InventoryClickEvent e){
|
||||
int rawSlot = e.getRawSlot();
|
||||
Player player = (Player) e.getWhoClicked();
|
||||
String playerName = player.getName();
|
||||
if(e.getView().getTitle().contains(invTitle)){
|
||||
if(rawSlot >= 0 && rawSlot < 27) {
|
||||
// 获取点击的物品
|
||||
ItemStack click = e.getCurrentItem();
|
||||
// 判断点击的物品是否是卡牌槽
|
||||
if (rawSlot == 1 || rawSlot == 2 || rawSlot == 3 || rawSlot == 4 || rawSlot == 5 || rawSlot == 6 || rawSlot == 7) {
|
||||
e.setCancelled(true);
|
||||
if (DemonAPI.itemIsNull(click)) {
|
||||
return;
|
||||
}
|
||||
DataManager dataManager = AuCardBackpack.getDataManager();
|
||||
PlayerData playerData = dataManager.getPlayerData(playerName);
|
||||
// 判断放入物品是否是魂卡
|
||||
ItemStack cursor = e.getCursor();
|
||||
if(DemonAPI.itemIsNull(cursor)){
|
||||
return;
|
||||
}
|
||||
NbtItem nbtItem = new NbtItem(cursor);
|
||||
if(!nbtItem.hasKey("hunka")){
|
||||
player.sendMessage("[魂卡] 尝试放入物品不含有hunka的Nbt.");
|
||||
return;
|
||||
}
|
||||
String hunkaKey = nbtItem.getString("hunka");
|
||||
CardData cardData = AuCardBackpack.getDataManager().getCardData(hunkaKey);
|
||||
if(cardData == null){
|
||||
return;
|
||||
}
|
||||
e.getInventory().setItem(rawSlot,cursor);
|
||||
int slot = cardData.getCardSlot();
|
||||
playerData.itemStackHashMap.put(slot,cursor);
|
||||
playerData.SavePlayerData();
|
||||
player.sendMessage("[魂卡] 魂卡设置成功.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -83,6 +83,7 @@ public class ConfirmGui implements Listener {
|
|||
PlayerData playerData = AuCardBackpack.getDataManager().getPlayerData(playerName);
|
||||
ItemStack stack = inventory.getItem(1);
|
||||
playerData.itemStackHashMap.put(slot,stack);
|
||||
playerData.SavePlayerData();
|
||||
inventory.setItem(1,new ItemStack(Material.AIR));
|
||||
CardGui.OpenGui(player);
|
||||
String message = Config.langData.getMessage("successfullyInhaled");
|
||||
|
|
|
@ -45,14 +45,20 @@ public class KillMobsListener implements Listener {
|
|||
if(entity.getCustomName() == null){
|
||||
return;
|
||||
}
|
||||
String customName = entity.getCustomName();
|
||||
String customName = entity.getCustomName().replaceAll("§[a-zA-Z0-9]", "");
|
||||
String itemKey = null;
|
||||
if(customName.contains("十年靈獸") || customName.contains("十年灵兽")){
|
||||
itemKey = "十年魂卡鉴定卡";
|
||||
if(RandomUtil.getRandomDouble(0,100,1) >= 30) {
|
||||
itemKey = "十年魂卡鉴定卡";
|
||||
}
|
||||
}else if(customName.contains("百年靈獸") || customName.contains("百年灵兽")){
|
||||
itemKey = "百年魂卡鉴定卡";
|
||||
if(RandomUtil.getRandomDouble(0,100,1) >= 60) {
|
||||
itemKey = "百年魂卡鉴定卡";
|
||||
}
|
||||
}else if(customName.contains("千年靈獸") || customName.contains("千年灵兽")){
|
||||
itemKey = "百年魂卡鉴定卡";
|
||||
if(RandomUtil.getRandomDouble(0,100,1) >= 80) {
|
||||
itemKey = "千年魂卡鉴定卡";
|
||||
}
|
||||
}else if(customName.contains("萬年靈獸") || customName.contains("万年灵兽")){
|
||||
if(RandomUtil.getRandomDouble(0,100,1) >= 95) {
|
||||
itemKey = "万年魂卡鉴定卡";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name: AuCardBackpack
|
||||
main: com.yaohun.cardbackpack.AuCardBackpack
|
||||
version: 1.1.6
|
||||
version: 1.2.2
|
||||
depend:
|
||||
- DemonAPI
|
||||
- DemonMmKillsStats
|
||||
|
|
Loading…
Reference in New Issue
Block a user