- Updated Register

- Support for Townie's shop plots
- Doesn't load Towny older than 0.76.0.47 (Yeah, long custom difficult method)
- Replaced onBlockPistonRetract to use custom method instead of try/catch
- You won't sell to your own shop anymore
- Added Towny to dependencies
This commit is contained in:
Acrobot 2011-09-22 15:56:06 +02:00
parent 7ec812a3e1
commit ad51a87175
22 changed files with 299 additions and 189 deletions

View File

@ -13,7 +13,6 @@ import com.Acrobot.ChestShop.Logging.FileWriterQueue;
import com.Acrobot.ChestShop.Protection.MaskChest;
import com.avaje.ebean.EbeanServer;
import com.lennardf1989.bukkitex.Database;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.Listener;
@ -125,9 +124,7 @@ public class ChestShop extends JavaPlugin {
config.getString("database.url"),
config.getString("database.username"),
config.getString("database.password"),
config.getString("database.isolation"),
false,
true
config.getString("database.isolation")
);
DB = database.getDatabase();

View File

@ -1,6 +1,6 @@
package com.Acrobot.ChestShop.Config;
import com.LRFLEW.register.payment.forChestShop.Methods;
import com.nijikokun.register.payment.forChestShop.Methods;
/**
* @author Acrobot
@ -10,7 +10,7 @@ public class Config {
public static void setup(ConfigObject cfg) {
config = cfg;
Methods.preferred = Config.getString(Property.PREFERRED_ECONOMY_PLUGIN);
Methods.setPreferred(Config.getString(Property.PREFERRED_ECONOMY_PLUGIN));
}
public static boolean getBoolean(Property value) {

View File

@ -37,7 +37,9 @@ public enum Language {
SHOP_CREATED("Shop successfully created!"),
NO_PERMISSION("You don't have permissions to do that!"),
INCORRECT_ITEM_ID("You have specified invalid item id!");
INCORRECT_ITEM_ID("You have specified invalid item id!"),
TOWNY_CANNOT_CREATE_SHOP_HERE("You can't create shop here!");
private final String text;

View File

@ -24,7 +24,8 @@ public enum Property {
MASK_CHESTS_AS_OTHER_BLOCKS(false, "Do you want to mask shop chests as other blocks? HIGHLY EXPERIMENTAL, CAN LAG!"),
SHOW_MESSAGE_OUT_OF_STOCK(true, "Do you want to show \"Out of stock\" messages?"),
SHOW_TRANSACTION_INFORMATION_CLIENT(true, "Do you want to show \"You bought/sold... \" messages?"),
SHOW_TRANSACTION_INFORMATION_OWNER(true, "Do you want to show \"Somebody bought/sold... \" messages?");
SHOW_TRANSACTION_INFORMATION_OWNER(true, "Do you want to show \"Somebody bought/sold... \" messages?"),
TOWNY_INTEGRATION(false, "Do you want to only let people build inside shop plots?");
private final Object value;

View File

@ -1,7 +1,7 @@
package com.Acrobot.ChestShop;
import com.Acrobot.ChestShop.Utils.uLongName;
import com.LRFLEW.register.payment.forChestShop.Method;
import com.nijikokun.register.payment.forChestShop.Method;
/**
* @author Acrobot

View File

@ -11,14 +11,14 @@ import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent;
import org.bukkit.material.PistonBaseMaterial;
/**
* @author Acrobot
*/
public class blockBreak extends BlockListener {
public static boolean cancellingBlockBreak(Block block, Player player) {
if (player != null && (Permission.has(player, Permission.ADMIN) || Permission.has(player, Permission.MOD))) return false;
if (block == null || (player != null && (Permission.has(player, Permission.ADMIN) || Permission.has(player, Permission.MOD)))) return false;
if (uSign.isSign(block)) block.getState().update();
Sign sign = uBlock.findRestrictedSign(block);
@ -54,8 +54,10 @@ public class blockBreak extends BlockListener {
}
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
try{
if (!uSign.isSign(event.getRetractLocation().getBlock()) && cancellingBlockBreak(event.getRetractLocation().getBlock(), null)) event.setCancelled(true);
} catch (Exception ignored){}
if (cancellingBlockBreak(getRetractBlock(event), null)) event.setCancelled(true);
}
private static Block getRetractBlock(BlockPistonRetractEvent event) {
return event.getBlock().getState().getData() instanceof PistonBaseMaterial ? event.getRetractLocation().getBlock() : null;
}
}

