mirror of
https://github.com/MiniDay/HamsterCurrency-Parent.git
synced 2025-08-23 04:35:30 +08:00
feat: 添加事件支持
This commit is contained in:
@@ -5,7 +5,7 @@ plugins {
|
||||
}
|
||||
|
||||
group 'cn.hamster3'
|
||||
version '2.1.2'
|
||||
version '2.2.0'
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
@@ -53,7 +53,7 @@ publishing {
|
||||
artifactId = "HamsterCurrency"
|
||||
artifact jar
|
||||
artifact sourcesJar
|
||||
artifact javadocJar
|
||||
//artifact javadocJar
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -27,17 +27,23 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public final class HamsterCurrency extends JavaPlugin {
|
||||
private static HamsterCurrency instance;
|
||||
private static LogUtils logUtils;
|
||||
private IDataManager dataManager;
|
||||
private CurrencyListener listener;
|
||||
private boolean loaded;
|
||||
|
||||
public static HamsterCurrency getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static LogUtils getLogUtils() {
|
||||
return logUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
instance = this;
|
||||
logUtils = new LogUtils(this);
|
||||
FileManager.reload(this);
|
||||
logUtils.infoDividingLine();
|
||||
|
@@ -1,9 +1,11 @@
|
||||
package cn.hamster3.currency.api;
|
||||
|
||||
import cn.hamster3.currency.HamsterCurrency;
|
||||
import cn.hamster3.currency.core.IDataManager;
|
||||
import cn.hamster3.currency.data.CurrencyLog;
|
||||
import cn.hamster3.currency.data.CurrencyType;
|
||||
import cn.hamster3.currency.data.PlayerData;
|
||||
import cn.hamster3.currency.event.CurrencyChangeEvent;
|
||||
import org.black_ixx.playerpoints.PlayerPoints;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
@@ -41,6 +43,8 @@ public abstract class CurrencyAPI {
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
CurrencyChangeEvent event = new CurrencyChangeEvent(uuid, currencyID, data.getPlayerCurrency(currencyID), amount);
|
||||
Bukkit.getScheduler().runTaskAsynchronously(HamsterCurrency.getInstance(), () -> Bukkit.getPluginManager().callEvent(event));
|
||||
data.setPlayerCurrency(currencyID, amount);
|
||||
dataManager.savePlayerData(data);
|
||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "set", amount, amount));
|
||||
@@ -56,6 +60,8 @@ public abstract class CurrencyAPI {
|
||||
return;
|
||||
}
|
||||
double balance = data.getPlayerCurrency(currencyID) + amount;
|
||||
CurrencyChangeEvent event = new CurrencyChangeEvent(uuid, currencyID, data.getPlayerCurrency(currencyID), balance);
|
||||
Bukkit.getScheduler().runTaskAsynchronously(HamsterCurrency.getInstance(), () -> Bukkit.getPluginManager().callEvent(event));
|
||||
data.setPlayerCurrency(currencyID, balance);
|
||||
dataManager.savePlayerData(data);
|
||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "add", amount, balance));
|
||||
@@ -71,6 +77,8 @@ public abstract class CurrencyAPI {
|
||||
return;
|
||||
}
|
||||
double balance = data.getPlayerCurrency(currencyID) - amount;
|
||||
CurrencyChangeEvent event = new CurrencyChangeEvent(uuid, currencyID, data.getPlayerCurrency(currencyID), balance);
|
||||
Bukkit.getScheduler().runTaskAsynchronously(HamsterCurrency.getInstance(), () -> Bukkit.getPluginManager().callEvent(event));
|
||||
data.setPlayerCurrency(currencyID, balance);
|
||||
dataManager.savePlayerData(data);
|
||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "take", amount, balance));
|
||||
|
@@ -0,0 +1,53 @@
|
||||
package cn.hamster3.currency.event;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class CurrencyChangeEvent extends Event {
|
||||
private static final HandlerList handlerList = new HandlerList();
|
||||
@NotNull
|
||||
private final UUID playerUUID;
|
||||
@NotNull
|
||||
private final String currencyID;
|
||||
private final double oldAmount;
|
||||
private final double newAmount;
|
||||
|
||||
public CurrencyChangeEvent(@NotNull UUID playerUUID, @NotNull String currencyID, double oldAmount, double newAmount) {
|
||||
super(true);
|
||||
this.playerUUID = playerUUID;
|
||||
this.currencyID = currencyID;
|
||||
this.oldAmount = oldAmount;
|
||||
this.newAmount = newAmount;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public UUID getPlayerUUID() {
|
||||
return playerUUID;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getCurrencyID() {
|
||||
return currencyID;
|
||||
}
|
||||
|
||||
public double getOldAmount() {
|
||||
return oldAmount;
|
||||
}
|
||||
|
||||
public double getNewAmount() {
|
||||
return newAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user