Skip to content

Commit

Permalink
修复低版本
Browse files Browse the repository at this point in the history
修复低版本用魔鬼商店
修复魔鬼商店部分内容不能改颜色
添加可以记录交易记录功能
补充help内容
  • Loading branch information
Tining123 committed Jul 28, 2023
1 parent 4d4a4e1 commit 8efcf84
Show file tree
Hide file tree
Showing 29 changed files with 311 additions and 98 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ Set diamond block with $440.
+ market.max-user-sell: Maximum number of user listings
+ market.sell-tax-rate: Handling fee for players selling items, percentage
+ market.diasble-demon-tax: disable demon tax in market profit
+ log: enable transaction log
## Mathematical Theory
+ TAX=(1 - TaxRate)

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Tining</groupId>
<artifactId>DemonMarket</artifactId>
<version>1.6.1</version>
<version>1.6.2</version>
<build>
<plugins>
<plugin>
Expand Down
30 changes: 16 additions & 14 deletions src/main/java/com/tining/demonmarket/command/AdminCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,27 +46,27 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
Material itemToSell = player.getInventory().getItemInMainHand().getType();
//校验物品是否合法
if (Objects.isNull(itemToSell) || itemToSell.name().equals("AIR")) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
double price = 0.0;
//校验价值是否合法
try {
price = Double.parseDouble(args[1]);
if (price < 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
} catch (Exception e) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
//修改数值
WorthUtil.addToNBTWorth(PluginUtil.getKeyName(itemStack), price);
//修改配置文件
//保存
ConfigReader.reloadConfig();
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]设置成功"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]设置成功")));
return true;
}
case "set": {
Expand All @@ -81,46 +81,46 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
Material itemToSell = player.getInventory().getItemInMainHand().getType();
//校验物品是否合法
if (Objects.isNull(itemToSell) || itemToSell.name().equals("AIR")) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
double price = 0.0;
//校验价值是否合法
try {
price = Double.parseDouble(args[1]);
if (price < 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
} catch (Exception e) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
//修改数值
WorthUtil.addToWorth(itemStack.getType().name(), price);
//修改配置文件
//保存
ConfigReader.reloadConfig();
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]设置成功"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]设置成功")));
return true;
}
case "name": {
Player player = (Player) sender;
Material itemToSell = player.getInventory().getItemInMainHand().getType();
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手中拿的是:") + itemToSell.name());
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手中拿的是:") + itemToSell.name()));
return true;
}
case "nbt": {
Player player = (Player) sender;
Material itemToSell = player.getInventory().getItemInMainHand().getType();
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手中拿的是:") + itemToSell.name());
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]NBT为:") + itemStackSerialize(player.getInventory().getItemInMainHand()));
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]在商店配置中的NBT对应码为:") + PluginUtil.getKeyName(player.getInventory().getItemInMainHand()));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手中拿的是:") + itemToSell.name()));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]NBT为:") + itemStackSerialize(player.getInventory().getItemInMainHand())));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]在商店配置中的NBT对应码为:") + PluginUtil.getKeyName(player.getInventory().getItemInMainHand())));
return true;
}
case "reload": {
ConfigReader.reloadConfig();
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]重载成功"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]重载成功")));
return true;
}
case "shopset": {
Expand Down Expand Up @@ -154,7 +154,9 @@ private String getHelp() {
LangUtil.get("/mtadmin nbt 查看手中物品nbt信息\n") +
LangUtil.get("/mtadmin name 查看手中物品名称\n") +
LangUtil.get("/mtadmin shop 打开管理员商店列表") + "\n" +
LangUtil.get("/mtadmin market 打开管理员市场列表")
LangUtil.get("/mtadmin market 打开管理员市场列表") + "\n" +
LangUtil.get("/mtadmin shopset [价格] 将手中的物品添加到商店") + "\n" +
LangUtil.get("/mtadmin shopnbtset [价格] 将手中的nbt物品添加到商店");

;
return help;
Expand Down
36 changes: 19 additions & 17 deletions src/main/java/com/tining/demonmarket/command/UserCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.tining.demonmarket.gui.AcquireListGui;
import com.tining.demonmarket.gui.ChestGui;
import com.tining.demonmarket.storage.ConfigReader;
import com.tining.demonmarket.storage.LogWriter;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
Expand Down Expand Up @@ -69,7 +70,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

double value = WorthUtil.getItemWorth(itemStack);
if (value == 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
int sellAmount = 0;
Expand Down Expand Up @@ -103,49 +104,49 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
}
double value = WorthUtil.getItemWorth(itemStack);
if (value == 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
int amountInInventory = InventoryUtil.calcInventory(player, itemStack);
int sellAmount = 0;
sellAmount = player.getInventory().getItemInMainHand().getAmount();
double hand = MarketTrade.preTrade(player, itemStack, value, sellAmount);
double all = MarketTrade.preTrade(player, itemStack, value, amountInInventory);
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]物品单价:") + MarketEconomy.formatMoney(value) + LangUtil.get(",你手里的物品总价:")
+ MarketEconomy.formatMoney(hand) + LangUtil.get(",如果出售背包中所有物品可得:") + MarketEconomy.formatMoney(all));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]物品单价:") + MarketEconomy.formatMoney(value) + LangUtil.get(",你手里的物品总价:")
+ MarketEconomy.formatMoney(hand) + LangUtil.get(",如果出售背包中所有物品可得:") + MarketEconomy.formatMoney(all)));
return true;

}
case "pay": {
//合法性校验
if (args.length < 3) {
player.sendMessage(ChatColor.YELLOW + LangUtil.get("/mt pay [玩家] [金额]"));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("/mt pay [玩家] [金额]")));
return true;
}
String valueString = args[2];
double value = 0;
try {
value = Double.parseDouble(valueString);
} catch (Exception e) {
player.sendMessage(ChatColor.YELLOW + LangUtil.get("/mt pay [玩家] [金额]"));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("/mt pay [玩家] [金额]")));
return true;
}
if(value < 0){
player.sendMessage(ChatColor.YELLOW + LangUtil.get("/mt pay [玩家] [金额]"));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("/mt pay [玩家] [金额]")));
return true;
}
if (Vault.checkCurrency(player.getUniqueId()) < value) {
player.sendMessage(ChatColor.YELLOW + LangUtil.get("你没有足够的余额"));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("你没有足够的余额")));
return true;
}
//转账上线校验
double maxPay = ConfigReader.getMaxPay();
if (maxPay != -1) {
if (maxPay == 0) {
player.sendMessage(ChatColor.YELLOW + LangUtil.get("转账功能已关闭"));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("转账功能已关闭")));
return true;
} else if (maxPay < value) {
player.sendMessage(ChatColor.YELLOW + String.format(LangUtil.get("转账金额超过上限,当前上限%s"), maxPay));
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , String.format(LangUtil.get("转账金额超过上限,当前上限%s"), maxPay)));
return true;
}
}
Expand Down Expand Up @@ -176,7 +177,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