View File

@ -12,6 +12,7 @@ import com.Acrobot.ChestShop.Utils.uLongName;
import com.Acrobot.ChestShop.Utils.uSign;
import net.minecraft.server.IInventory;
import net.minecraft.server.InventoryLargeChest;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
@ -50,7 +51,7 @@ public class playerInteract extends PlayerListener {
}
}
if (!uSign.isSign(block)) return; //It's not a sign!
if (!uSign.isSign(block)) return;
Sign sign = (Sign) block.getState();
if (!uSign.isValid(sign) || !enoughTimeHasPassed(player) || player.isSneaking()) return;
@ -59,8 +60,8 @@ public class playerInteract extends PlayerListener {
if (action == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true);
if (uLongName.stripName(player.getName()).equals(sign.getLine(0)) && (action != Action.LEFT_CLICK_BLOCK || !Config.getBoolean(Property.ALLOW_LEFT_CLICK_DESTROYING))) {
showChestGUI(player, block);
if (uLongName.stripName(player.getName()).equals(sign.getLine(0))) {
if (action != Action.LEFT_CLICK_BLOCK || !Config.getBoolean(Property.ALLOW_LEFT_CLICK_DESTROYING)) showChestGUI(player, block);
return;
}
@ -96,9 +97,7 @@ public class playerInteract extends PlayerListener {
IInventory inventory = ((CraftInventory) chest.getInventory()).getInventory();
chest = uBlock.findNeighbor(chest);
if (chest != null) { //There is also a neighbor chest
inventory = new InventoryLargeChest(player.getName() + "'s Shop", inventory, ((CraftInventory) chest.getInventory()).getInventory());
}
if (chest != null) inventory = new InventoryLargeChest(player.getName() + "'s Shop", inventory, ((CraftInventory) chest.getInventory()).getInventory());
((CraftPlayer) player).getHandle().a(inventory); //Show inventory on the screen
}

View File

@ -1,7 +1,7 @@
package com.Acrobot.ChestShop.Listeners;
import com.Acrobot.ChestShop.Economy;
import com.LRFLEW.register.payment.forChestShop.Methods;
import com.nijikokun.register.payment.forChestShop.Methods;
import org.bukkit.event.server.PluginDisableEvent;
import org.bukkit.event.server.ServerListener;

View File

@ -8,10 +8,13 @@ import com.Acrobot.ChestShop.Protection.Plugins.DeadboltPlugin;
import com.Acrobot.ChestShop.Protection.Plugins.LWCplugin;
import com.Acrobot.ChestShop.Protection.Plugins.LockettePlugin;
import com.Acrobot.ChestShop.Protection.Security;
import com.LRFLEW.register.payment.forChestShop.Methods;
import com.Acrobot.ChestShop.Utils.uNumber;
import com.Acrobot.ChestShop.Utils.uTowny;
import com.daemitus.deadbolt.Deadbolt;
import com.griefcraft.lwc.LWCPlugin;
import com.nijikokun.bukkit.Permissions.Permissions;
import com.nijikokun.register.payment.forChestShop.Methods;
import com.palmergames.bukkit.towny.Towny;
import info.somethingodd.bukkit.OddItem.OddItem;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.event.server.ServerListener;
@ -57,6 +60,13 @@ public class pluginEnable extends ServerListener {
} else if (name.equals("OddItem")) {
if (Odd.oddItem != null) return;
Odd.oddItem = (OddItem) plugin;
} else if (name.equals("Towny")) {
if (uTowny.towny != null) return;
int versionNumber = 0;
String[] split = plugin.getDescription().getVersion().split("\\.");
for (int i = 0; i < 4; i++) if (split.length >= i+1 && uNumber.isInteger(split[i])) versionNumber += (Math.pow(10, (3 - i) << 1) * Integer.parseInt(split[i])); //EPIC CODE RIGHT HERE
if(versionNumber < 760047){ System.out.println(ChestShop.chatPrefix + "Your Towny version is outdated! Need version AT LEAST 0.76.0.47! - Your version is " + plugin.getDescription().getVersion()); return; }
uTowny.towny = (Towny) plugin;
}
PluginDescriptionFile description = plugin.getDescription();
System.out.println(ChestShop.chatPrefix + description.getName() + " version " + description.getVersion() + " loaded.");

View File

@ -9,10 +9,7 @@ import com.Acrobot.ChestShop.Permission;
import com.Acrobot.ChestShop.Protection.Plugins.Default;
import com.Acrobot.ChestShop.Protection.Security;
import com.Acrobot.ChestShop.Signs.restrictedSign;
import com.Acrobot.ChestShop.Utils.uBlock;
import com.Acrobot.ChestShop.Utils.uLongName;
import com.Acrobot.ChestShop.Utils.uNumber;
import com.Acrobot.ChestShop.Utils.uSign;
import com.Acrobot.ChestShop.Utils.*;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@ -92,6 +89,13 @@ public class signChange extends BlockListener {
}
Block chestBlock = chest.getBlock();
if(!uTowny.canBuild(player, signBlock.getLocation(), chestBlock.getLocation())){
player.sendMessage(Config.getLocal(Language.TOWNY_CANNOT_CREATE_SHOP_HERE));
dropSign(event);
return;
}
boolean canAccess = !Security.isProtected(chestBlock) || Security.canAccess(player, chestBlock);
if (!(Security.protection instanceof Default) && canAccess) {

View File

@ -0,0 +1,36 @@
package com.Acrobot.ChestShop.Utils;
import com.Acrobot.ChestShop.Config.Config;
import com.Acrobot.ChestShop.Config.Property;
import com.palmergames.bukkit.towny.Towny;
import com.palmergames.bukkit.towny.object.TownBlock;
import com.palmergames.bukkit.towny.object.TownBlockType;
import com.palmergames.bukkit.towny.object.TownyPermission;
import org.bukkit.Location;
import org.bukkit.entity.Player;
/**
* @author Acrobot
*/
public class uTowny {
public static Towny towny;
public static boolean isInsideShopPlot(Location chestlocation, Location signLocation) {
return towny.getTownyUniverse().getTownBlock(chestlocation).getType() == TownBlockType.COMMERCIAL && towny.getTownyUniverse().getTownBlock(signLocation).getType() == TownBlockType.COMMERCIAL;
}
public static boolean isPlotOwner(Player player, Location chestLocation, Location signLocation){
return isBlockOwner(player, chestLocation) && isBlockOwner(player, signLocation);
}
public static boolean canBuild(Player player, Location chestLocation, Location signLocation){
return towny == null || !Config.getBoolean(Property.TOWNY_INTEGRATION) || (isInsideShopPlot(chestLocation, signLocation) && isPlotOwner(player, chestLocation, signLocation));
}
private static boolean isBlockOwner(Player player, Location location){
try{
return towny.getTownyUniverse().getTownBlock(location).isOwner(towny.getTownyUniverse().getResident(player.getName()));
} catch (Exception ex){ return false; }
}
}

View File

@ -59,14 +59,12 @@ public abstract class Database {
* @param username Username required to access the database
* @param password Password belonging to the username, may be empty
* @param isolation Isolation type. For example: SERIALIZABLE, also see TransactionIsolation
* @param logging If set to false, all logging will be disabled
* @param rebuild If set to true, all tables will be dropped and recreated. Be sure to create a backup before doing so!
*/
public void initializeDatabase(String driver, String url, String username, String password, String isolation, boolean logging, boolean rebuild) {
public void initializeDatabase(String driver, String url, String username, String password, String isolation) {
//Logging needs to be set back to the original level, no matter what happens
try {
//Disable all logging
disableDatabaseLogging(logging);
disableDatabaseLogging(false);
//Prepare the database
prepareDatabase(driver, url, username, password, isolation);
@ -75,12 +73,12 @@ public abstract class Database {
loadDatabase();
//Create all tables
installDatabase(rebuild);
installDatabase(true);
} catch (Exception ex) {
throw new RuntimeException("An exception has occured while initializing the database", ex);
} finally {
//Enable all logging
enableDatabaseLogging(logging);
enableDatabaseLogging(false);
}
}

View File

@ -1,4 +1,4 @@
package com.LRFLEW.register.payment.forChestShop;
package com.nijikokun.register.payment.forChestShop;
import org.bukkit.plugin.Plugin;
@ -14,11 +14,11 @@ public interface Method {
* Encodes the Plugin into an Object disguised as the Plugin.
* If you want the original Plugin Class you must cast it to the correct
* Plugin, to do so you have to verify the name and or version then cast.
*
* <p/>
* <pre>
* if(method.getName().equalsIgnoreCase("iConomy"))
* iConomy plugin = ((iConomy)method.getPlugin());</pre>
*
*
* @return <code>Object</code>
* @see #getName()
* @see #getVersion()
@ -38,11 +38,11 @@ public interface Method {
* @return <code>String</code> Plugin version.
*/
public String getVersion();
/**
* Returns the amount of decimal places that get stored
* NOTE: it will return -1 if there is no rounding
*
*
* @return <code>int</code> for each decimal place
*/
public int fractionalDigits();
@ -127,15 +127,25 @@ public interface Method {
*/
public interface MethodAccount {
public double balance();
public boolean set(double amount);
public boolean add(double amount);
public boolean subtract(double amount);
public boolean multiply(double amount);
public boolean divide(double amount);
public boolean hasEnough(double amount);
public boolean hasOver(double amount);
public boolean hasUnder(double amount);
public boolean isNegative();
public boolean remove();
@Override
@ -147,17 +157,29 @@ public interface Method {
*/
public interface MethodBankAccount {
public double balance();
public String getBankName();
public int getBankId();
public boolean set(double amount);
public boolean add(double amount);
public boolean subtract(double amount);
public boolean multiply(double amount);
public boolean divide(double amount);
public boolean hasEnough(double amount);
public boolean hasOver(double amount);
public boolean hasUnder(double amount);
public boolean isNegative();
public boolean remove();
@Override

View File

@ -1,4 +1,4 @@
package com.LRFLEW.register.payment.forChestShop;
package com.nijikokun.register.payment.forChestShop;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
@ -15,9 +15,10 @@ import java.util.Set;
* Methods also allows you to set a preferred method of payment before it captures
* payment plugins in the initialization process.
* <p/>
* in server.properties:
* in <code>bukkit.yml</code>:
* <blockquote><pre>
* economy=iConomy
* economy:
* preferred: "iConomy"
* </pre></blockquote>
*
* @author: Nijikokun <nijikokun@shortmail.com> (@nijikokun)
@ -33,19 +34,21 @@ public class Methods {
private static Set<String> Dependencies = new HashSet<String>();
private static Set<Method> Attachables = new HashSet<Method>();
static { _init(); }
static {
_init();
}
/**
* Implement all methods along with their respective name & class.
*/
private static void _init() {
addMethod("iConomy", new com.LRFLEW.register.payment.forChestShop.methods.iCo6());
addMethod("iConomy", new com.LRFLEW.register.payment.forChestShop.methods.iCo5());
addMethod("iConomy", new com.LRFLEW.register.payment.forChestShop.methods.iCo4());
addMethod("BOSEconomy", new com.LRFLEW.register.payment.forChestShop.methods.BOSE6());
addMethod("BOSEconomy", new com.LRFLEW.register.payment.forChestShop.methods.BOSE7());
addMethod("Essentials", new com.LRFLEW.register.payment.forChestShop.methods.EE17());
addMethod("Currency", new com.LRFLEW.register.payment.forChestShop.methods.MCUR());
addMethod("iConomy", new com.nijikokun.register.payment.forChestShop.methods.iCo6());
addMethod("iConomy", new com.nijikokun.register.payment.forChestShop.methods.iCo5());
addMethod("iConomy", new com.nijikokun.register.payment.forChestShop.methods.iCo4());
addMethod("BOSEconomy", new com.nijikokun.register.payment.forChestShop.methods.BOSE6());
addMethod("BOSEconomy", new com.nijikokun.register.payment.forChestShop.methods.BOSE7());
addMethod("Essentials", new com.nijikokun.register.payment.forChestShop.methods.EE17());
addMethod("Currency", new com.nijikokun.register.payment.forChestShop.methods.MCUR());
Dependencies.add("MultiCurrency");
}
@ -96,12 +99,11 @@ public class Methods {
* @return Method <em>or</em> Null
*/
public static Method createMethod(Plugin plugin) {
for (Method method : Methods) {
for (Method method : Methods)
if (method.isCompatible(plugin)) {
method.setPlugin(plugin);
return method;
}
}
return null;
}
@ -128,49 +130,59 @@ public class Methods {
* @return <code>boolean</code> True on success, False on failure.
*/
public static boolean setMethod(PluginManager manager) {
if (hasMethod()) return true;
if (self) { self = false; return false; }
if (hasMethod())
return true;
if (self) {
self = false;
return false;
}
int count = 0;
boolean match = false;
Plugin plugin;
for (String name : Dependencies) {
if (hasMethod()) break;
if (hasMethod())
break;
plugin = manager.getPlugin(name);
if (plugin == null) continue;
if (plugin == null)
continue;
Method current = createMethod(plugin);
if (current == null) continue;
if (current == null)
continue;
if (preferred.isEmpty())
Method = current;
else {
else
Attachables.add(current);
}
}
if (!preferred.isEmpty()) {
do {
if (hasMethod()) {
if (hasMethod())
match = true;
} else {
else {
for (Method attached : Attachables) {
if (attached == null) continue;
if (attached == null)
continue;
if (hasMethod()) {
match = true;
break;
}
if (preferred.isEmpty()) Method = attached;
if (preferred.isEmpty())
Method = attached;
if (count == 0) {
if (count == 0)
if (preferred.equalsIgnoreCase(attached.getName()))
Method = attached;
} else {
Method = attached;
}
else
Method = attached;
}
count++;
@ -181,6 +193,20 @@ public class Methods {
return hasMethod();
}
/**
* Sets the preferred economy
*
* @return <code>boolean</code>
*/
public static boolean setPreferred(String check) {
if (Dependencies.contains(check)) {
preferred = check;
return true;
}
return false;
}
/**
* Grab the existing and initialized (hopefully) Method Class.
*
@ -198,8 +224,12 @@ public class Methods {
* @return <code>boolean</code>
*/
public static boolean checkDisabled(Plugin method) {
if (!hasMethod()) return true;
if (Method.isCompatible(method)) Method = null;
if (!hasMethod())
return true;
if (Method.isCompatible(method))
Method = null;
return (Method == null);
}
}

View File

@ -1,7 +1,6 @@
package com.LRFLEW.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
package com.nijikokun.register.payment.forChestShop.methods;
import com.nijikokun.register.payment.forChestShop.Method;
import cosine.boseconomy.BOSEconomy;
import org.bukkit.plugin.Plugin;
@ -27,14 +26,17 @@ public class BOSE6 implements Method {
public String getVersion() {
return "0.6.2";
}
public int fractionalDigits() {
return 0;
return 0;
}
public String format(double amount) {
String currency = this.BOSEconomy.getMoneyNamePlural();
if(amount == 1) currency = this.BOSEconomy.getMoneyName();
if (amount == 1)
currency = this.BOSEconomy.getMoneyName();
return amount + " " + currency;
}
@ -51,25 +53,32 @@ public class BOSE6 implements Method {
}
public boolean hasBankAccount(String bank, String name) {
return this.BOSEconomy.isBankOwner(bank, name) || this.BOSEconomy.isBankMember(bank, name);
return this.BOSEconomy.isBankOwner(bank, name)
|| this.BOSEconomy.isBankMember(bank, name);
}
public MethodAccount getAccount(String name) {
if(!hasAccount(name)) return null;
if (!hasAccount(name))
return null;
return new BOSEAccount(name, this.BOSEconomy);
}
public MethodBankAccount getBankAccount(String bank, String name) {
if(!hasBankAccount(bank, name)) return null;
if (!hasBankAccount(bank, name))
return null;
return new BOSEBankAccount(bank, BOSEconomy);
}
public boolean isCompatible(Plugin plugin) {
return plugin.getDescription().getName().equalsIgnoreCase("boseconomy") && plugin instanceof BOSEconomy && plugin.getDescription().getVersion().equals("0.6.2");
return plugin.getDescription().getName().equalsIgnoreCase("boseconomy")
&& plugin instanceof BOSEconomy
&& plugin.getDescription().getVersion().equals("0.6.2");
}
public void setPlugin(Plugin plugin) {
BOSEconomy = (BOSEconomy)plugin;
BOSEconomy = (BOSEconomy) plugin;
}
public static class BOSEAccount implements MethodAccount {
@ -81,35 +90,35 @@ public class BOSE6 implements Method {
this.BOSEconomy = bOSEconomy;
}
public double balance() {
public double balance() {
return (double) this.BOSEconomy.getPlayerMoney(this.name);
}
public boolean set(double amount) {
int IntAmount = (int)Math.ceil(amount);
int IntAmount = (int) Math.ceil(amount);
return this.BOSEconomy.setPlayerMoney(this.name, IntAmount, false);
}
public boolean add(double amount) {
int IntAmount = (int)Math.ceil(amount);
int IntAmount = (int) Math.ceil(amount);
return this.BOSEconomy.addPlayerMoney(this.name, IntAmount, false);
}
public boolean subtract(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setPlayerMoney(this.name, (balance - IntAmount), false);
}
public boolean multiply(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setPlayerMoney(this.name, (balance * IntAmount), false);
}
public boolean divide(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setPlayerMoney(this.name, (balance / IntAmount), false);
}
@ -156,31 +165,31 @@ public class BOSE6 implements Method {
}
public boolean set(double amount) {
int IntAmount = (int)Math.ceil(amount);
int IntAmount = (int) Math.ceil(amount);
return this.BOSEconomy.setBankMoney(bank, IntAmount, true);
}
public boolean add(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setBankMoney(bank, (balance + IntAmount), false);
}
public boolean subtract(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setBankMoney(bank, (balance - IntAmount), false);
}
public boolean multiply(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setBankMoney(bank, (balance * IntAmount), false);
}
public boolean divide(double amount) {
int IntAmount = (int)Math.ceil(amount);
int balance = (int)this.balance();
int IntAmount = (int) Math.ceil(amount);
int balance = (int) this.balance();
return this.BOSEconomy.setBankMoney(bank, (balance / IntAmount), false);
}

View File

@ -1,7 +1,6 @@
package com.LRFLEW.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
package com.nijikokun.register.payment.forChestShop.methods;
import com.nijikokun.register.payment.forChestShop.Method;
import cosine.boseconomy.BOSEconomy;
import org.bukkit.plugin.Plugin;
@ -27,14 +26,17 @@ public class BOSE7 implements Method {
public String getVersion() {
return "0.7.0";
}
public int fractionalDigits() {
return this.BOSEconomy.getFractionalDigits();
return this.BOSEconomy.getFractionalDigits();
}
public String format(double amount) {
String currency = this.BOSEconomy.getMoneyNamePlural();
if(amount == 1) currency = this.BOSEconomy.getMoneyName();
if (amount == 1)
currency = this.BOSEconomy.getMoneyName();
return amount + " " + currency;
}
@ -55,21 +57,27 @@ public class BOSE7 implements Method {
}
public MethodAccount getAccount(String name) {
if(!hasAccount(name)) return null;
if (!hasAccount(name))
return null;
return new BOSEAccount(name, this.BOSEconomy);
}
public MethodBankAccount getBankAccount(String bank, String name) {
if(!hasBankAccount(bank, name)) return null;
if (!hasBankAccount(bank, name))
return null;
return new BOSEBankAccount(bank, BOSEconomy);
}
public boolean isCompatible(Plugin plugin) {
return plugin.getDescription().getName().equalsIgnoreCase("boseconomy") && plugin instanceof BOSEconomy && !plugin.getDescription().getVersion().equals("0.6.2");
return plugin.getDescription().getName().equalsIgnoreCase("boseconomy")
&& plugin instanceof BOSEconomy
&& !plugin.getDescription().getVersion().equals("0.6.2");
}
public void setPlugin(Plugin plugin) {
BOSEconomy = (BOSEconomy)plugin;
BOSEconomy = (BOSEconomy) plugin;
}
public static class BOSEAccount implements MethodAccount {

View File

@ -1,12 +1,10 @@
package com.LRFLEW.register.payment.forChestShop.methods;
package com.nijikokun.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.api.Economy;
import com.earth2me.essentials.api.NoLoanPermittedException;
import com.earth2me.essentials.api.UserDoesNotExistException;
import com.nijikokun.register.payment.forChestShop.Method;
import org.bukkit.plugin.Plugin;
/**
@ -33,9 +31,9 @@ public class EE17 implements Method {
public String getVersion() {
return "2.2";
}
public int fractionalDigits() {
return -1;
return -1;
}
public String format(double amount) {
@ -59,23 +57,25 @@ public class EE17 implements Method {
}
public MethodAccount getAccount(String name) {
if(!hasAccount(name)) return null;
if (!hasAccount(name))
return null;
return new EEcoAccount(name);
}
public MethodBankAccount getBankAccount(String bank, String name) {
return null;
}
public boolean isCompatible(Plugin plugin) {
try { Class.forName("com.earth2me.essentials.api.Economy"); }
catch(Exception e) { return false; }
return plugin.getDescription().getName().equalsIgnoreCase("essentials") && plugin instanceof Essentials;
public boolean isCompatible(Plugin plugin) {
try { Class.forName("com.earth2me.essentials.api.Economy"); } catch (Exception e) { return false; }
return plugin.getDescription().getName().equalsIgnoreCase("essentials")
&& plugin instanceof Essentials;
}
public void setPlugin(Plugin plugin) {
Essentials = (Essentials)plugin;
Essentials = (Essentials) plugin;
}
public static class EEcoAccount implements MethodAccount {

View File

@ -1,10 +1,8 @@
package com.LRFLEW.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
package com.nijikokun.register.payment.forChestShop.methods;
import com.nijikokun.register.payment.forChestShop.Method;
import me.ashtheking.currency.Currency;
import me.ashtheking.currency.CurrencyList;
import org.bukkit.plugin.Plugin;
/**
@ -28,9 +26,9 @@ public class MCUR implements Method {
public String getVersion() {
return "0.09";
}
public int fractionalDigits() {
return -1;
return -1;
}
public String format(double amount) {
@ -63,15 +61,15 @@ public class MCUR implements Method {
public boolean isCompatible(Plugin plugin) {
return (plugin.getDescription().getName().equalsIgnoreCase("Currency")
|| plugin.getDescription().getName().equalsIgnoreCase("MultiCurrency"))
&& plugin instanceof Currency;
|| plugin.getDescription().getName().equalsIgnoreCase("MultiCurrency"))
&& plugin instanceof Currency;
}
public void setPlugin(Plugin plugin) {
currencyList = (Currency) plugin;
}
public static class MCurrencyAccount implements MethodAccount{
public static class MCurrencyAccount implements MethodAccount {
private String name;
public MCurrencyAccount(String name) {

View File

@ -1,10 +1,8 @@
package com.LRFLEW.register.payment.forChestShop.methods;
package com.nijikokun.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
import com.nijiko.coelho.iConomy.iConomy;
import com.nijiko.coelho.iConomy.system.Account;
import com.nijikokun.register.payment.forChestShop.Method;
import org.bukkit.plugin.Plugin;
/**
@ -28,12 +26,12 @@ public class iCo4 implements Method {
public String getVersion() {
return "4";
}
public int fractionalDigits() {
return 2;
return 2;
}
public String format(double amount) {
public String format(double amount) {
return com.nijiko.coelho.iConomy.iConomy.getBank().format(amount);
}
@ -60,17 +58,17 @@ public class iCo4 implements Method {
public MethodBankAccount getBankAccount(String bank, String name) {
return null;
}
public boolean isCompatible(Plugin plugin) {
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.nijiko.coelho.iConomy.iConomy")
&& plugin instanceof iConomy;
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.nijiko.coelho.iConomy.iConomy")
&& plugin instanceof iConomy;
}
public void setPlugin(Plugin plugin) {
iConomy = (iConomy)plugin;
iConomy = (iConomy) plugin;
}
public static class iCoAccount implements MethodAccount {
private Account account;
@ -87,31 +85,31 @@ public class iCo4 implements Method {
}
public boolean set(double amount) {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.setBalance(amount);
return true;
}
public boolean add(double amount) {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.add(amount);
return true;
}
public boolean subtract(double amount) {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.subtract(amount);
return true;
}
public boolean multiply(double amount) {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.multiply(amount);
return true;
}
public boolean divide(double amount) {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.divide(amount);
return true;
}
@ -133,7 +131,7 @@ public class iCo4 implements Method {
}
public boolean remove() {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.remove();
return true;
}

View File

@ -1,13 +1,11 @@
package com.LRFLEW.register.payment.forChestShop.methods;
package com.nijikokun.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
import com.iConomy.iConomy;
import com.iConomy.system.Account;
import com.iConomy.system.BankAccount;
import com.iConomy.system.Holdings;
import com.iConomy.util.Constants;
import com.nijikokun.register.payment.forChestShop.Method;
import org.bukkit.plugin.Plugin;
/**
@ -31,12 +29,12 @@ public class iCo5 implements Method {
public String getVersion() {
return "5";
}
public int fractionalDigits() {
return 2;
return 2;
}
public String format(double amount) {
public String format(double amount) {
return com.iConomy.iConomy.format(amount);
}
@ -65,13 +63,13 @@ public class iCo5 implements Method {
}
public boolean isCompatible(Plugin plugin) {
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.iConomy.iConomy")
&& plugin instanceof iConomy;
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.iConomy.iConomy")
&& plugin instanceof iConomy;
}
public void setPlugin(Plugin plugin) {
iConomy = (iConomy)plugin;
iConomy = (iConomy) plugin;
}
public static class iCoAccount implements MethodAccount {
@ -92,31 +90,31 @@ public class iCo5 implements Method {
}
public boolean set(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.set(amount);
return true;
}
public boolean add(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.add(amount);
return true;
}
public boolean subtract(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.subtract(amount);
return true;
}
public boolean multiply(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.multiply(amount);
return true;
}
public boolean divide(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.divide(amount);
return true;
}
@ -138,7 +136,7 @@ public class iCo5 implements Method {
}
public boolean remove() {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.remove();
return true;
}
@ -170,31 +168,31 @@ public class iCo5 implements Method {
}
public boolean set(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.set(amount);
return true;
}
public boolean add(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.add(amount);
return true;
}
public boolean subtract(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.subtract(amount);
return true;
}
public boolean multiply(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.multiply(amount);
return true;
}
public boolean divide(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.divide(amount);
return true;
}
@ -216,7 +214,7 @@ public class iCo5 implements Method {
}
public boolean remove() {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.remove();
return true;
}

View File

@ -1,12 +1,10 @@
package com.LRFLEW.register.payment.forChestShop.methods;
package com.nijikokun.register.payment.forChestShop.methods;
import com.LRFLEW.register.payment.forChestShop.Method;
import com.iCo6.iConomy;
import com.iCo6.system.Account;
import com.iCo6.system.Accounts;
import com.iCo6.system.Holdings;
import com.nijikokun.register.payment.forChestShop.Method;
import org.bukkit.plugin.Plugin;
/**
@ -30,12 +28,12 @@ public class iCo6 implements Method {
public String getVersion() {
return "6";
}
public int fractionalDigits() {
return 2;
return 2;
}
public String format(double amount) {
public String format(double amount) {
return com.iCo6.iConomy.format(amount);
}
@ -64,13 +62,13 @@ public class iCo6 implements Method {
}
public boolean isCompatible(Plugin plugin) {
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.iCo6.iConomy")
&& plugin instanceof iConomy;
return plugin.getDescription().getName().equalsIgnoreCase("iconomy")
&& plugin.getClass().getName().equals("com.iCo6.iConomy")
&& plugin instanceof iConomy;
}
public void setPlugin(Plugin plugin) {
iConomy = (iConomy)plugin;
iConomy = (iConomy) plugin;
}
public static class iCoAccount implements MethodAccount {
@ -91,31 +89,31 @@ public class iCo6 implements Method {
}
public boolean set(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.setBalance(amount);
return true;
}
public boolean add(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.add(amount);
return true;
}
public boolean subtract(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.subtract(amount);
return true;
}
public boolean multiply(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.multiply(amount);
return true;
}
public boolean divide(double amount) {
if(this.holdings == null) return false;
if (this.holdings == null) return false;
this.holdings.divide(amount);
return true;
}
@ -137,7 +135,7 @@ public class iCo6 implements Method {
}
public boolean remove() {
if(this.account == null) return false;
if (this.account == null) return false;
this.account.remove();
return true;
}

View File

@ -2,7 +2,7 @@ name: ChestShop
main: com.Acrobot.ChestShop.ChestShop
version: 3.12
version: 3.2
author: Acrobot
@ -10,7 +10,7 @@ description: >
A chest shop for economy plugins.
softdepend: [Permissions, LWC, Lockette, Deadbolt, OddItem]
softdepend: [Permissions, LWC, Lockette, Deadbolt, OddItem, Towny]
commands:
iteminfo:
aliases: [iinfo]