Skip to content

Commit

Permalink
交易记录
Browse files Browse the repository at this point in the history
  • Loading branch information
Fireflyest committed Aug 11, 2022
1 parent b8fccb9 commit bd719ea
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 49 deletions.
28 changes: 24 additions & 4 deletions src/main/java/com/fireflyest/market/core/MarketButton.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
import com.fireflyest.market.data.Config;
import com.fireflyest.market.data.Language;
import com.fireflyest.market.util.TimeUtils;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BookMeta;
import org.fireflyest.craftgui.item.ViewItemBuilder;
import org.fireflyest.craftgui.util.ItemUtils;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -910,7 +912,7 @@ private static void loadGermanMenuButton() {
}

public static void loreMailItem(ItemStack item, Mail mail){
if (!"".equals(mail.getInfo())) ItemUtils.addLore(item, 7by " + mail.getInfo());
if (!"".equals(mail.getInfo())) ItemUtils.addLore(item, 7from " + mail.getInfo());
ItemUtils.addLore(item, "");
ItemUtils.addLore(item, "§e§m· ·");
ItemUtils.addLore(item, "§f" + TimeUtils.getTime(mail.getAppear()));
Expand Down Expand Up @@ -964,13 +966,31 @@ public static void loreSale(ItemStack item, Sale sale){
}

@NotNull
public static ItemStack getRecordItem(String name, String buyer, double cost, boolean point){
return new ViewItemBuilder(XMaterial.WRITTEN_BOOK.parseMaterial())
public static ItemStack getRecordItem(String itemName, String buyer, double cost, boolean point){
ItemStack mail = new ViewItemBuilder(XMaterial.WRITTEN_BOOK.parseMaterial())
.name(MARKET_RECORD_TEXT)
.lore(String.format(SALE_ITEM_TEXT, name))
.lore(String.format(SALE_ITEM_TEXT, itemName))
.lore(String.format(BUYER_TEXT, buyer))
.lore(String.format(REWARD_TEXT, cost, (point ? Language.POINT_SYMBOL : Language.COIN_SYMBOL)))
.build();
if (Config.MARKET_RECORD) {
BookMeta meta = ((BookMeta) mail.getItemMeta());
if (meta != null) {
ComponentBuilder componentBuilder = new ComponentBuilder(Language.PLUGIN_NAME)
.append("\n")
.append("------------------\n")
.append(String.format(SALE_ITEM_TEXT.replace("§f", "§0"), itemName)).append("\n")
.append(String.format(BUYER_TEXT.replace("§f", "§0"), buyer)).append("\n")
.append(String.format(REWARD_TEXT.replace("§f", "§0"), cost, (point ? Language.POINT_SYMBOL : Language.COIN_SYMBOL))).append("\n")
.append("\n")
.append(TimeUtils.getTimeToday());
meta.spigot().addPage(componentBuilder.create());
meta.setTitle(Language.PLUGIN_NAME);
meta.setAuthor(Language.PLUGIN_NAME);
}
mail.setItemMeta(meta);
}
return mail;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ public static void addMail(Mail mail){

public static void removeMail(Mail mail){
data.delete(mail);
refreshMail(mail);
// 记录 三天内
Circulation circulation = MarketManager.getCirculation(TimeUtils.getTimeToday());
circulation.setAmount(circulation.getAmount() + 1);
Expand Down
45 changes: 1 addition & 44 deletions src/main/java/com/fireflyest/market/core/MarketStatistic.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,52 +63,9 @@ public void run() {
}
}


// // 三天的记录
// Date now = new Date();
// Date dateYesterday = DateUtils.addDays(now, -1);
// Date dateBeforeYesterday = DateUtils.addDays(now, -2);
// Circulation circulation = MarketManager.getCirculation(TimeUtils.getTimeDay(now));
// Circulation circulationYesterday = MarketManager.getCirculation(TimeUtils.getTimeDay(dateYesterday));
// Circulation circulationBeforeYesterday = MarketManager.getCirculation(TimeUtils.getTimeDay(dateBeforeYesterday));
//
// // 第一页
// ComponentBuilder componentBuilderToday = new ComponentBuilder(Language.PLUGIN_NAME)
// .append("\n")
// .append("------------------");
// componentBuilderToday
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.COIN_SYMBOL, circulation.getCoin())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.POINT_SYMBOL, circulation.getPoint())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_AMOUNT, circulation.getAmount())).append("\n")
// .append(String.format(MarketButton.MAX_PRICE, circulation.getMax())).append("\n")
// .append("\n")
// .append(TimeUtils.getTimeDay(now));
// // 第二页
// ComponentBuilder componentBuilderYesterday = new ComponentBuilder(Language.PLUGIN_NAME)
// .append("\n")
// .append("------------------");
// componentBuilderYesterday
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.COIN_SYMBOL, circulationYesterday.getCoin())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.POINT_SYMBOL, circulationYesterday.getPoint())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_AMOUNT, circulationYesterday.getAmount())).append("\n")
// .append(String.format(MarketButton.MAX_PRICE, circulationYesterday.getMax())).append("\n")
// .append("\n")
// .append(TimeUtils.getTimeDay(dateYesterday));
// // 第三页
// ComponentBuilder componentBuilderBeforeYesterday = new ComponentBuilder(Language.PLUGIN_NAME)
// .append("\n")
// .append("------------------");
// componentBuilderBeforeYesterday
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.COIN_SYMBOL, circulationBeforeYesterday.getCoin())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_PRICE + Language.POINT_SYMBOL, circulationBeforeYesterday.getPoint())).append("\n")
// .append(String.format(MarketButton.CIRCULATE_AMOUNT, circulationBeforeYesterday.getAmount())).append("\n")
// .append(String.format(MarketButton.MAX_PRICE, circulationBeforeYesterday.getMax())).append("\n")
// .append("\n")
// .append(TimeUtils.getTimeDay(dateBeforeYesterday));

