2013-07-13 23:12:02 +02:00
|
|
|
package com.Acrobot.ChestShop.Listeners.Economy;
|
|
|
|
|
2017-10-29 23:50:24 +01:00
|
|
|
import com.Acrobot.ChestShop.Database.Account;
|
2013-07-13 23:14:10 +02:00
|
|
|
import com.Acrobot.ChestShop.Events.Economy.*;
|
2014-06-14 20:46:59 +02:00
|
|
|
import com.Acrobot.ChestShop.UUIDs.NameManager;
|
2013-07-13 23:14:10 +02:00
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.EventPriority;
|
|
|
|
import org.bukkit.event.Listener;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
2014-06-14 20:46:59 +02:00
|
|
|
import java.util.UUID;
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2013-07-13 23:12:02 +02:00
|
|
|
/**
|
|
|
|
* @author Acrobot
|
|
|
|
*/
|
2013-07-13 23:14:10 +02:00
|
|
|
public class ServerAccountCorrector implements Listener {
|
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onCurrencyAdd(CurrencyAddEvent event) {
|
2014-06-14 20:46:59 +02:00
|
|
|
UUID target = event.getTarget();
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (!NameManager.isAdminShop(target) || NameManager.isServerEconomyAccount(target)) {
|
2013-07-13 23:14:10 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
target = account != null ? account.getUuid() : null;
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2017-07-09 18:00:31 +02:00
|
|
|
if (target == null) {
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setHandled(true);
|
2017-07-09 18:00:31 +02:00
|
|
|
return;
|
|
|
|
}
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setTarget(target);
|
2013-07-13 23:14:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onCurrencySubtract(CurrencySubtractEvent event) {
|
2014-06-14 20:46:59 +02:00
|
|
|
UUID target = event.getTarget();
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (!NameManager.isAdminShop(target) || NameManager.isServerEconomyAccount(target)) {
|
2013-07-13 23:14:10 +02:00
|
|
|
return;
|
|
|
|
}
|
2018-05-07 16:32:51 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
target = account != null ? account.getUuid() : null;
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2017-07-09 18:00:31 +02:00
|
|
|
if (target == null) {
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setHandled(true);
|
2017-07-09 18:00:31 +02:00
|
|
|
return;
|
|
|
|
}
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setTarget(target);
|
2013-07-13 23:14:10 +02:00
|
|
|
}
|
|
|
|
|
2019-04-25 19:44:22 +02:00
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onCurrencyTransfer(CurrencyTransferEvent event) {
|
|
|
|
UUID partner = event.getPartner();
|
|
|
|
|
|
|
|
if (!NameManager.isAdminShop(partner) || NameManager.isServerEconomyAccount(partner)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
partner = account != null ? account.getUuid() : null;
|
|
|
|
|
|
|
|
if (partner == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setPartner(partner);
|
2019-04-25 19:44:22 +02:00
|
|
|
}
|
|
|
|
|
2013-07-13 23:14:10 +02:00
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onCurrencyCheck(CurrencyCheckEvent event) {
|
2014-06-14 20:46:59 +02:00
|
|
|
UUID target = event.getAccount();
|
2018-05-07 16:32:51 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (!NameManager.isAdminShop(target) || NameManager.isServerEconomyAccount(target)) {
|
2013-07-13 23:14:10 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
target = account != null ? account.getUuid() : null;
|
2018-05-07 16:32:51 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (target == null) {
|
2013-07-13 23:14:10 +02:00
|
|
|
event.hasEnough(true);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setAccount(target);
|
2013-07-13 23:14:10 +02:00
|
|
|
}
|
|
|
|
|
2013-07-21 16:51:36 +02:00
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onCurrencyHoldCheck(CurrencyHoldEvent event) {
|
2014-06-14 20:46:59 +02:00
|
|
|
UUID target = event.getAccount();
|
2018-05-07 16:32:51 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (!NameManager.isAdminShop(target) || NameManager.isServerEconomyAccount(target)) {
|
2013-07-21 16:51:36 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
target = account != null ? account.getUuid() : null;
|
|
|
|
|
|
|
|
if (target == null) {
|
|
|
|
event.canHold(true);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
event.setAccount(target);
|
2013-07-21 16:51:36 +02:00
|
|
|
}
|
|
|
|
|
2013-07-13 23:14:10 +02:00
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
|
|
public static void onBalanceCheck(CurrencyAmountEvent event) {
|
2014-06-14 20:46:59 +02:00
|
|
|
UUID target = event.getAccount();
|
2013-07-13 23:14:10 +02:00
|
|
|
|
2017-10-29 23:50:24 +01:00
|
|
|
if (!NameManager.isAdminShop(target) || NameManager.isServerEconomyAccount(target)) {
|
2013-07-13 23:14:10 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
Account account = NameManager.getServerEconomyAccount();
|
|
|
|
target = account != null ? account.getUuid() : null;
|
2018-05-07 16:32:51 +02:00
|
|
|
|
2017-11-15 21:13:07 +01:00
|
|
|
if (target == null) {
|
2013-07-13 23:14:10 +02:00
|
|
|
event.setAmount(BigDecimal.valueOf(Double.MAX_VALUE));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-09-26 21:22:15 +02:00
|
|
|
event.setAccount(target);
|
2013-07-13 23:14:10 +02:00
|
|
|
}
|
2013-07-13 23:12:02 +02:00
|
|
|
}
|