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'
|
group 'cn.hamster3'
|
||||||
version '2.1.2'
|
version '2.2.0'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
@@ -53,7 +53,7 @@ publishing {
|
|||||||
artifactId = "HamsterCurrency"
|
artifactId = "HamsterCurrency"
|
||||||
artifact jar
|
artifact jar
|
||||||
artifact sourcesJar
|
artifact sourcesJar
|
||||||
artifact javadocJar
|
//artifact javadocJar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,17 +27,23 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public final class HamsterCurrency extends JavaPlugin {
|
public final class HamsterCurrency extends JavaPlugin {
|
||||||
|
private static HamsterCurrency instance;
|
||||||
private static LogUtils logUtils;
|
private static LogUtils logUtils;
|
||||||
private IDataManager dataManager;
|
private IDataManager dataManager;
|
||||||
private CurrencyListener listener;
|
private CurrencyListener listener;
|
||||||
private boolean loaded;
|
private boolean loaded;
|
||||||
|
|
||||||
|
public static HamsterCurrency getInstance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
public static LogUtils getLogUtils() {
|
public static LogUtils getLogUtils() {
|
||||||
return logUtils;
|
return logUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
|
instance = this;
|
||||||
logUtils = new LogUtils(this);
|
logUtils = new LogUtils(this);
|
||||||
FileManager.reload(this);
|
FileManager.reload(this);
|
||||||
logUtils.infoDividingLine();
|
logUtils.infoDividingLine();
|
||||||
|
@@ -1,9 +1,11 @@
|
|||||||
package cn.hamster3.currency.api;
|
package cn.hamster3.currency.api;
|
||||||
|
|
||||||
|
import cn.hamster3.currency.HamsterCurrency;
|
||||||
import cn.hamster3.currency.core.IDataManager;
|
import cn.hamster3.currency.core.IDataManager;
|
||||||
import cn.hamster3.currency.data.CurrencyLog;
|
import cn.hamster3.currency.data.CurrencyLog;
|
||||||
import cn.hamster3.currency.data.CurrencyType;
|
import cn.hamster3.currency.data.CurrencyType;
|
||||||
import cn.hamster3.currency.data.PlayerData;
|
import cn.hamster3.currency.data.PlayerData;
|
||||||
|
import cn.hamster3.currency.event.CurrencyChangeEvent;
|
||||||
import org.black_ixx.playerpoints.PlayerPoints;
|
import org.black_ixx.playerpoints.PlayerPoints;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
@@ -41,6 +43,8 @@ public abstract class CurrencyAPI {
|
|||||||
if (data == null) {
|
if (data == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
CurrencyChangeEvent event = new CurrencyChangeEvent(uuid, currencyID, data.getPlayerCurrency(currencyID), amount);
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(HamsterCurrency.getInstance(), () -> Bukkit.getPluginManager().callEvent(event));
|
||||||
data.setPlayerCurrency(currencyID, amount);
|
data.setPlayerCurrency(currencyID, amount);
|
||||||
dataManager.savePlayerData(data);
|
dataManager.savePlayerData(data);
|
||||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "set", amount, amount));
|
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "set", amount, amount));
|
||||||
@@ -56,6 +60,8 @@ public abstract class CurrencyAPI {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
double balance = data.getPlayerCurrency(currencyID) + amount;
|
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);
|
data.setPlayerCurrency(currencyID, balance);
|
||||||
dataManager.savePlayerData(data);
|
dataManager.savePlayerData(data);
|
||||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "add", amount, balance));
|
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "add", amount, balance));
|
||||||
@@ -71,6 +77,8 @@ public abstract class CurrencyAPI {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
double balance = data.getPlayerCurrency(currencyID) - amount;
|
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);
|
data.setPlayerCurrency(currencyID, balance);
|
||||||
dataManager.savePlayerData(data);
|
dataManager.savePlayerData(data);
|
||||||
dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "take", amount, balance));
|
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