Citizens2/src/main/java/net/citizensnpcs/PaymentListener.java

40 lines
1.4 KiB
Java
Raw Normal View History

2012-08-15 18:06:13 +02:00
package net.citizensnpcs;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.event.PlayerCreateNPCEvent;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.util.Messages;
2012-08-15 18:06:13 +02:00
import net.milkbowl.vault.economy.Economy;
2012-10-15 04:37:40 +02:00
import net.milkbowl.vault.economy.EconomyResponse;
2012-08-15 18:06:13 +02:00
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.google.common.base.Preconditions;
public class PaymentListener implements Listener {
2012-08-15 18:06:13 +02:00
private final Economy provider;
public PaymentListener(Economy provider) {
2012-08-15 18:06:13 +02:00
Preconditions.checkNotNull(provider, "provider cannot be null");
this.provider = provider;
}
@EventHandler(ignoreCancelled = true)
public void onPlayerCreateNPC(PlayerCreateNPCEvent event) {
String name = event.getCreator().getName();
boolean hasAccount = provider.hasAccount(name);
2012-08-15 18:08:36 +02:00
if (!hasAccount || event.getCreator().hasPermission("citizens.npc.ignore-cost"))
2012-08-15 18:06:13 +02:00
return;
double cost = Setting.NPC_COST.asDouble();
2012-10-15 04:37:40 +02:00
EconomyResponse response = provider.withdrawPlayer(name, cost);
if (!response.transactionSuccess()) {
2012-08-15 18:06:13 +02:00
event.setCancelled(true);
2012-10-15 04:37:40 +02:00
event.setCancelReason(response.errorMessage);
2012-08-15 18:06:13 +02:00
return;
}
2012-10-15 04:37:40 +02:00
String formattedCost = provider.format(cost);
2012-10-04 08:58:35 +02:00
Messaging.sendTr(event.getCreator(), Messages.MONEY_WITHDRAWN, formattedCost);
2012-08-15 18:06:13 +02:00
}
}