fix: 被复仇时,可以免费解锁自己墓碑的问题。
右键墓碑后,可以点击聊天栏内的解锁按钮解锁墓碑
This commit is contained in:
@@ -131,7 +131,7 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
protected void unlock(Player player, String[] strings) {
|
||||
if (strings.length > 1) {
|
||||
if (strings.length > 2) {
|
||||
player.sendMessage(ChatColor.RED + "命令过长");
|
||||
return;
|
||||
}
|
||||
@@ -140,7 +140,10 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
player.sendMessage(ChatColor.RED + "玩家未登录");
|
||||
return;
|
||||
}
|
||||
data.unlockTombstoneBlock();
|
||||
String key = null;
|
||||
if (strings.length == 2)
|
||||
key = strings[1];
|
||||
data.unlockTombstoneBlock(key);
|
||||
}
|
||||
|
||||
protected void remove(Player player, String[] strings) {
|
||||
|
||||
@@ -6,6 +6,11 @@ import ling.coordinateRecorder.data.PlayerData;
|
||||
import ling.coordinateRecorder.data.PlayerDeathData;
|
||||
import ling.coordinateRecorder.data.PlayerHarm;
|
||||
import ling.coordinateRecorder.data.TombstoneData;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.md_5.bungee.api.chat.hover.content.Text;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Chest;
|
||||
@@ -156,6 +161,27 @@ public class PlayerEventListener implements Listener {
|
||||
}
|
||||
}
|
||||
data.setTombstoneBlock(block);
|
||||
|
||||
BaseComponent message = new TextComponent("墓碑内有" + ChatColor.YELLOW + count + ChatColor.WHITE + "个物品\n");
|
||||
if (tombstoneData.isRevenge() && player.getUniqueId().toString().equals(tombstoneData.getOwnerDefeater())) {
|
||||
message.addExtra("这个墓碑由你复仇而产生,可以免费解锁! ");
|
||||
} else {
|
||||
message.addExtra("解锁将给你带来" + Config.getFractionTimeMessage(getUnlockPunish(data, tombstoneData,
|
||||
Arrays.asList(
|
||||
chest.getBlockInventory()
|
||||
.getContents()))) +
|
||||
"点沙雕值惩罚!(当前" + Config.getFractionTimeMessage(data.getFraction()) + ") ");
|
||||
}
|
||||
BaseComponent unlock = new TextComponent("[解锁]");
|
||||
unlock.setUnderlined(true);
|
||||
unlock.setColor(net.md_5.bungee.api.ChatColor.YELLOW);
|
||||
unlock.setBold(true);
|
||||
unlock.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("点击解锁墓碑")));
|
||||
unlock.setClickEvent(
|
||||
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/zb unlock " + tombstoneData.getArmorStandUuid()));
|
||||
message.addExtra(unlock);
|
||||
player.spigot().sendMessage(message);
|
||||
/*
|
||||
player.sendMessage(
|
||||
"要解锁此墓碑,请使用" + ChatColor.GOLD + "/zb unlock" + ChatColor.WHITE + " 命令解除锁定");
|
||||
player.sendMessage("墓碑内有" + ChatColor.YELLOW + count + ChatColor.WHITE + "个物品");
|
||||
@@ -168,7 +194,7 @@ public class PlayerEventListener implements Listener {
|
||||
getUnlockPunish(data, tombstoneData,
|
||||
Arrays.asList(chest.getBlockInventory().getContents()))) +
|
||||
"点沙雕值惩罚!(当前" + ChatColor.RED + data.getFraction() + ChatColor.WHITE + ")");
|
||||
}
|
||||
}*/
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Result;
|
||||
import org.jooq.impl.DSL;
|
||||
@@ -110,7 +111,7 @@ public class PlayerData {
|
||||
}
|
||||
|
||||
/// 解锁墓碑
|
||||
public void unlockTombstoneBlock() {
|
||||
public void unlockTombstoneBlock(@Nullable String key) {
|
||||
if (tombstoneBlock == null) {
|
||||
player.sendMessage(ChatColor.RED + "请先右键点击要解锁的墓碑");
|
||||
return;
|
||||
@@ -135,8 +136,12 @@ public class PlayerData {
|
||||
player.sendMessage(ChatColor.RED + "不是你的墓碑,无法解锁!");
|
||||
return;
|
||||
}
|
||||
if (key != null && !key.equals(data.getArmorStandUuid())) {
|
||||
player.sendMessage(ChatColor.RED + "数据过期,请重新右击该墓碑!");
|
||||
return;
|
||||
}
|
||||
int value = 0;
|
||||
if (!data.isRevenge()) {
|
||||
if (!data.isRevenge() || !data.getOwnerDefeater().equals(player.getUniqueId().toString())) {
|
||||
//先给予沙雕值惩罚
|
||||
value = PlayerEventListener.getUnlockPunish(this, data,
|
||||
Arrays.asList(chest.getBlockInventory().getContents()));
|
||||
|
||||
Reference in New Issue
Block a user