v1.2.6 Update

Added:
- New options to disable and enable the Selling and Bidding features.
- New messages in the Messages.yml. 

Changes:
- Recoded how the whole messaging system works.
- Recoded the file system and how all yml files are accessed and controlled.
This commit is contained in:
BadBones69 2018-07-21 22:06:23 -04:00
parent 9d44a5d701
commit a709c220ee
13 changed files with 945 additions and 352 deletions

12
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>me.badbones69</groupId>
<artifactId>crazyauctions</artifactId>
<version>1.2.5.1</version>
<version>1.2.6</version>
<repositories>
<repository>
@ -17,6 +17,10 @@
<id>vault-repo</id>
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
</repository>
<repository>
<id>reserve-repo</id>
<url>https://dl.bintray.com/theneweconomy/java/</url>
</repository>
</repositories>
<dependencies>
@ -32,6 +36,12 @@
<version>1.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.tnemc</groupId>
<artifactId>Reserve</artifactId>
<version>0.1.0.10</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

@ -1,12 +1,10 @@
package me.badbones69.crazyauctions;
import com.massivestats.MassiveStats;
import me.badbones69.crazyauctions.api.Category;
import me.badbones69.crazyauctions.api.CrazyAuctions;
import me.badbones69.crazyauctions.api.SettingsManager;
import me.badbones69.crazyauctions.api.ShopType;
import me.badbones69.crazyauctions.api.*;
import me.badbones69.crazyauctions.api.FileManager.Files;
import me.badbones69.crazyauctions.api.events.AuctionListEvent;
import me.badbones69.crazyauctions.controlers.GUI;
import me.badbones69.crazyauctions.controllers.GUI;
import me.badbones69.crazyauctions.currency.Vault;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@ -22,18 +20,19 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;
public class Main extends JavaPlugin implements Listener {
public static SettingsManager settings = SettingsManager.getInstance();
public static CrazyAuctions auc = CrazyAuctions.getInstance();
public static FileManager fileManager = FileManager.getInstance();
public static CrazyAuctions crazyAuctions = CrazyAuctions.getInstance();
@Override
public void onEnable() {
saveDefaultConfig();
settings.setup(this);
// Methods.hasUpdate();
fileManager.logInfo(true).setup(this);
crazyAuctions.loadCrazyAuctions();
Bukkit.getServer().getPluginManager().registerEvents(this, this);
Bukkit.getServer().getPluginManager().registerEvents(new GUI(), this);
Methods.updateAuction();
@ -45,13 +44,14 @@ public class Main extends JavaPlugin implements Listener {
MassiveStats massiveStats = new MassiveStats(this);
}catch(Exception e) {
}
Messages.addMissingMessages();
}
@Override
public void onDisable() {
int file = 0;
Bukkit.getScheduler().cancelTask(file);
settings.saveData();
Files.DATA.saveFile();
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLable, String[] args) {
@ -59,40 +59,42 @@ public class Main extends JavaPlugin implements Listener {
if(args.length == 0) {
if(!Methods.hasPermission(sender, "Access")) return true;
if(!(sender instanceof Player)) {
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Players-Only")));
sender.sendMessage(Messages.PLAYERS_ONLY.getMessage());
return true;
}
Player player = (Player) sender;
if(settings.getConfig().contains("Settings.Category-Page-Opens-First")) {
if(settings.getConfig().getBoolean("Settings.Category-Page-Opens-First")) {
GUI.openCateories(player, ShopType.SELL);
if(Files.CONFIG.getFile().contains("Settings.Category-Page-Opens-First")) {
if(Files.CONFIG.getFile().getBoolean("Settings.Category-Page-Opens-First")) {
GUI.openCategories(player, ShopType.SELL);
return true;
}
}
GUI.openShop(player, ShopType.SELL, Category.NONE, 1);
if(crazyAuctions.isSellingEnabled()) {
GUI.openShop(player, ShopType.SELL, Category.NONE, 1);
}else if(crazyAuctions.isBiddingEnabled()) {
GUI.openShop(player, ShopType.BID, Category.NONE, 1);
}else {
player.sendMessage(Methods.getPrefix() + Methods.color("&cThe bidding and selling options are both disabled. Please contact the admin about this."));
}
return true;
}
if(args.length >= 1) {
if(args[0].equalsIgnoreCase("Help")) {// CA Help
if(!Methods.hasPermission(sender, "Access")) return true;
for(String msg : settings.getMsg().getStringList("Messages.Help-Menu")) {
sender.sendMessage(Methods.color(msg));
}
sender.sendMessage(Messages.HELP.getMessage());
return true;
}
if(args[0].equalsIgnoreCase("Reload")) {// CA Reload
if(!Methods.hasPermission(sender, "Admin")) return true;
settings.reloadConfig();
settings.reloadData();
settings.reloadMsg();
settings.setup(this);
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Reload")));
fileManager.logInfo(true).setup(this);
crazyAuctions.loadCrazyAuctions();
sender.sendMessage(Messages.RELOAD.getMessage());
return true;
}
if(args[0].equalsIgnoreCase("View")) {// CA Reload
if(args[0].equalsIgnoreCase("View")) {// CA View <Player>
if(!Methods.hasPermission(sender, "View")) return true;
if(!(sender instanceof Player)) {
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Players-Only")));
sender.sendMessage(Messages.PLAYERS_ONLY.getMessage());
return true;
}
if(args.length >= 2) {
@ -100,13 +102,13 @@ public class Main extends JavaPlugin implements Listener {
GUI.openViewer(player, args[1], 1);
return true;
}
sender.sendMessage(Methods.getPrefix() + Methods.color("&c/CA View <Player>"));
sender.sendMessage(Messages.CRAZYAUCTIONS_VIEW.getMessage());
return true;
}
if(args[0].equalsIgnoreCase("Expired") || args[0].equalsIgnoreCase("Collect")) {// CA Expired
if(!Methods.hasPermission(sender, "Access")) return true;
if(!(sender instanceof Player)) {
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Players-Only")));
sender.sendMessage(Messages.PLAYERS_ONLY.getMessage());
return true;
}
Player player = (Player) sender;
@ -116,7 +118,7 @@ public class Main extends JavaPlugin implements Listener {
if(args[0].equalsIgnoreCase("Listed")) {// CA Listed
if(!Methods.hasPermission(sender, "Access")) return true;
if(!(sender instanceof Player)) {
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Players-Only")));
sender.sendMessage(Messages.PLAYERS_ONLY.getMessage());
return true;
}
Player player = (Player) sender;
@ -125,22 +127,32 @@ public class Main extends JavaPlugin implements Listener {
}
if(args[0].equalsIgnoreCase("Sell") || args[0].equalsIgnoreCase("Bid")) {// /CA Sell/Bid <Price> [Amount of Items]
if(!(sender instanceof Player)) {
sender.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Players-Only")));
sender.sendMessage(Messages.PLAYERS_ONLY.getMessage());
return true;
}
if(args.length >= 2) {
Player player = (Player) sender;
if(args[0].equalsIgnoreCase("Sell")) {
if(!crazyAuctions.isSellingEnabled()) {
player.sendMessage(Messages.SELLING_DISABLED.getMessage());
return true;
}
if(!Methods.hasPermission(player, "Sell")) return true;
}
if(args[0].equalsIgnoreCase("Bid")) {
if(!crazyAuctions.isBiddingEnabled()) {
player.sendMessage(Messages.BIDDING_DISABLED.getMessage());
return true;
}
if(!Methods.hasPermission(player, "Bid")) return true;
}
ItemStack item = Methods.getItemInHand(player);
int amount = item.getAmount();
if(args.length >= 3) {
if(!Methods.isInt(args[2])) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Not-A-Number").replaceAll("%Arg%", args[2]).replaceAll("%arg%", args[2])));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Arg%", args[2]);
player.sendMessage(Messages.NOT_A_NUMBER.getMessage(placeholders));
return true;
}
amount = Integer.parseInt(args[2]);
@ -148,30 +160,32 @@ public class Main extends JavaPlugin implements Listener {
if(amount > item.getAmount()) amount = item.getAmount();
}
if(!Methods.isLong(args[1])) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Not-A-Number").replaceAll("%Arg%", args[1]).replaceAll("%arg%", args[1])));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Arg%", args[1]);
player.sendMessage(Messages.NOT_A_NUMBER.getMessage(placeholders));
return true;
}
if(Methods.getItemInHand(player).getType() == Material.AIR) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Doesnt-Have-Item-In-Hand")));
player.sendMessage(Messages.DOSENT_HAVE_ITEM_IN_HAND.getMessage());
return false;
}
Long price = Long.parseLong(args[1]);
if(args[0].equalsIgnoreCase("Bid")) {
if(price < settings.getConfig().getLong("Settings.Minimum-Bid-Price")) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Bid-Price-To-Low")));
if(price < Files.CONFIG.getFile().getLong("Settings.Minimum-Bid-Price")) {
player.sendMessage(Messages.BID_PRICE_TO_LOW.getMessage());
return true;
}
if(price > settings.getConfig().getLong("Settings.Max-Beginning-Bid-Price")) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Bid-Price-To-High")));
if(price > Files.CONFIG.getFile().getLong("Settings.Max-Beginning-Bid-Price")) {
player.sendMessage(Messages.BID_PRICE_TO_HIGH.getMessage());
return true;
}
}else {
if(price < settings.getConfig().getLong("Settings.Minimum-Sell-Price")) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Sell-Price-To-Low")));
if(price < Files.CONFIG.getFile().getLong("Settings.Minimum-Sell-Price")) {
player.sendMessage(Messages.SELL_PRICE_TO_LOW.getMessage());
return true;
}
if(price > settings.getConfig().getLong("Settings.Max-Beginning-Sell-Price")) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Sell-Price-To-High")));
if(price > Files.CONFIG.getFile().getLong("Settings.Max-Beginning-Sell-Price")) {
player.sendMessage(Messages.SELL_PRICE_TO_HIGH.getMessage());
return true;
}
}
@ -210,29 +224,29 @@ public class Main extends JavaPlugin implements Listener {
}
}
if(args[0].equalsIgnoreCase("Sell")) {
if(auc.getItems(player, ShopType.SELL).size() >= SellLimit) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Max-Items")));
if(crazyAuctions.getItems(player, ShopType.SELL).size() >= SellLimit) {
player.sendMessage(Messages.MAX_ITEMS.getMessage());
return true;
}
}
if(args[0].equalsIgnoreCase("Bid")) {
if(auc.getItems(player, ShopType.BID).size() >= BidLimit) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Max-Items")));
if(crazyAuctions.getItems(player, ShopType.BID).size() >= BidLimit) {
player.sendMessage(Messages.MAX_ITEMS.getMessage());
return true;
}
}
}
for(String id : settings.getConfig().getStringList("Settings.BlackList")) {
for(String id : Files.CONFIG.getFile().getStringList("Settings.BlackList")) {
if(item.getType() == Methods.makeItem(id, 1).getType()) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Item-BlackListed")));
player.sendMessage(Messages.ITEM_BLACKLISTED.getMessage());
return true;
}
}
if(!settings.getConfig().getBoolean("Settings.Allow-Damaged-Items")) {
if(!Files.CONFIG.getFile().getBoolean("Settings.Allow-Damaged-Items")) {
for(Material i : getDamageableItems()) {
if(item.getType() == i) {
if(item.getDurability() > 0) {
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Item-Damaged")));
player.sendMessage(Messages.ITEM_DAMAGED.getMessage());
return true;
}
}
@ -241,38 +255,40 @@ public class Main extends JavaPlugin implements Listener {
String seller = player.getName();
int num = 1;
Random r = new Random();
for(; settings.getData().contains("Items." + num); num++) ;
settings.getData().set("Items." + num + ".Price", price);
settings.getData().set("Items." + num + ".Seller", seller);
for(; Files.DATA.getFile().contains("Items." + num); num++) ;
Files.DATA.getFile().set("Items." + num + ".Price", price);
Files.DATA.getFile().set("Items." + num + ".Seller", seller);
if(args[0].equalsIgnoreCase("Bid")) {
settings.getData().set("Items." + num + ".Time-Till-Expire", Methods.convertToMill(settings.getConfig().getString("Settings.Bid-Time")));
Files.DATA.getFile().set("Items." + num + ".Time-Till-Expire", Methods.convertToMill(Files.CONFIG.getFile().getString("Settings.Bid-Time")));
}else {
settings.getData().set("Items." + num + ".Time-Till-Expire", Methods.convertToMill(settings.getConfig().getString("Settings.Sell-Time")));
Files.DATA.getFile().set("Items." + num + ".Time-Till-Expire", Methods.convertToMill(Files.CONFIG.getFile().getString("Settings.Sell-Time")));
}
settings.getData().set("Items." + num + ".Full-Time", Methods.convertToMill(settings.getConfig().getString("Settings.Full-Expire-Time")));
Files.DATA.getFile().set("Items." + num + ".Full-Time", Methods.convertToMill(Files.CONFIG.getFile().getString("Settings.Full-Expire-Time")));
int id = r.nextInt(999999);
// Runs 3x to check for same ID.
for(String i : settings.getData().getConfigurationSection("Items").getKeys(false))
if(settings.getData().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
for(String i : settings.getData().getConfigurationSection("Items").getKeys(false))
if(settings.getData().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
for(String i : settings.getData().getConfigurationSection("Items").getKeys(false))
if(settings.getData().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
settings.getData().set("Items." + num + ".StoreID", id);
for(String i : Files.DATA.getFile().getConfigurationSection("Items").getKeys(false))
if(Files.DATA.getFile().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
for(String i : Files.DATA.getFile().getConfigurationSection("Items").getKeys(false))
if(Files.DATA.getFile().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
for(String i : Files.DATA.getFile().getConfigurationSection("Items").getKeys(false))
if(Files.DATA.getFile().getInt("Items." + i + ".StoreID") == id) id = r.nextInt(Integer.MAX_VALUE);
Files.DATA.getFile().set("Items." + num + ".StoreID", id);
ShopType type = ShopType.SELL;
if(args[0].equalsIgnoreCase("Bid")) {
settings.getData().set("Items." + num + ".Biddable", true);
Files.DATA.getFile().set("Items." + num + ".Biddable", true);
type = ShopType.BID;
}else {
settings.getData().set("Items." + num + ".Biddable", false);
Files.DATA.getFile().set("Items." + num + ".Biddable", false);
}
settings.getData().set("Items." + num + ".TopBidder", "None");
Files.DATA.getFile().set("Items." + num + ".TopBidder", "None");
ItemStack I = item.clone();
I.setAmount(amount);
settings.getData().set("Items." + num + ".Item", I);
settings.saveData();
Files.DATA.getFile().set("Items." + num + ".Item", I);
Files.DATA.saveFile();
Bukkit.getPluginManager().callEvent(new AuctionListEvent(player, type, I, price));
player.sendMessage(Methods.getPrefix() + Methods.color(settings.getMsg().getString("Messages.Added-Item-To-Auction").replaceAll("%Price%", price + "").replaceAll("%price%", price + "")));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Price%", price + "");
player.sendMessage(Messages.ADDED_ITEM_TO_AUCTION.getMessage(placeholders));
if(item.getAmount() <= 1 || (item.getAmount() - amount) <= 0) {
Methods.setItemInHand(player, new ItemStack(Material.AIR));
}else {
@ -280,12 +296,12 @@ public class Main extends JavaPlugin implements Listener {
}
return false;
}
sender.sendMessage(Methods.getPrefix() + Methods.color("/CA Sell/Bid <Price> [Amount of items]"));
sender.sendMessage(Messages.CRAZYAUCTIONS_SELL_BID.getMessage());
return true;
}
}
}
sender.sendMessage(Methods.getPrefix() + Methods.color("/CA Help"));
sender.sendMessage(Messages.CRAZYAUCTIONS_HELP.getMessage());
return false;
}

View File

@ -1,5 +1,8 @@
package me.badbones69.crazyauctions;
import me.badbones69.crazyauctions.api.FileManager;
import me.badbones69.crazyauctions.api.FileManager.Files;
import me.badbones69.crazyauctions.api.Messages;
import me.badbones69.crazyauctions.api.events.AuctionWinBidEvent;
import me.badbones69.crazyauctions.currency.CurrencyManager;
import org.bukkit.*;
@ -12,25 +15,27 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.*;
public class Methods {
public static Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("CrazyAuctions");
private static FileManager fileManager = FileManager.getInstance();
public static String color(String msg) {
return ChatColor.translateAlternateColorCodes('&', msg);
}
public static String removeColor(String msg) {
return ChatColor.stripColor(msg);
public static String getPrefix() {
return color(Files.CONFIG.getFile().getString("Settings.Prefix"));
}
public static String getPrefix() {
return color(Main.settings.getConfig().getString("Settings.Prefix"));
public static String getPrefix(String msg) {
return color(Files.CONFIG.getFile().getString("Settings.Prefix") + msg);
}
public static String removeColor(String msg) {
return ChatColor.stripColor(msg);
}
public static ItemStack makeItem(String type, int amount) {
@ -41,7 +46,7 @@ public class Methods {
ty = Integer.parseInt(b[1]);
}
Material m = Material.matchMaterial(type);
ItemStack item = null;
ItemStack item;
try {
item = new ItemStack(m, amount, (short) ty);
}catch(Exception e) {
@ -58,7 +63,7 @@ public class Methods {
ty = Integer.parseInt(b[1]);
}
Material m = Material.matchMaterial(type);
ItemStack item = null;
ItemStack item;
try {
item = new ItemStack(m, amount, (short) ty);
}catch(Exception e) {
@ -79,7 +84,7 @@ public class Methods {
ty = Integer.parseInt(b[1]);
}
Material m = Material.matchMaterial(type);
ItemStack item = null;
ItemStack item;
try {
item = new ItemStack(m, amount, (short) ty);
}catch(Exception e) {
@ -222,13 +227,13 @@ public class Methods {
return true;
}
}
p.sendMessage(color(Main.settings.getMsg().getString("Messages.Not-Online")));
p.sendMessage(Messages.NOT_ONLINE.getMessage());
return false;
}
public static boolean hasPermission(Player player, String perm) {
if(!player.hasPermission("crazyauctions." + perm)) {
player.sendMessage(color(Main.settings.getMsg().getString("Messages.No-Permission")));
player.sendMessage(Messages.NO_PERMISSION.getMessage());
return false;
}
return true;
@ -238,7 +243,7 @@ public class Methods {
if(sender instanceof Player) {
Player player = (Player) sender;
if(!player.hasPermission("crazyauctions." + perm)) {
player.sendMessage(color(Main.settings.getMsg().getString("Messages.No-Permission")));
player.sendMessage(Messages.NO_PERMISSION.getMessage());
return false;
}else {
return true;
@ -331,15 +336,11 @@ public class Methods {
}
public static boolean isInvFull(Player player) {
if(player.getInventory().firstEmpty() == -1) {
return true;
}
return false;
return player.getInventory().firstEmpty() == -1;
}
public static void updateAuction() {
FileConfiguration data = Main.settings.getData();
FileConfiguration msg = Main.settings.getMsg();
FileConfiguration data = Files.DATA.getFile();
Calendar cal = Calendar.getInstance();
Calendar expireTime = Calendar.getInstance();
Calendar fullExpireTime = Calendar.getInstance();
@ -364,14 +365,17 @@ public class Methods {
Long price = data.getLong("Items." + i + ".Price");
CurrencyManager.addMoney(Methods.getOfflinePlayer(seller), price);
CurrencyManager.removeMoney(Methods.getOfflinePlayer(winner), price);
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Price%", getPrice(i, false));
placeholders.put("%Player%", winner);
if(Methods.isOnline(winner)) {
Player player = Methods.getPlayer(winner);
Bukkit.getPluginManager().callEvent(new AuctionWinBidEvent(player, data.getItemStack("Items." + i + ".Item"), price));
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Win-Bidding").replaceAll("%Price%", getPrice(i, false)).replaceAll("%price%", getPrice(i, false))));
player.sendMessage(Messages.WIN_BIDDING.getMessage(placeholders));
}
if(Methods.isOnline(seller)) {
Player player = Methods.getPlayer(seller);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Someone-Won-Players-Bid").replaceAll("%Price%", getPrice(i, false)).replaceAll("%price%", getPrice(i, false)).replaceAll("%Player%", winner).replaceAll("%player%", winner)));
player.sendMessage(Messages.SOMEONE_WON_PLAYERS_BID.getMessage(placeholders));
}
data.set("OutOfTime/Cancelled." + num + ".Seller", winner);
data.set("OutOfTime/Cancelled." + num + ".Full-Time", fullExpireTime.getTimeInMillis());
@ -381,7 +385,7 @@ public class Methods {
String seller = data.getString("Items." + i + ".Seller");
if(Methods.isOnline(seller)) {
Player player = Methods.getPlayer(seller);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Has-Expired")));
player.sendMessage(Messages.ITEM_HAS_EXPIRED.getMessage());
}
data.set("OutOfTime/Cancelled." + num + ".Seller", data.getString("Items." + i + ".Seller"));
data.set("OutOfTime/Cancelled." + num + ".Full-Time", fullExpireTime.getTimeInMillis());
@ -392,18 +396,18 @@ public class Methods {
}
}
}
Main.settings.saveData();
Files.DATA.saveFile();
}
public static String getPrice(String ID, Boolean Expired) {
Long price = 0L;
if(Expired) {
if(Main.settings.getData().contains("OutOfTime/Cancelled." + ID + ".Price")) {
price = Main.settings.getData().getLong("OutOfTime/Cancelled." + ID + ".Price");
if(Files.DATA.getFile().contains("OutOfTime/Cancelled." + ID + ".Price")) {
price = Files.DATA.getFile().getLong("OutOfTime/Cancelled." + ID + ".Price");
}
}else {
if(Main.settings.getData().contains("Items." + ID + ".Price")) {
price = Main.settings.getData().getLong("Items." + ID + ".Price");
if(Files.DATA.getFile().contains("Items." + ID + ".Price")) {
price = Files.DATA.getFile().getLong("Items." + ID + ".Price");
}
}
return NumberFormat.getNumberInstance().format(price);

View File

@ -1,6 +1,6 @@
package me.badbones69.crazyauctions.api;
import me.badbones69.crazyauctions.Main;
import me.badbones69.crazyauctions.api.FileManager.Files;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@ -9,18 +9,39 @@ import java.util.ArrayList;
public class CrazyAuctions {
public static CrazyAuctions instance;
private static CrazyAuctions instance = new CrazyAuctions();
private FileManager fileManager = FileManager.getInstance();
private Boolean sellingEnabled;
private Boolean biddingEnabled;
public static CrazyAuctions getInstance() {
if(instance == null) {
instance = new CrazyAuctions();
}
return instance;
}
public void loadCrazyAuctions() {
if(Files.CONFIG.getFile().contains("Settings.Feature-Toggle.Selling")) {
this.sellingEnabled = Files.CONFIG.getFile().getBoolean("Settings.Feature-Toggle.Selling");
}else {
this.sellingEnabled = true;
}
if(Files.CONFIG.getFile().contains("Settings.Feature-Toggle.Bidding")) {
this.biddingEnabled = Files.CONFIG.getFile().getBoolean("Settings.Feature-Toggle.Bidding");
}else {
this.biddingEnabled = true;
}
}
public Boolean isSellingEnabled() {
return sellingEnabled;
}
public Boolean isBiddingEnabled() {
return biddingEnabled;
}
public ArrayList<ItemStack> getItems(Player player) {
FileConfiguration data = Main.settings.getData();
ArrayList<ItemStack> items = new ArrayList<ItemStack>();
FileConfiguration data = Files.DATA.getFile();
ArrayList<ItemStack> items = new ArrayList<>();
if(data.contains("Items")) {
for(String i : data.getConfigurationSection("Items").getKeys(false)) {
if(data.getString("Items." + i + ".Seller").equalsIgnoreCase(player.getName())) {
@ -32,8 +53,8 @@ public class CrazyAuctions {
}
public ArrayList<ItemStack> getItems(Player player, ShopType type) {
FileConfiguration data = Main.settings.getData();
ArrayList<ItemStack> items = new ArrayList<ItemStack>();
FileConfiguration data = Files.DATA.getFile();
ArrayList<ItemStack> items = new ArrayList<>();
if(data.contains("Items")) {
for(String i : data.getConfigurationSection("Items").getKeys(false)) {
if(data.getString("Items." + i + ".Seller").equalsIgnoreCase(player.getName())) {

View File

@ -0,0 +1,465 @@
package me.badbones69.crazyauctions.api;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
/**
*
* @author BadBones69
* @version v1.0
*
*/
public class FileManager {
private Plugin plugin;
private String prefix = "";
private Boolean log = false;
private HashMap<Files, File> files = new HashMap<>();
private ArrayList<String> homeFolders = new ArrayList<>();
private ArrayList<CustomFile> customFiles = new ArrayList<>();
private HashMap<String, String> autoGenerateFiles = new HashMap<>();
private HashMap<Files, FileConfiguration> configurations = new HashMap<>();
private static FileManager instance = new FileManager();
public static FileManager getInstance() {
return instance;
}
/**
* Sets up the plugin and loads all necessary files.
* @param plugin The plugin this is getting loading for.
*/
public FileManager setup(Plugin plugin) {
prefix = "[" + plugin.getName() + "] ";
this.plugin = plugin;
if(!plugin.getDataFolder().exists()) {
plugin.getDataFolder().mkdirs();
}
files.clear();
customFiles.clear();
//Loads all the normal static files.
for(Files file : Files.values()) {
File newFile = new File(plugin.getDataFolder(), file.getFileLocation());
if(log) System.out.println(prefix + "Loading the " + file.getFileName());
if(!newFile.exists()) {
try {
File serverFile = new File(plugin.getDataFolder(), "/" + file.getFileLocation());
InputStream jarFile = getClass().getResourceAsStream("/" + file.getFileLocation());
copyFile(jarFile, serverFile);
}catch(Exception e) {
if(log) System.out.println(prefix + "Failed to load " + file.getFileName());
e.printStackTrace();
continue;
}
}
files.put(file, newFile);
configurations.put(file, YamlConfiguration.loadConfiguration(newFile));
if(log) System.out.println(prefix + "Successfully loaded " + file.getFileName());
}
//Starts to load all the custom files.
if(homeFolders.size() > 0) {
if(log) System.out.println(prefix + "Loading custom files.");
for(String homeFolder : homeFolders) {
File homeFile = new File(plugin.getDataFolder(), "/" + homeFolder);
if(homeFile.exists()) {
String[] list = homeFile.list();
if(list != null) {
for(String name : list) {
if(name.endsWith(".yml")) {
CustomFile file = new CustomFile(name, homeFolder, plugin);
if(file.exists()) {
customFiles.add(file);
if(log) System.out.println(prefix + "Loaded new custom file: " + homeFolder + "/" + name + ".");
}
}
}
}
}else {
homeFile.mkdir();
if(log) System.out.println(prefix + "The folder " + homeFolder + "/ was not found so it was created.");
for(String fileName : autoGenerateFiles.keySet()) {
if(autoGenerateFiles.get(fileName).equalsIgnoreCase(homeFolder)) {
homeFolder = autoGenerateFiles.get(fileName);
try {
File serverFile = new File(plugin.getDataFolder(), homeFolder + "/" + fileName);
InputStream jarFile = getClass().getResourceAsStream(homeFolder + "/" + fileName);
copyFile(jarFile, serverFile);
if(fileName.toLowerCase().endsWith(".yml")) {
customFiles.add(new CustomFile(fileName, homeFolder, plugin));
}
if(log) System.out.println(prefix + "Created new default file: " + homeFolder + "/" + fileName + ".");
}catch(Exception e) {
if(log) System.out.println(prefix + "Failed to create new default file: " + homeFolder + "/" + fileName + "!");
e.printStackTrace();
}
}
}
}
}
if(log) System.out.println(prefix + "Finished loading custom files.");
}
return this;
}
/**
* Turn on the logger system for the FileManager.
* @param log True to turn it on and false for it to be off.
*/
public FileManager logInfo(Boolean log) {
this.log = log;
return this;
}
/**
* Check if the logger is logging in console.
* @return True if it is and false if it isn't.
*/
public Boolean isLogging() {
return log;
}
/**
* Register a folder that has custom files in it. Make sure to have a "/" in front of the folder name.
* @param homeFolder The folder that has custom files in it.
*/
public FileManager registerCustomFilesFolder(String homeFolder) {
homeFolders.add(homeFolder);
return this;
}
/**
* Unregister a folder that has custom files in it. Make sure to have a "/" in front of the folder name.
* @param homeFolder The folder with custom files in it.
*/
public FileManager unregisterCustomFilesFolder(String homeFolder) {
homeFolders.remove(homeFolder);
return this;
}
/**
* Register a file that needs to be generated when it's home folder doesn't exist. Make sure to have a "/" in front of the home folder's name.
* @param fileName The name of the file you want to auto-generate when the folder doesn't exist.
* @param homeFolder The folder that has custom files in it.
*/
public FileManager registerDefaultGenerateFiles(String fileName, String homeFolder) {
autoGenerateFiles.put(fileName, homeFolder);
return this;
}
/**
* Unregister a file that doesn't need to be generated when it's home folder doesn't exist. Make sure to have a "/" in front of the home folder's name.
* @param fileName The file that you want to remove from auto-generating.
*/
public FileManager unregisterDefaultGenerateFiles(String fileName) {
autoGenerateFiles.remove(fileName);
return this;
}
/**
* Gets the file from the system.
* @return The file from the system.
*/
public FileConfiguration getFile(Files file) {
return configurations.get(file);
}
/**
* Get a custom file from the loaded custom files instead of a hardcoded one.
* This allows you to get custom files like Per player data files.
* @param name Name of the crate you want. (Without the .yml)
* @return The custom file you wanted otherwise if not found will return null.
*/
public CustomFile getFile(String name) {
for(CustomFile file : customFiles) {
if(file.getName().toLowerCase().equalsIgnoreCase(name.toLowerCase())) {
return file;
}
}
return null;
}
/**
* Saves the file from the loaded state to the file system.
*/
public void saveFile(Files file) {
try {
configurations.get(file).save(files.get(file));
}catch(IOException e) {
System.out.println(prefix + "Could not save " + file.getFileName() + "!");
e.printStackTrace();
}
}
/**
* Save a custom file.
* @param name The name of the custom file.
*/
public void saveFile(String name) {
CustomFile file = getFile(name);
if(file != null) {
try {
file.getFile().save(new File(plugin.getDataFolder(), file.getHomeFolder() + "/" + file.getFileName()));
if(log) System.out.println(prefix + "Successfuly saved the " + file.getFileName() + ".");
}catch(Exception e) {
System.out.println(prefix + "Could not save " + file.getFileName() + "!");
e.printStackTrace();
}
}else {
if(log) System.out.println(prefix + "The file " + name + ".yml could not be found!");
}
}
/**
* Save a custom file.
* @param file The custom file you are saving.
* @return True if the file saved correct and false if there was an error.
*/
public Boolean saveFile(CustomFile file) {
return file.saveFile();
}
/**
* Overrides the loaded state file and loads the file systems file.
*/
public void reloadFile(Files file) {
configurations.put(file, YamlConfiguration.loadConfiguration(files.get(file)));
}
/**
* Overrides the loaded state file and loads the file systems file.
*/
public void reloadFile(String name) {
CustomFile file = getFile(name);
if(file != null) {
try {
file.file = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), "/" + file.getHomeFolder() + "/" + file.getFileName()));
if(log) System.out.println(prefix + "Successfuly reload the " + file.getFileName() + ".");
}catch(Exception e) {
System.out.println(prefix + "Could not reload the " + file.getFileName() + "!");
e.printStackTrace();
}
}else {
if(log) System.out.println(prefix + "The file " + name + ".yml could not be found!");
}
}
/**
* Overrides the loaded state file and loads the filesystems file.
* @return True if it reloaded correct and false if the file wasn't found.
*/
public Boolean reloadFile(CustomFile file) {
return file.reloadFile();
}
/**
* Was found here: https://bukkit.org/threads/extracting-file-from-jar.16962
*/
private void copyFile(InputStream in, File out) throws Exception {
try(FileOutputStream fos = new FileOutputStream(out)) {
byte[] buf = new byte[1024];
int i;
while((i = in.read(buf)) != -1) {
fos.write(buf, 0, i);
}
}finally {
if(in != null) {
in.close();
}
}
}
public enum Files {
//ENUM_NAME("FileName.yml", "FilePath.yml"),
CONFIG("config.yml", "config.yml"),
DATA("Data.yml", "Data.yml"),
MESSAGES("Messages.yml", "Messages.yml");
private String fileName;
private String fileLocation;
/**
* The files that the server will try and load.
* @param fileName The file name that will be in the plugin's folder.
* @param fileLocation The location the file is in while in the Jar.
*/
private Files(String fileName, String fileLocation) {
this.fileName = fileName;
this.fileLocation = fileLocation;
}
/**
* Get the name of the file.
* @return The name of the file.
*/
public String getFileName() {
return fileName;
}
/**
* The location the jar it is at.
* @return The location in the jar the file is in.
*/
public String getFileLocation() {
return fileLocation;
}
/**
* Gets the file from the system.
* @return The file from the system.
*/
public FileConfiguration getFile() {
return getInstance().getFile(this);
}
/**
* Saves the file from the loaded state to the file system.
*/
public void saveFile() {
getInstance().saveFile(this);
}
/**
* Overrides the loaded state file and loads the file systems file.
*/
public void relaodFile() {
getInstance().reloadFile(this);
}
}
public class CustomFile {
private String name;
private Plugin plugin;
private String fileName;
private String homeFolder;
private FileConfiguration file;
/**
* A custom file that is being made.
* @param name Name of the file.
* @param homeFolder The home folder of the file.
* @param plugin The plugin the files belong to.
*/
public CustomFile(String name, String homeFolder, Plugin plugin) {
this.name = name.replace(".yml", "");
this.plugin = plugin;
this.fileName = name;
this.homeFolder = homeFolder;
if(new File(plugin.getDataFolder(), "/" + homeFolder).exists()) {
if(new File(plugin.getDataFolder(), "/" + homeFolder + "/" + name).exists()) {
file = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), "/" + homeFolder + "/" + name));
}else {
file = null;
}
}else {
new File(plugin.getDataFolder(), "/" + homeFolder).mkdir();
if(log) System.out.println(prefix + "The folder " + homeFolder + "/ was not found so it was created.");
file = null;
}
}
/**
* Get the name of the file without the .yml part.
* @return The name of the file without the .yml.
*/
public String getName() {
return name;
}
/**
* Get the full name of the file.
* @return Full name of the file.
*/
public String getFileName() {
return fileName;
}
/**
* Get the name of the home folder of the file.
* @return The name of the home folder the files are in.
*/
public String getHomeFolder() {
return homeFolder;
}
/**
* Get the plugin the file belongs to.
* @return The plugin the file belongs to.
*/
public Plugin getPlugin() {
return plugin;
}
/**
* Get the ConfigurationFile.
* @return The ConfigurationFile of this file.
*/
public FileConfiguration getFile() {
return file;
}
/**
* Check if the file actually exists in the file system.
* @return True if it does and false if it doesn't.
*/
public Boolean exists() {
return file != null;
}
/**
* Save the custom file.
* @return True if it saved correct and false if something went wrong.
*/
public Boolean saveFile() {
if(file != null) {
try {
file.save(new File(plugin.getDataFolder(), homeFolder + "/" + fileName));
if(log) System.out.println(prefix + "Successfuly saved the " + fileName + ".");
return true;
}catch(Exception e) {
System.out.println(prefix + "Could not save " + fileName + "!");
e.printStackTrace();
return false;
}
}else {
if(log) System.out.println(prefix + "There was a null custom file that could not be found!");
}
return false;
}
/**
* Overrides the loaded state file and loads the filesystems file.
* @return True if it reloaded correct and false if the file wasn't found or errored.
*/
public Boolean reloadFile() {
if(file != null) {
try {
file = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), "/" + homeFolder + "/" + fileName));
if(log) System.out.println(prefix + "Successfuly reload the " + fileName + ".");
return true;
}catch(Exception e) {
System.out.println(prefix + "Could not reload the " + fileName + "!");
e.printStackTrace();
}
}else {
if(log) System.out.println(prefix + "There was a null custom file that was not found!");
}
return false;
}
}
}

View File

@ -0,0 +1,211 @@
package me.badbones69.crazyauctions.api;
import me.badbones69.crazyauctions.Methods;
import me.badbones69.crazyauctions.api.FileManager.Files;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public enum Messages {
PLAYERS_ONLY("Players-Only", "&cOnly players can use this command."),
RELOAD("Reload", "&7You have just reloaded the Crazy Auctions Files."),
NEED_MORE_MONEY("Need-More-Money", "&cYou are in need of &a$%Money_Needed%&c."),
INVENTORY_FULL("Inventory-Full", "&cYour inventory is too full. Please open up some space to buy that."),
NO_PERMISSION("No-Permission", "&cYou do not have permission to use that command!"),
NOT_ONLINE("Not-Online", "&cThat player is not online at this time."),
DOSENT_HAVE_ITEM_IN_HAND("Doesnt-Have-Item-In-Hand", "&cYou must have an item in your hand."),
NOT_A_NUMBER("Not-A-Number", "&c%Arg% is not a number."),
GOT_ITEM_BACK("Got-Item-Back", "&7Your item has been returned."),
CANCELLED_ITEM("Cancelled-Item", "&7You have cancelled an item on the auction list, return your items with /ah expired."),
ITEM_HAS_EXPIRED("Item-Has-Expired", "&7An item you have in the Crazy Auctions has just expired."),
ADMIN_FORCE_CENCELLED("Admin-Force-Cancelled", "&7You have just force cancelled a sale."),
ADMIN_FORCE_CANCELLED_TO_PLAYER("Admin-Force-Cancelled-To-Player", "&cOne of your items was just force cancelled by an Admin."),
ITEM_DOESNT_EXIST("Item-Doesnt-Exist", "&cThat item isnt in the crazy auctions any more."),
MAX_ITEMS("Max-Items", "&cYou cant list any more items to the Crazy Auctions."),
ITEM_BLACKLISTED("Item-BlackListed", "&cThat item is not allowed to be sold here."),
ITEM_DAMAGED("Item-Damaged", "&cThat item is damaged and is not allowed to be sold here."),
SOLD_MESSAGE("Sold-Msg", "&7Thank you for buying this item."),
BID_MORE_MONEY("Bid-More-Money", "&cYour bid is to low, please bid more."),
NOT_A_CURRENCY("Not-A-Currency", "&cThat is not a currency. Please use Money or Tokens ."),
SELL_PRICE_TO_LOW("Sell-Price-To-Low", "&cYour sell price is to low the minimum is &a$10&c."),
SELL_PRICE_TO_HIGH("Sell-Price-To-High", "&cYour sell price is to high the maximum is &a$1000000&c."),
BID_PRICE_TO_LOW("Bid-Price-To-Low", "&cYour starting bid price is to low the minimum is &a$100&c."),
BID_PRICE_TO_HIGH("Bid-Price-To-High", "&cYour starting bid price is to high the maximum is &a$1000000&c."),
BOUGHT_ITEM("Bought-Item", "&7You have just bought a item for &a$%Price%&7."),
WIN_BIDDING("Win-Bidding", "&7You have just won a bid for &a$%Price%&7. Do /Ah Collect to collect your winnings."),
PLAYER_BOUGHT_ITEM("Player-Bought-Item", "&7%Player% has bought your item for &a$%Price%."),
SOMEONE_WON_PLAYERS_BID("Someone-Won-Players-Bid", "&7%Player% has won your item you from a bid for &a$%Price%."),
ADDED_ITEM_TO_AUCTION("Added-Item-To-Auction", "&7You have just added a item to the crazy auctions for &a$%Price%&7."),
BID_MESSAGE("Bid-Msg", "&7You have just bid &a$%Bid% &7on that item."),
SELLING_DISABLED("Selling-Disabled", "&cThe selling option is disabled."),
BIDDING_DISABLED("Bidding-Disabled", "&cThe bidding option is disabled."),
CRAZYAUCTIONS_HELP("CrazyAuctions-Help", "&c/ah help"),
CRAZYAUCTIONS_VIEW("CrazyAuctions-View", "&c/ah view <player>"),
CRAZYAUCTIONS_SELL_BID("CrazyAuctions-Sell-Bid", "&c/ah sell/bid <price> [amount of items]"),
HELP("Help-Menu", Arrays.asList(
"&e-- &6Crazy Auctions Help &e--",
"&9/Ah - &eOpens the crazy auction.",
"&9/Ah View <Player> - &eSee what a player is selling.",
"&9/Ah Sell/Bid <Price> [Amount of items] - &eList the item you are holding on the crazy auction.",
"&9/Ah Expired/Collect - &eView and manage your cancelled and expired items.",
"&9/Ah Listed - &eView and manage the items you are selling.",
"&9/Ah Help - &eView this help menu."));
private String path;
private String defaultMessage;
private List<String> defaultListMessage;
private static FileManager fileManager = FileManager.getInstance();
private Messages(String path, String defaultMessage) {
this.path = path;
this.defaultMessage = defaultMessage;
}
private Messages(String path, List<String> defaultListMessage) {
this.path = path;
this.defaultListMessage = defaultListMessage;
}
public String getMessage() {
if(isList()) {
if(exists()) {
return Methods.color(convertList(Files.MESSAGES.getFile().getStringList("Messages." + path)));
}else {
return Methods.color(convertList(getDefaultListMessage()));
}
}else {
if(exists()) {
return Methods.getPrefix(Files.MESSAGES.getFile().getString("Messages." + path));
}else {
return Methods.getPrefix(getDefaultMessage());
}
}
}
public String getMessage(HashMap<String, String> placeholders) {
String message;
if(isList()) {
if(exists()) {
message = Methods.color(convertList(Files.MESSAGES.getFile().getStringList("Messages." + path), placeholders));
}else {
message = Methods.color(convertList(getDefaultListMessage(), placeholders));
}
}else {
if(exists()) {
message = Methods.getPrefix(Files.MESSAGES.getFile().getString("Messages." + path));
}else {
message = Methods.getPrefix(getDefaultMessage());
}
for(String ph : placeholders.keySet()) {
if(message.contains(ph)) {
message = message.replaceAll(ph, placeholders.get(ph)).replaceAll(ph, placeholders.get(ph).toLowerCase());
}
}
}
return message;
}
public String getMessageNoPrefix() {
if(isList()) {
if(exists()) {
return Methods.color(convertList(Files.MESSAGES.getFile().getStringList("Messages." + path)));
}else {
return Methods.color(convertList(getDefaultListMessage()));
}
}else {
if(exists()) {
return Methods.color(Files.MESSAGES.getFile().getString("Messages." + path));
}else {
return Methods.color(getDefaultMessage());
}
}
}
public String getMessageNoPrefix(HashMap<String, String> placeholders) {
String message;
if(isList()) {
if(exists()) {
message = Methods.color(convertList(Files.MESSAGES.getFile().getStringList("Messages." + path), placeholders));
}else {
message = Methods.color(convertList(getDefaultListMessage(), placeholders));
}
}else {
if(exists()) {
message = Methods.color(Files.MESSAGES.getFile().getString("Messages." + path));
}else {
message = Methods.color(getDefaultMessage());
}
for(String ph : placeholders.keySet()) {
if(message.contains(ph)) {
message = message.replaceAll(ph, placeholders.get(ph)).replaceAll(ph, placeholders.get(ph).toLowerCase());
}
}
}
return message;
}
public static String convertList(List<String> list) {
String message = "";
for(String m : list) {
message += Methods.color(m) + "\n";
}
return message;
}
public static String convertList(List<String> list, HashMap<String, String> placeholders) {
String message = "";
for(String m : list) {
message += Methods.color(m) + "\n";
}
for(String ph : placeholders.keySet()) {
message = Methods.color(message.replaceAll(ph, placeholders.get(ph))).replaceAll(ph, placeholders.get(ph).toLowerCase());
}
return message;
}
public static void addMissingMessages() {
FileConfiguration messages = Files.MESSAGES.getFile();
Boolean saveFile = false;
for(Messages message : values()) {
if(!messages.contains("Messages." + message.getPath())) {
saveFile = true;
if(message.getDefaultMessage() != null) {
messages.set("Messages." + message.getPath(), message.getDefaultMessage());
}else {
messages.set("Messages." + message.getPath(), message.getDefaultListMessage());
}
}
}
if(saveFile) {
Files.MESSAGES.saveFile();
}
}
private Boolean exists() {
return Files.MESSAGES.getFile().contains("Messages." + path);
}
private Boolean isList() {
if(Files.MESSAGES.getFile().contains("Messages." + path)) {
return !Files.MESSAGES.getFile().getStringList("Messages." + path).isEmpty();
}else {
return defaultMessage == null;
}
}
private String getPath() {
return path;
}
private String getDefaultMessage() {
return defaultMessage;
}
private List<String> getDefaultListMessage() {
return defaultListMessage;
}
}

View File

@ -1,140 +0,0 @@
package me.badbones69.crazyauctions.api;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class SettingsManager {
static SettingsManager instance = new SettingsManager();
public static SettingsManager getInstance() {
return instance;
}
Plugin p;
FileConfiguration config;
File cfile;
FileConfiguration data;
File dfile;
FileConfiguration msg;
File mfile;
public void setup(Plugin p) {
if(!p.getDataFolder().exists()) {
p.getDataFolder().mkdir();
}
cfile = new File(p.getDataFolder(), "config.yml");
if(!cfile.exists()) {
try {
File en = new File(p.getDataFolder(), "/config.yml");
InputStream E = getClass().getResourceAsStream("/config.yml");
copyFile(E, en);
}catch(Exception e) {
e.printStackTrace();
}
}
config = YamlConfiguration.loadConfiguration(cfile);
dfile = new File(p.getDataFolder(), "Data.yml");
if(!dfile.exists()) {
try {
File en = new File(p.getDataFolder(), "/Data.yml");
InputStream E = getClass().getResourceAsStream("/Data.yml");
copyFile(E, en);
}catch(Exception e) {
e.printStackTrace();
}
}
data = YamlConfiguration.loadConfiguration(dfile);
mfile = new File(p.getDataFolder(), "Messages.yml");
if(!mfile.exists()) {
try {
File en = new File(p.getDataFolder(), "/Messages.yml");
InputStream E = getClass().getResourceAsStream("/Messages.yml");
copyFile(E, en);
}catch(Exception e) {
e.printStackTrace();
}
}
msg = YamlConfiguration.loadConfiguration(mfile);
}
public FileConfiguration getData() {
return data;
}
public FileConfiguration getMsg() {
return msg;
}
public void saveData() {
try {
data.save(dfile);
}catch(IOException e) {
Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save Data.yml!");
}
}
public void saveMsg() {
try {
msg.save(mfile);
}catch(IOException e) {
Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save Messages.yml!");
}
}
public void reloadData() {
data = YamlConfiguration.loadConfiguration(dfile);
}
public void reloadMsg() {
msg = YamlConfiguration.loadConfiguration(mfile);
}
public FileConfiguration getConfig() {
return config;
}
public void saveConfig() {
try {
config.save(cfile);
}catch(IOException e) {
Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save config.yml!");
}
}
public void reloadConfig() {
config = YamlConfiguration.loadConfiguration(cfile);
}
public PluginDescriptionFile getDesc() {
return p.getDescription();
}
public static void copyFile(InputStream in, File out) throws Exception { // https://bukkit.org/threads/extracting-file-from-jar.16962/
InputStream fis = in;
FileOutputStream fos = new FileOutputStream(out);
try {
byte[] buf = new byte[1024];
int i = 0;
while((i = fis.read(buf)) != -1) {
fos.write(buf, 0, i);
}
}catch(Exception e) {
throw e;
}finally {
if(fis != null) {
fis.close();
}
if(fos != null) {
fos.close();
}
}
}
}

View File

@ -4,24 +4,24 @@ public enum ShopType {
SELL("Sell"), BID("Bid");
String Name;
private String name;
/**
* @param name Name of the Shop Type.
* @param name name of the Shop Type.
*/
private ShopType(String name) {
this.Name = name;
this.name = name;
}
/**
* @return Returns the type name as a string.
*/
public String getName() {
return Name;
return name;
}
/**
* @param name Name of the Type you want.
* @param name name of the Type you want.
* @return Returns the Type as a Enum.
*/
public static ShopType getFromName(String name) {

View File

@ -1,8 +1,10 @@
package me.badbones69.crazyauctions.controlers;
package me.badbones69.crazyauctions.controllers;
import me.badbones69.crazyauctions.Main;
import me.badbones69.crazyauctions.Methods;
import me.badbones69.crazyauctions.api.Category;
import me.badbones69.crazyauctions.api.CrazyAuctions;
import me.badbones69.crazyauctions.api.FileManager.Files;
import me.badbones69.crazyauctions.api.Messages;
import me.badbones69.crazyauctions.api.ShopType;
import me.badbones69.crazyauctions.api.events.AuctionBuyEvent;
import me.badbones69.crazyauctions.api.events.AuctionNewBidEvent;
@ -33,18 +35,18 @@ public class GUI implements Listener {
private static HashMap<Player, Category> Cat = new HashMap<>(); // Category Type
private static HashMap<Player, List<Integer>> List = new HashMap<>();
private static HashMap<Player, String> IDs = new HashMap<>();
public static Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("CrazyAuctions");
private static CrazyAuctions crazyAuctions = CrazyAuctions.getInstance();
private static Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("CrazyAuctions");
public static void openShop(Player player, ShopType sell, Category cat, int page) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
List<ItemStack> items = new ArrayList<>();
List<Integer> ID = new ArrayList<>();
if(!data.contains("Items")) {
data.set("Items.Clear", null);
Main.settings.saveData();
Files.DATA.saveFile();
}
if(cat != null) {
Cat.put(player, cat);
@ -90,12 +92,16 @@ public class GUI implements Listener {
options.add("Category2");
if(sell == ShopType.SELL) {
Type.put(player, ShopType.SELL);
options.add("Bidding/Selling.Selling");
if(crazyAuctions.isBiddingEnabled()) {
options.add("Bidding/Selling.Selling");
}
options.add("WhatIsThis.SellingShop");
}
if(sell == ShopType.BID) {
Type.put(player, ShopType.BID);
options.add("Bidding/Selling.Bidding");
if(crazyAuctions.isSellingEnabled()) {
options.add("Bidding/Selling.Bidding");
}
options.add("WhatIsThis.BiddingShop");
}
for(String o : options) {
@ -127,9 +133,9 @@ public class GUI implements Listener {
player.openInventory(inv);
}
public static void openCateories(Player player, ShopType shop) {
public static void openCategories(Player player, ShopType shop) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration config = Files.CONFIG.getFile();
Inventory inv = Bukkit.createInventory(null, 54, Methods.color(config.getString("Settings.Categories")));
List<String> options = new ArrayList<>();
options.add("OtherSettings.Back");
@ -163,8 +169,8 @@ public class GUI implements Listener {
public static void openPlayersCurrentList(Player player, int page) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
List<ItemStack> items = new ArrayList<>();
List<Integer> ID = new ArrayList<>();
Inventory inv = Bukkit.createInventory(null, 54, Methods.color(config.getString("Settings.Players-Current-Items")));
@ -209,8 +215,8 @@ public class GUI implements Listener {
public static void openPlayersExpiredList(Player player, int page) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
List<ItemStack> items = new ArrayList<>();
List<Integer> ID = new ArrayList<>();
if(data.contains("OutOfTime/Cancelled")) {
@ -260,12 +266,11 @@ public class GUI implements Listener {
public static void openBuying(Player player, String ID) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration msg = Main.settings.getMsg();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
if(!data.contains("Items." + ID)) {
openShop(player, ShopType.SELL, Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
Inventory inv = Bukkit.createInventory(null, 9, Methods.color(config.getString("Settings.Buying-Item")));
@ -306,12 +311,11 @@ public class GUI implements Listener {
public static void openBidding(Player player, String ID) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration msg = Main.settings.getMsg();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
if(!data.contains("Items." + ID)) {
openShop(player, ShopType.BID, Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
Inventory inv = Bukkit.createInventory(null, 27, Methods.color(config.getString("Settings.Bidding-On-Item")));
@ -333,13 +337,13 @@ public class GUI implements Listener {
public static void openViewer(Player player, String other, int page) {
Methods.updateAuction();
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
List<ItemStack> items = new ArrayList<>();
List<Integer> ID = new ArrayList<>();
if(!data.contains("Items")) {
data.set("Items.Clear", null);
Main.settings.saveData();
Files.DATA.saveFile();
}
if(data.contains("Items")) {
for(String i : data.getConfigurationSection("Items").getKeys(false)) {
@ -392,7 +396,7 @@ public class GUI implements Listener {
}
public static ItemStack getBiddingGlass(Player player, String ID) {
FileConfiguration config = Main.settings.getConfig();
FileConfiguration config = Files.CONFIG.getFile();
String id = config.getString("Settings.GUISettings.OtherSettings.Bidding.Item");
String name = config.getString("Settings.GUISettings.OtherSettings.Bidding.Name");
ItemStack item;
@ -410,8 +414,8 @@ public class GUI implements Listener {
}
public static ItemStack getBiddingItem(Player player, String ID) {
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
String seller = data.getString("Items." + ID + ".Seller");
String topbidder = data.getString("Items." + ID + ".TopBidder");
ItemStack item = data.getItemStack("Items." + ID + ".Item");
@ -424,7 +428,7 @@ public class GUI implements Listener {
@EventHandler
public void onInvClose(InventoryCloseEvent e) {
FileConfiguration config = Main.settings.getConfig();
FileConfiguration config = Files.CONFIG.getFile();
Inventory inv = e.getInventory();
Player player = (Player) e.getPlayer();
if(inv != null) {
@ -436,9 +440,8 @@ public class GUI implements Listener {
@EventHandler
public void onInvClick(InventoryClickEvent e) {
FileConfiguration config = Main.settings.getConfig();
FileConfiguration data = Main.settings.getData();
FileConfiguration msg = Main.settings.getMsg();
FileConfiguration config = Files.CONFIG.getFile();
FileConfiguration data = Files.DATA.getFile();
Player player = (Player) e.getWhoClicked();
final Inventory inv = e.getInventory();
if(inv != null) {
@ -480,22 +483,26 @@ public class GUI implements Listener {
int bid = bidding.get(player);
String topBidder = data.getString("Items." + ID + ".TopBidder");
if(CurrencyManager.getMoney(player) < bid) {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Need-More-Money").replaceAll("%Money_Needed%", (bid - CurrencyManager.getMoney(player)) + "").replaceAll("%money_needed%", (bid - CurrencyManager.getMoney(player)) + "")));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Money_Needed%", (bid - CurrencyManager.getMoney(player)) + "");
player.sendMessage(Messages.NEED_MORE_MONEY.getMessage(placeholders));
return;
}
if(data.getLong("Items." + ID + ".Price") > bid) {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Bid-More-Money")));
player.sendMessage(Messages.BID_MORE_MONEY.getMessage());
return;
}
if(data.getLong("Items." + ID + ".Price") >= bid && !topBidder.equalsIgnoreCase("None")) {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Bid-More-Money")));
player.sendMessage(Messages.BID_MORE_MONEY.getMessage());
return;
}
Bukkit.getPluginManager().callEvent(new AuctionNewBidEvent(player, data.getItemStack("Items." + ID + ".Item"), bid));
data.set("Items." + ID + ".Price", bid);
data.set("Items." + ID + ".TopBidder", player.getName());
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Bid-Msg").replaceAll("%Bid%", bid + "").replaceAll("%bid%", bid + "")));
Main.settings.saveData();
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Bid%", bid + "");
player.sendMessage(Messages.BID_MESSAGE.getMessage(placeholders));
Files.DATA.saveFile();
bidding.put(player, 0);
player.closeInventory();
playClick(player);
@ -520,7 +527,7 @@ public class GUI implements Listener {
return;
}catch(Exception ex) {
player.closeInventory();
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
}
@ -581,12 +588,12 @@ public class GUI implements Listener {
return;
}
if(item.getItemMeta().getDisplayName().equals(Methods.color(config.getString("Settings.GUISettings.OtherSettings.Category1.Name")))) {
openCateories(player, Type.get(player));
openCategories(player, Type.get(player));
playClick(player);
return;
}
if(item.getItemMeta().getDisplayName().equals(Methods.color(config.getString("Settings.GUISettings.OtherSettings.Category2.Name")))) {
openCateories(player, Type.get(player));
openCategories(player, Type.get(player));
playClick(player);
return;
}
@ -614,15 +621,15 @@ public class GUI implements Listener {
String seller = data.getString("Items." + i + ".Seller");
if(Methods.isOnline(seller)) {
Player S = Methods.getPlayer(seller);
S.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Admin-Force-Cancelled-To-Player")));
S.sendMessage(Messages.ADMIN_FORCE_CANCELLED_TO_PLAYER.getMessage());
}
data.set("OutOfTime/Cancelled." + num + ".Seller", data.getString("Items." + i + ".Seller"));
data.set("OutOfTime/Cancelled." + num + ".Full-Time", data.getLong("Items." + i + ".Full-Time"));
data.set("OutOfTime/Cancelled." + num + ".StoreID", data.getInt("Items." + i + ".StoreID"));
data.set("OutOfTime/Cancelled." + num + ".Item", data.getItemStack("Items." + i + ".Item"));
data.set("Items." + i, null);
Main.settings.saveData();
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Admin-Force-Cancelled")));
Files.DATA.saveFile();
player.sendMessage(Messages.ADMIN_FORCE_CENCELLED.getMessage());
playClick(player);
int page = Integer.parseInt(inv.getName().split("#")[1]);
openShop(player, Type.get(player), Cat.get(player), page);
@ -687,7 +694,7 @@ public class GUI implements Listener {
if(!T) {
playClick(player);
openShop(player, Type.get(player), Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
}
@ -710,33 +717,38 @@ public class GUI implements Listener {
if(!data.contains("Items." + ID)) {
playClick(player);
openShop(player, Type.get(player), Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
if(Methods.isInvFull(player)) {
playClick(player);
player.closeInventory();
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Inventory-Full")));
player.sendMessage(Messages.INVENTORY_FULL.getMessage());
return;
}
if(CurrencyManager.getMoney(player) < cost) {
playClick(player);
player.closeInventory();
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Need-More-Money").replaceAll("%Money_Needed%", (cost - CurrencyManager.getMoney(player)) + "").replaceAll("%money_needed%", (cost - CurrencyManager.getMoney(player)) + "")));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Money_Needed%", (cost - CurrencyManager.getMoney(player)) + "");
player.sendMessage(Messages.NEED_MORE_MONEY.getMessage(placeholders));
return;
}
ItemStack i = data.getItemStack("Items." + ID + ".Item");
Bukkit.getPluginManager().callEvent(new AuctionBuyEvent(player, i, cost));
CurrencyManager.removeMoney(player, cost);
CurrencyManager.addMoney(Methods.getOfflinePlayer(seller), cost);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Bought-Item").replaceAll("%Price%", Methods.getPrice(ID, false)).replaceAll("%price%", Methods.getPrice(ID, false))));
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%Price%", Methods.getPrice(ID, false));
placeholders.put("%Player%", player.getName());
player.sendMessage(Messages.BOUGHT_ITEM.getMessage(placeholders));
if(Methods.isOnline(seller)) {
Player sell = Methods.getPlayer(seller);
sell.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Player-Bought-Item").replaceAll("%Price%", Methods.getPrice(ID, false)).replaceAll("%price%", Methods.getPrice(ID, false)).replaceAll("%Player%", player.getName()).replaceAll("%player%", player.getName())));
sell.sendMessage(Messages.PLAYER_BOUGHT_ITEM.getMessage(placeholders));
}
player.getInventory().addItem(i);
data.set("Items." + ID, null);
Main.settings.saveData();
Files.DATA.saveFile();
playClick(player);
openShop(player, Type.get(player), Cat.get(player), 1);
return;
@ -772,7 +784,7 @@ public class GUI implements Listener {
for(String i : data.getConfigurationSection("Items").getKeys(false)) {
int ID = data.getInt("Items." + i + ".StoreID");
if(id == ID) {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Cancelled-Item")));
player.sendMessage(Messages.CANCELLED_ITEM.getMessage());
int num = 1;
for(; data.contains("OutOfTime/Cancelled." + num); num++) ;
data.set("OutOfTime/Cancelled." + num + ".Seller", data.getString("Items." + i + ".Seller"));
@ -780,7 +792,7 @@ public class GUI implements Listener {
data.set("OutOfTime/Cancelled." + num + ".StoreID", data.getInt("Items." + i + ".StoreID"));
data.set("OutOfTime/Cancelled." + num + ".Item", data.getItemStack("Items." + i + ".Item"));
data.set("Items." + i, null);
Main.settings.saveData();
Files.DATA.saveFile();
playClick(player);
openPlayersCurrentList(player, 1);
return;
@ -790,7 +802,7 @@ public class GUI implements Listener {
if(!T) {
playClick(player);
openShop(player, Type.get(player), Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
return;
}
}
@ -827,7 +839,7 @@ public class GUI implements Listener {
for(String i : data.getConfigurationSection("OutOfTime/Cancelled").getKeys(false)) {
if(data.getString("OutOfTime/Cancelled." + i + ".Seller").equalsIgnoreCase(player.getName())) {
if(Methods.isInvFull(player)) {
player.sendMessage(Methods.getPrefix() + Methods.color(Main.settings.getMsg().getString("Messages.Inventory-Full")));
player.sendMessage(Messages.INVENTORY_FULL.getMessage());
break;
}else {
player.getInventory().addItem(data.getItemStack("OutOfTime/Cancelled." + i + ".Item"));
@ -836,8 +848,8 @@ public class GUI implements Listener {
}
}
}
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Got-Item-Back")));
Main.settings.saveData();
player.sendMessage(Messages.GOT_ITEM_BACK.getMessage());
Files.DATA.saveFile();
playClick(player);
openPlayersExpiredList(player, page);
return;
@ -858,16 +870,16 @@ public class GUI implements Listener {
int ID = data.getInt("OutOfTime/Cancelled." + i + ".StoreID");
if(id == ID) {
if(!Methods.isInvFull(player)) {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Got-Item-Back")));
player.sendMessage(Messages.GOT_ITEM_BACK.getMessage());
ItemStack IT = data.getItemStack("OutOfTime/Cancelled." + i + ".Item");
player.getInventory().addItem(IT);
data.set("OutOfTime/Cancelled." + i, null);
Main.settings.saveData();
Files.DATA.saveFile();
playClick(player);
openPlayersExpiredList(player, 1);
return;
}else {
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Inventory-Full")));
player.sendMessage(Messages.INVENTORY_FULL.getMessage());
return;
}
}
@ -876,7 +888,7 @@ public class GUI implements Listener {
if(!T) {
playClick(player);
openShop(player, Type.get(player), Cat.get(player), 1);
player.sendMessage(Methods.getPrefix() + Methods.color(msg.getString("Messages.Item-Doesnt-Exist")));
player.sendMessage(Messages.ITEM_DOESNT_EXIST.getMessage());
}
}
}
@ -887,9 +899,9 @@ public class GUI implements Listener {
}
private static void playClick(Player player) {
if(Main.settings.getConfig().contains("Settings.Sounds.Toggle")) {
if(Main.settings.getConfig().getBoolean("Settings.Sounds.Toggle")) {
String sound = Main.settings.getConfig().getString("Settings.Sounds.Sound");
if(Files.CONFIG.getFile().contains("Settings.Sounds.Toggle")) {
if(Files.CONFIG.getFile().getBoolean("Settings.Sounds.Toggle")) {
String sound = Files.CONFIG.getFile().getString("Settings.Sounds.Sound");
try {
player.playSound(player.getLocation(), Sound.valueOf(sound), 1, 1);
}catch(Exception e) {

View File

@ -1,6 +1,6 @@
package me.badbones69.crazyauctions.currency;
import me.badbones69.crazyauctions.Main;
import me.badbones69.crazyauctions.api.FileManager.Files;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
@ -9,36 +9,36 @@ public enum CurrencyManager { // Currency Manager
VAULT("Vault", "Money");
String PluginName, Name;
private String pluginName, name;
/**
* @param pluginname
* Name of the Plugin.
* name of the Plugin.
* @param name
* Name of the Currency.
* name of the Currency.
*/
private CurrencyManager(String pluginname, String name) {
this.PluginName = pluginname;
this.Name = name;
this.pluginName = pluginname;
this.name = name;
}
/**
* @return Returns the Currency name as a string.
*/
public String getName() {
return Name;
return name;
}
/**
* @return Returns the Currency name as a string.
*/
public String getPluginName() {
return PluginName;
return pluginName;
}
/**
* @param name
* Name of the Type you want.
* name of the Type you want.
* @return Returns the Currency as a Enum.
*/
public static CurrencyManager getFromName(String name) {
@ -55,10 +55,8 @@ public enum CurrencyManager { // Currency Manager
* @return Returns true if the server has the plugin.
*/
public Boolean hasPlugin() {
if(Bukkit.getServer().getPluginManager().getPlugin(PluginName) != null) {
if(Main.settings.getConfig().getBoolean("Settings.Currencies." + PluginName + ".Enabled")) {
return true;
}
if(Bukkit.getServer().getPluginManager().getPlugin(pluginName) != null) {
return Files.CONFIG.getFile().getBoolean("Settings.Currencies." + pluginName + ".Enabled");
}
return false;
}
@ -67,8 +65,6 @@ public enum CurrencyManager { // Currency Manager
*
* @param player
* Player you want the currency from.
* @param type
* Type of currency you want to get.
* @return Returns the amount they have of the currency
*/
public static Long getMoney(Player player) {
@ -79,8 +75,6 @@ public enum CurrencyManager { // Currency Manager
*
* @param player
* Player you want the currency from.
* @param type
* Type of currency you want to take from.
* @param amount
* The amount you want to take.
*/
@ -92,8 +86,6 @@ public enum CurrencyManager { // Currency Manager
*
* @param player
* Player you want the currency from.
* @param type
* Type of currency you want to take from.
* @param amount
* The amount you want to take.
*/
@ -105,8 +97,6 @@ public enum CurrencyManager { // Currency Manager
*
* @param player
* Player you want the currency from.
* @param type
* Type of currency you want to add to.
* @param amount
* The amount you want to add.
*/
@ -118,12 +108,11 @@ public enum CurrencyManager { // Currency Manager
*
* @param player
* Player you want the currency from.
* @param type
* Type of currency you want to add to.
* @param amount
* The amount you want to add.
*/
public static void addMoney(OfflinePlayer player, Long amount) {
Vault.addMoney(player, amount);
}
}

View File

@ -13,10 +13,7 @@ public class Vault {
public static EconomyResponse r;
public static boolean hasVault() {
if(Bukkit.getServer().getPluginManager().getPlugin("Vault") != null) {
return true;
}
return false;
return Bukkit.getServer().getPluginManager().getPlugin("Vault") != null;
}
public static boolean setupEconomy() {

View File

@ -8,27 +8,32 @@ Messages:
Doesnt-Have-Item-In-Hand: '&cYou must have an item in your hand.'
Not-A-Number: '&c%Arg% is not a number.'
Got-Item-Back: '&7Your item has been returned.'
Cancelled-Item: '&7You have cancelled an item on the auction list, return your items with /ah expired.'
Cancelled-Item: '&7You have canceled an item on the auction list, return your items with /ah expired.'
Item-Has-Expired: '&7An item you have in the Crazy Auctions has just expired.'
Admin-Force-Cancelled: '&7You have just force cancelled a sale.'
Admin-Force-Cancelled-To-Player: '&cOne of your items was just force cancelled by an Admin.'
Item-Doesnt-Exist: '&cThat item isnt in the crazy auctions any more.'
Max-Items: '&cYou cant list any more items to the Crazy Auctions.'
Admin-Force-Cancelled: '&7You have just force canceled a sale.'
Admin-Force-Cancelled-To-Player: '&cOne of your items was just force canceled by an Admin.'
Item-Doesnt-Exist: '&cThat item isn''t in the crazy auctions any more.'
Max-Items: '&cYou can''t list any more items to the Crazy Auctions.'
Item-BlackListed: '&cThat item is not allowed to be sold here.'
Item-Damaged: '&cThat item is damaged and is not allowed to be sold here.'
Sold-Msg: '&7Thank you for buying this item.'
Bid-More-Money: '&cYour bid is to low, please bid more.'
Not-A-Currency: '&cThat is not a currency. Please use Money or Tokens.' #Remove Tokens if you do not have TokenManager.
Sell-Price-To-Low: '&cYour sell price is to low the minimum is &a$10&c.'
Sell-Price-To-High: '&cYour sell price is to high the maximum is &a$1000000&c.'
Sell-Price-To-High: '&cYour sell price is too high the maximum is &a$1000000&c.'
Bid-Price-To-Low: '&cYour starting bid price is to low the minimum is &a$100&c.'
Bid-Price-To-High: '&cYour starting bid price is to high the maximum is &a$1000000&c.'
Bought-Item: '&7You have just bought a item for &a$%Price%&7.'
Bid-Price-To-High: '&cYour starting bid price is too high the maximum is &a$1000000&c.'
Bought-Item: '&7You have just bought an item for &a$%Price%&7.'
Win-Bidding: '&7You have just won a bid for &a$%Price%&7. Do /Ah Collect to collect your winnings.'
Player-Bought-Item: '&7%Player% has bought your item for &a$%Price%.'
Someone-Won-Players-Bid: '&7%Player% has won your item you from a bid for &a$%Price%.'
Added-Item-To-Auction: '&7You have just added a item to the crazy auctions for &a$%Price%&7.'
Added-Item-To-Auction: '&7You have just added an item to the crazy auctions for &a$%Price%&7.'
Bid-Msg: '&7You have just bid &a$%Bid% &7on that item.'
Selling-Disabled: '&cThe selling option is disabled.'
Bidding-Disabled: '&cThe bidding option is disabled.'
CrazyAuctions-Help: '&c/ah help'
CrazyAuctions-View: '&c/ah view <player>'
CrazyAuctions-Sell-Bid: '&c/ah sell/bid <price> [amount of items]'
Help-Menu:
- '&e-- &6Crazy Auctions Help &e--'
- '&9/Ah - &eOpens the crazy auction.'

View File

@ -16,6 +16,9 @@ Settings:
Max-Beginning-Bid-Price: 1000000 #Maximum starting bid.
Allow-Damaged-Items: False #Allow items that have been damaged.
Category-Page-Opens-First: False #If set to true the categories page will open when they do /CA.
Feature-Toggle: #Toggle if a feature is on or off.
Selling: true #Able to use the selling part of the auction house.
Bidding: true #Able to use the bidding part of the auction house.
Sounds:
Toggle: False #Disable the clicking sound.
Sound: 'CLICK' #Make sure if you use 1.8 or lower you use the 1.8 sound and 1.9 and up use 1.9 sounds. The default sound is 1.8.