Basic logging of trade/buy/sell signs and sell command

This commit is contained in:
snowleo 2011-07-06 02:58:59 +02:00
parent 8afde1ccc0
commit b272374072
7 changed files with 122 additions and 1 deletions

View File

@ -241,11 +241,13 @@ public class Essentials extends JavaPlugin implements IEssentials
public void onDisable()
{
instance = null;
Trade.closeLog();
logger.removeHandler(errorHandler);
}
public void reload()
{
Trade.closeLog();
loadBanList();
for (IConf iConf : confList)

View File

@ -385,4 +385,9 @@ public class Settings implements IConf
}
return max;
}
boolean isEcoLogEnabled()
{
return config.getBoolean("economy-log-enabled", false);
}
}

View File

@ -1,6 +1,13 @@
package com.earth2me.essentials;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.inventory.ItemStack;
@ -122,4 +129,102 @@ public class Trade
{
return itemStack;
}
private static FileWriter fw = null;
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, IEssentials ess)
{
if (!ess.getSettings().isEcoLogEnabled())
{
return;
}
if (fw == null)
{
try
{
fw = new FileWriter(new File(ess.getDataFolder(), "trade.log"), true);
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
}
StringBuilder sb = new StringBuilder();
sb.append(type).append(",").append(subtype).append(",").append("event").append(",\"");
sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date()));
sb.append("\",\"");
if (sender != null)
{
sb.append(sender);
}
sb.append("\",");
if (charge == null)
{
sb.append("\"\",\"\",\"\"");
}
else
{
if (charge.getItemStack() != null)
{
sb.append(charge.getItemStack().getAmount()).append(",");
sb.append(charge.getItemStack().getType().toString()).append(",");
sb.append(charge.getItemStack().getDurability());
}
if (charge.getMoney() != null)
{
sb.append(charge.getMoney()).append(",");
sb.append("money").append(",");
sb.append(ess.getSettings().getCurrencySymbol());
}
}
sb.append(",\"");
if (receiver != null)
{
sb.append(receiver);
}
sb.append("\",");
if (pay == null)
{
sb.append("\"\",\"\",\"\"");
}
else
{
if (pay.getItemStack() != null)
{
sb.append(pay.getItemStack().getAmount()).append(",");
sb.append(pay.getItemStack().getType().toString()).append(",");
sb.append(pay.getItemStack().getDurability());
}
if (pay.getMoney() != null)
{
sb.append(pay.getMoney()).append(",");
sb.append("money").append(",");
sb.append(ess.getSettings().getCurrencySymbol());
}
}
sb.append("\n");
try
{
fw.write(sb.toString());
fw.flush();
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
}
public static void closeLog()
{
if (fw != null) {
try
{
fw.close();
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
fw = null;
}
}
}

View File

@ -4,6 +4,7 @@ import org.bukkit.Server;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.InventoryWorkaround;
import com.earth2me.essentials.ItemDb;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.logging.Level;
@ -151,8 +152,10 @@ public class Commandsell extends EssentialsCommand
}
charge(user);
InventoryWorkaround.removeItem(user.getInventory(), true, new ItemStack(is.getType(), amount, is.getDurability()));
final ItemStack ris = new ItemStack(is.getType(), amount, is.getDurability());
InventoryWorkaround.removeItem(user.getInventory(), true, ris);
user.updateInventory();
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth*amount, ess), ess);
user.giveMoney(worth * amount);
user.sendMessage(Util.format("itemSold", Util.formatCurrency(worth * amount), amount, Util.formatCurrency(worth)));
logger.log(Level.INFO, Util.format("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(), Util.formatCurrency(worth * amount), amount, Util.formatCurrency(worth)));

View File

@ -29,6 +29,7 @@ public class SignBuy extends EssentialsSign
charge.isAffordableFor(player);
items.pay(player);
charge.charge(player);
Trade.log("Sign", "Buy", "Interact", username, charge, username, items, ess);
return true;
}
}

View File

@ -29,6 +29,7 @@ public class SignSell extends EssentialsSign
charge.isAffordableFor(player);
money.pay(player);
charge.charge(player);
Trade.log("Sign", "Sell", "Interact", username, charge, username, money, ess);
return true;
}
}

View File

@ -24,6 +24,7 @@ public class SignTrade extends EssentialsSign
charge.isAffordableFor(player);
sign.setLine(3, "§8" + username);
charge.charge(player);
Trade.log("Sign", "Trade", "Create", username, charge, username, null, ess);
return true;
}
@ -35,6 +36,7 @@ public class SignTrade extends EssentialsSign
final Trade stored = getTrade(sign, 1, true, true, ess);
substractAmount(sign, 1, stored);
stored.pay(player);
Trade.log("Sign", "Trade", "OwnerInteract", username, null, username, stored, ess);
}
else
{
@ -45,6 +47,7 @@ public class SignTrade extends EssentialsSign
trade.pay(player);
addAmount(sign, 1, charge);
charge.charge(player);
Trade.log("Sign", "Trade", "Interact", sign.getLine(3), charge, username, trade, ess);
}
return true;
}
@ -58,6 +61,7 @@ public class SignTrade extends EssentialsSign
final Trade stored2 = getTrade(sign, 2, true, false, ess);
stored1.pay(player);
stored2.pay(player);
Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, ess);
return true;
}
else