if (bookMeta != null) {
bookMeta.setAuthor(player.getName());
bookMeta.setTitle(Language.PLUGIN_NAME.replace("§f", "§0"));
bookMeta.setTitle(Language.PLUGIN_NAME);
}
book.setItemMeta(bookMeta);

Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/fireflyest/market/data/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public class Config {
public static long TAX_THRESHOLD;
public static double TAX_RATE;
public static boolean BUY_PARTIAL;
public static boolean MARKET_RECORD;

private Config(){
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
import com.fireflyest.market.core.MarketTasks;
import com.fireflyest.market.data.Data;
import com.fireflyest.market.task.*;
import com.fireflyest.market.util.YamlUtils;
import org.bukkit.Material;
import org.bukkit.event.entity.VillagerAcquireTradeEvent;
import org.bukkit.inventory.meta.BookMeta;
import org.fireflyest.craftgui.api.ViewGuide;
import org.fireflyest.craftgui.event.ViewClickEvent;
import com.fireflyest.market.GlobalMarket;
Expand All @@ -30,6 +33,8 @@
import org.fireflyest.craftgui.util.ItemUtils;
import org.fireflyest.craftgui.util.TranslateUtils;

import java.util.Objects;

public class PlayerEventListener implements Listener {

private final Sound clickSound;
Expand Down Expand Up @@ -226,4 +231,15 @@ public void onSignChange(SignChangeEvent event){
}
}


@EventHandler
public void onVillagerAcquireTrade(VillagerAcquireTradeEvent event) {
for (ItemStack ingredient : event.getRecipe().getIngredients()) {
if (ingredient.getType() != Material.WRITTEN_BOOK) continue;
BookMeta bookMeta = ((BookMeta) ingredient.getItemMeta());
if (bookMeta == null) continue;
if (Objects.equals(bookMeta.getAuthor(), Language.PLUGIN_NAME)) event.setCancelled(true);
}
}

}
4 changes: 4 additions & 0 deletions src/main/java/com/fireflyest/market/task/TaskSign.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.fireflyest.market.bean.User;
import com.fireflyest.market.core.MarketManager;
import com.fireflyest.market.core.MarketTasks;
import com.fireflyest.market.data.Config;
import com.fireflyest.market.data.Language;
import com.fireflyest.market.util.ConvertUtils;
import net.milkbowl.vault.economy.Economy;
Expand Down Expand Up @@ -73,6 +74,9 @@ public TaskSign(@NotNull String playerName, int id, boolean reflash) {
player.sendMessage(Language.AFFAIR_FINISH.replace("%money%", ConvertUtils.formatDouble(mail.getPrice())) + Language.COIN_SYMBOL);
}
MarketManager.removeMail(mail);
if (reflash) guide.refreshPage(playerName);

if (Config.MARKET_RECORD) player.getInventory().addItem(item);
}else {
MarketManager.removeMail(mail);
if (reflash) guide.refreshPage(playerName);
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,6 @@ TaxRate: 0.002

# 零散购买,关闭后玩家只能一次性全买
BuyPartial: true

# 交易记录
MarketRecord: true

0 comments on commit bd719ea

Please sign in to comment.