// 重新判断是否余额充足
if (Vault.checkCurrency(player.getUniqueId()) < totalValue) {
player.sendMessage(ChatColor.YELLOW + LangUtil.get("你没有足够的余额") + totalValue);
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("你没有足够的余额") + totalValue));
return true;
}
}
Expand All @@ -186,11 +187,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
// 给收款人发消息
try{
Player onlineReceiver = Bukkit.getPlayer(args[1]);
onlineReceiver.sendMessage(ChatColor.YELLOW +
String.format(LangUtil.get("收款成功,从%s收到%s"), player.getName(), MarketEconomy.formatMoney(totalPrice)));
onlineReceiver.sendMessage(LangUtil.preColor(ChatColor.YELLOW , String.format(LangUtil.get("收款成功,从%s收到%s"), player.getName(), MarketEconomy.formatMoney(totalPrice))));
}catch (Exception ignore){}

player.sendMessage(ChatColor.YELLOW + String.format(LangUtil.get("转账成功,花费%S,转账%s"),
player.sendMessage(LangUtil.preColor(ChatColor.YELLOW , String.format(LangUtil.get("转账成功,花费%S,转账%s"),
totalValue, MarketEconomy.formatMoney(totalPrice))));
LogWriter.appendToLog(player.getName() + "->" + reciever.getName() + ":" + String.format(LangUtil.get("转账成功,花费%S,转账%s"),
totalValue, MarketEconomy.formatMoney(totalPrice)));
return true;

Expand Down Expand Up @@ -239,18 +241,18 @@ public boolean isIllegalItem(ItemStack itemStack, Player player, CommandSender s
//测试
String name = is.getItemMeta().getDisplayName();
if (!Strings.isNullOrEmpty(name)) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return false;
}
}

if (Objects.isNull(itemStack) || itemStack.getType().name().equals("AIR")) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return false;
}
//检测此种物品是否可交易
if (!WorthUtil.isWorthContain(itemStack)) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,24 @@ protected boolean solve(CommandSender sender, Command command, String label, Str
Material itemToSell = player.getInventory().getItemInMainHand().getType();
//校验物品是否合法
if (Objects.isNull(itemToSell) || itemToSell.name().equals("AIR")) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
double price = 0.0;
//校验价值是否合法
try {
price = Double.parseDouble(args[1]);
if (price <= 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
} catch (Exception e) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}

ShopUtil.addToNBTPrice(itemStack,price);
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]设置成功"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]设置成功")));

return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ protected boolean solve(CommandSender sender, Command command, String label, Str
Material itemToSell = player.getInventory().getItemInMainHand().getType();
//校验物品是否合法
if (Objects.isNull(itemToSell) || itemToSell.name().equals("AIR")) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你手里的物品无法交易"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你手里的物品无法交易")));
return true;
}
double price = 0.0;
//校验价值是否合法
try {
price = Double.parseDouble(args[1]);
if (price < 0) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}
} catch (Exception e) {
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]你输入的价格不合法"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]你输入的价格不合法")));
return true;
}

ShopUtil.addToCommonPrice(itemStack,price);
sender.sendMessage(ChatColor.YELLOW + LangUtil.get("[DemonMarket]设置成功"));
sender.sendMessage(LangUtil.preColor(ChatColor.YELLOW , LangUtil.get("[DemonMarket]设置成功")));

return true;
}
Expand Down
Loading

0 comments on commit 8efcf84

Please sign in to comment.