Skip to content

Commit

Permalink
Various improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Leonidius20 committed Dec 22, 2017
1 parent c1ca8ba commit 6174d1d
Show file tree
Hide file tree
Showing 17 changed files with 183 additions and 229 deletions.
16 changes: 9 additions & 7 deletions src/main/java/ua/leonidius/trading/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import cn.nukkit.command.SimpleCommandMap;
import cn.nukkit.plugin.PluginBase;
import cn.nukkit.utils.Config;
import me.onebone.economyapi.EconomyAPI;
import ua.leonidius.trading.auction.Auction;
import ua.leonidius.trading.auction.BetCmd;
import ua.leonidius.trading.auction.StartAuctionCmd;
import ua.leonidius.trading.buy.AddBuyItemCmd;
Expand All @@ -13,9 +15,9 @@
import ua.leonidius.trading.help.*;
import ua.leonidius.trading.sell.AddSellItemCmd;
import ua.leonidius.trading.sell.DelSellItemCmd;
import ua.leonidius.trading.sell.Sell;
import ua.leonidius.trading.sell.SellCmd;
import ua.leonidius.trading.help.SellListCmd;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;

import java.io.File;
Expand All @@ -27,7 +29,7 @@


public class Main extends PluginBase {
public static Main plugin;
private static Main plugin;
public static Main getPlugin() {
return plugin;
}
Expand All @@ -36,14 +38,14 @@ public static Main getPlugin() {
public static Config discountCfg;
public static Config sellcfg;

public static String currency = EconomyAPI.getInstance().getMonetaryUnit();

//public static String plgname;
//стринг енам вальюс в параметрах команді, можно свои делать!

@Override
public void onEnable() {
plugin = this;
initConfig();
Settings.init();
Message.init(this);
initCmd();
}
Expand All @@ -68,17 +70,17 @@ private void initCmd(){
cm.register(prefix, new BuyListCmd());
//addsale delsale
}
if (Settings.sell.active) {
if (Sell.active) {
cm.register(prefix, new SellCmd());
cm.register(prefix, new AddSellItemCmd());
cm.register(prefix, new DelSellItemCmd());
cm.register(prefix, new SellListCmd());
}
if (Settings.auction.active){
if (Auction.isSystemActive()){
cm.register(prefix, new StartAuctionCmd());
cm.register(prefix, new BetCmd());
}
if (Buy.active || Settings.sell.active || Settings.auction.active) {
if (Buy.active || Sell.active || Auction.isSystemActive()) {
cm.register(prefix, new IdCmd());
cm.register(prefix, new HelpCmd());
}
Expand Down
62 changes: 38 additions & 24 deletions src/main/java/ua/leonidius/trading/auction/Auction.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import cn.nukkit.Player;
import cn.nukkit.item.Item;
import me.onebone.economyapi.EconomyAPI;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.utils.Message;

import java.text.SimpleDateFormat;
Expand All @@ -21,14 +21,16 @@ public class Auction {
static SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
static volatile Timer notifierTimer;
static volatile long startTime;

private static boolean isActive() {
return active;
}

static void setActive(boolean a){
active = a;
}

public static void startAuction (Item i, double bet, Player player){
static void startAuction (Item i, double bet, Player player){
if (isActive()) {
Message.AUC_RUNNING.print(player, 'c');
return;
Expand All @@ -39,8 +41,8 @@ public static void startAuction (Item i, double bet, Player player){
return;
}

if (EconomyAPI.getInstance().myMoney(player) < Settings.auction.startTax) {
Message.AUC_NOT_ENOUGH_MONEY.print(player, Settings.auction.startTax, 'c');
if (EconomyAPI.getInstance().myMoney(player) < AucSettings.startTax) {
Message.AUC_NOT_ENOUGH_MONEY.print(player, AucSettings.startTax, 'c');
return;
}

Expand All @@ -50,9 +52,9 @@ public static void startAuction (Item i, double bet, Player player){
}

//стартовые функции
EconomyAPI.getInstance().reduceMoney(player, Settings.auction.startTax);
EconomyAPI.getInstance().reduceMoney(player, AucSettings.startTax);
player.getInventory().removeItem(i);
active = true;
setActive(true);
item = i;
currentBet = bet;
trader = player;
Expand All @@ -64,23 +66,22 @@ public static void startAuction (Item i, double bet, Player player){
//таймер остановки аукциона
Timer stopTimer = new Timer();
StopAuction stop = new StopAuction();
stopTimer.schedule(stop, Settings.auction.duration);
stopTimer.schedule(stop, AucSettings.duration);

//таймер для уведомлений всем игрокам
notifierTimer = new Timer();
AuctionNotifier notifier = new AuctionNotifier();
notifierTimer.schedule(notifier, Settings.auction.notifyPeriod, Settings.auction.notifyPeriod);
notifierTimer.schedule(notifier, AucSettings.notifyPeriod, AucSettings.notifyPeriod);

//отправка уведомления о старте в чат
Date date = new Date(Settings.auction.duration);
Message.AUC_START.broadcast(null, item.getCount(), item.getName(), item.getId(), item.getDamage(), currentBet, trader.getName(), Settings.auction.primaryColor, Settings.auction.secondaryColor);
Message.AUC_DURATION.broadcast(null, sdf.format(date), Settings.auction.primaryColor, Settings.auction.secondaryColor);
//if (Settings.auction.logging) Message.AUC_START.log(item.getCount(), item.getName(), item.getId(), item.getDamage(), currentBet, trader.getName(), "NOCOLOR");
Date date = new Date(AucSettings.duration);
Message.AUC_START.broadcast(null, item.getCount(), item.getName(), item.getId(), item.getDamage(), currentBet, trader.getName(), AucSettings.primaryColor, AucSettings.secondaryColor);
Message.AUC_DURATION.broadcast(null, sdf.format(date), AucSettings.primaryColor, AucSettings.secondaryColor);

if (Settings.auction.startTax!=0) Message.AUC_TAX_TAKEN.print(trader, Settings.auction.startTax, Settings.auction.primaryColor, Settings.auction.secondaryColor);
if (AucSettings.startTax!=0) Message.AUC_TAX_TAKEN.print(trader, AucSettings.startTax, AucSettings.primaryColor, AucSettings.secondaryColor);
}

public static void bet (Player player, double bet){
static void bet (Player player, double bet){
if (isActive()) {
if (player != trader) {
if ((bet - currentBet) >= 1) {
Expand All @@ -93,6 +94,10 @@ public static void bet (Player player, double bet){
} else Message.AUC_YOUR.print(player, 'c');
} else Message.AUC_NOT_RUNNING.print(player, 'c');
}

public static boolean isSystemActive(){
return AucSettings.active;
}
}

class StopAuction extends TimerTask {
Expand All @@ -105,22 +110,21 @@ public void run() {
if (Auction.currentWinner.getInventory().canAddItem(Auction.item)) {
EconomyAPI.getInstance().reduceMoney(Auction.currentWinner, Auction.currentBet);
Auction.currentWinner.getInventory().addItem(Auction.item);
double endTax = Math.round((Settings.auction.endTax/100)* Auction.currentBet);
double endTax = Math.round((AucSettings.endTax/100)* Auction.currentBet);
double finalEarnings = Auction.currentBet - endTax;
EconomyAPI.getInstance().addMoney(Auction.trader, finalEarnings);
Message.AUC_FINISHED_WINNER.broadcast(null, Auction.currentWinner.getName(), Settings.auction.primaryColor, Settings.auction.secondaryColor);
Auction.trader.sendTip(Message.AUC_FINISHED.getText('a'));
Auction.trader.sendPopup(Message.AUC_YOU_EARNED.getText(finalEarnings, 'a'));
// if (Settings.auction.logging)
Message.AUC_FINISHED_WINNER.broadcast(null, Auction.currentWinner.getName(), AucSettings.primaryColor, AucSettings.secondaryColor);
Auction.trader.sendTip(Message.AUC_FINISHED.getText(AucSettings.primaryColor));
Auction.trader.sendPopup(Message.AUC_YOU_EARNED.getText(finalEarnings, AucSettings.primaryColor, AucSettings.secondaryColor));
} else {
Message.AUC_FINISHED_WINNER.broadcast(null, Auction.currentWinner.getName(), Settings.auction.primaryColor, Settings.auction.secondaryColor);
Message.AUC_FINISHED_WINNER.broadcast(null, Auction.currentWinner.getName(), AucSettings.primaryColor, AucSettings.secondaryColor);
Message.AUC_WINNER_NO_SPACE.print(Auction.trader, 'c');
Message.AUC_YOU_WON_NO_SPACE.print(Auction.currentWinner, 'c');
EconomyAPI.getInstance().addMoney(Auction.trader, Settings.auction.startTax);
EconomyAPI.getInstance().addMoney(Auction.trader, AucSettings.startTax);
}
} else {
Auction.trader.getInventory().addItem(Auction.item);
Message.AUC_FINISHED_NOWINNER.broadcast(null, Settings.auction.primaryColor);
Message.AUC_FINISHED_NOWINNER.broadcast(null, AucSettings.primaryColor);
Auction.trader.sendTip(Message.AUC_FINISHED.getText('c'));
Auction.trader.sendPopup(Message.AUC_NOBODY.getText('c'));
}
Expand All @@ -134,8 +138,18 @@ public void run() {
Date currentDate = new Date();
long currentTime = currentDate.getTime();
long timePast = currentTime- Auction.startTime;
long timeLeft = Settings.auction.duration - timePast;
long timeLeft = AucSettings.duration - timePast;
Date timeLeftDate = new Date (timeLeft);
Message.AUC_NOTIFICATION.broadcast(null, Auction.item.getCount(), Auction.item.getName(), Auction.item.getId(), Auction.item.getDamage(), Auction.currentBet, Auction.sdf.format(timeLeftDate), Settings.auction.primaryColor, Settings.auction.secondaryColor);
Message.AUC_NOTIFICATION.broadcast(null, Auction.item.getCount(), Auction.item.getName(), Auction.item.getId(), Auction.item.getDamage(), Auction.currentBet, Auction.sdf.format(timeLeftDate), AucSettings.primaryColor, AucSettings.secondaryColor);
}
}

class AucSettings {
static boolean active = Main.getPlugin().getConfig().getBoolean("auction.active", true);
static int duration = Main.getPlugin().getConfig().getInt("auction.duration", 300000);
static int notifyPeriod = Main.getPlugin().getConfig().getInt("auction.notify-period", 60000);
static int startTax = Main.getPlugin().getConfig().getInt("auction.tax", 50);
static int endTax = Main.getPlugin().getConfig().getInt("auction.end-tax", 1);
static char primaryColor = Main.getPlugin().getConfig().getString("auction.primary-color", "a").charAt(0);
static char secondaryColor = Main.getPlugin().getConfig().getString("auction.secondary-color", "2").charAt(0);
}
1 change: 0 additions & 1 deletion src/main/java/ua/leonidius/trading/buy/AddBuyItemCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import cn.nukkit.item.Item;
import cn.nukkit.utils.Config;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;
import ua.leonidius.trading.utils.ItemName;

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/ua/leonidius/trading/buy/Buy.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class Buy {
static char color2 = Main.getPlugin().getConfig().getString("buy.secondary-color", "2").charAt(0);
static char errorColor = 'c';

protected static void buy (Player player, Item item){
static void buy (Player player, Item item){
int amount = item.getCount();

if (!canBuy(item)){
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/ua/leonidius/trading/buy/BuyCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@
import cn.nukkit.command.CommandSender;
import cn.nukkit.command.PluginCommand;
import cn.nukkit.command.data.CommandParameter;
import cn.nukkit.inventory.PlayerInventory;
import cn.nukkit.item.Item;
import me.onebone.economyapi.EconomyAPI;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.ItemName;
import ua.leonidius.trading.utils.MaxStackSize;
import ua.leonidius.trading.utils.Message;

/**
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/ua/leonidius/trading/buy/DelBuyItemCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import cn.nukkit.item.Item;
import cn.nukkit.utils.Config;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;
import ua.leonidius.trading.utils.ItemName;

Expand Down Expand Up @@ -51,11 +50,11 @@ public boolean onCommand (CommandSender sender, Command command, String label, S
config.save();
config.reload();
Message.LIST_BUY_DELETED.print(sender, name, id, meta, Buy.color1, Buy.color2);
if (Settings.general.editLogging) {
if (Buy.editLogging) {
Message.LIST_BUY_DELETED_LOG.log(sender.getName(), name, id, meta, "NOCOLOR");
}
Message.LIST_BUY_DELETED_LOG.broadcast("trading.editshoplist", '7','7', sender.getName(), name, id, meta);
} else Message.LIST_DOESNOT_EXIST.print(sender, 'c');
} else Message.LIST_DOESNOT_EXIST.print(sender, Buy.errorColor);
return true;
}
}
7 changes: 2 additions & 5 deletions src/main/java/ua/leonidius/trading/help/BuyListCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import cn.nukkit.utils.Config;
import cn.nukkit.utils.TextFormat;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;
import ua.leonidius.trading.utils.ItemName;

Expand Down Expand Up @@ -54,12 +53,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
String name = ItemName.get(id, meta);
String price = cfg.getString(key);
output = output+" "+TextFormat.YELLOW+name+TextFormat.WHITE+" ("+id+":"+meta+")"+" - "+TextFormat.GREEN+price+TextFormat.WHITE+",";
} catch (NumberFormatException e) {
continue;
}
} catch (NumberFormatException e) {}
}
}
output = output +" "+Message.LIST_PRICES_IN.getCleanText(Settings.general.currency);
output = output +" "+Message.LIST_PRICES_IN.getCleanText(Main.currency);
sender.sendMessage(output);
} else {
Message.LIST_NOTHING.print(sender, "NOCOLOR");
Expand Down
11 changes: 6 additions & 5 deletions src/main/java/ua/leonidius/trading/help/HelpCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import cn.nukkit.command.PluginCommand;
import cn.nukkit.utils.TextFormat;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.auction.Auction;
import ua.leonidius.trading.auction.BetCmd;
import ua.leonidius.trading.auction.StartAuctionCmd;
import ua.leonidius.trading.buy.AddBuyItemCmd;
Expand All @@ -14,8 +15,8 @@
import ua.leonidius.trading.buy.DelBuyItemCmd;
import ua.leonidius.trading.sell.AddSellItemCmd;
import ua.leonidius.trading.sell.DelSellItemCmd;
import ua.leonidius.trading.sell.Sell;
import ua.leonidius.trading.sell.SellCmd;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;

/**
Expand All @@ -40,13 +41,13 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
PluginCommand blist = new BuyListCmd();
sender.sendMessage(TextFormat.AQUA + blist.getUsage() + TextFormat.WHITE + " - " + blist.getDescription());
}
if (Settings.sell.active){
if (Sell.active){
PluginCommand sell = new SellCmd();
sender.sendMessage(TextFormat.AQUA+sell.getUsage()+TextFormat.WHITE+" - "+sell.getDescription());
PluginCommand slist = new SellListCmd();
sender.sendMessage(TextFormat.AQUA+slist.getUsage()+TextFormat.WHITE+" - "+slist.getDescription());
}
if (Settings.auction.active) {
if (Auction.isSystemActive()) {
PluginCommand auc = new StartAuctionCmd();
sender.sendMessage(TextFormat.AQUA + auc.getUsage() + TextFormat.WHITE + " - " + auc.getDescription());
PluginCommand bet = new BetCmd();
Expand All @@ -59,14 +60,14 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
PluginCommand dbi = new DelBuyItemCmd();
sender.sendMessage(TextFormat.AQUA+dbi.getUsage()+TextFormat.WHITE+" - "+dbi.getDescription());
}
if (Settings.sell.active) {
if (Sell.active) {
PluginCommand asi = new AddSellItemCmd();
sender.sendMessage(TextFormat.AQUA + asi.getUsage() + TextFormat.WHITE + " - " + asi.getDescription());
PluginCommand dsi = new DelSellItemCmd();
sender.sendMessage(TextFormat.AQUA + dsi.getUsage() + TextFormat.WHITE + " - " + dsi.getDescription());
}
}
if (Buy.active || Settings.sell.active || Settings.auction.active) {
if (Buy.active || Sell.active || Auction.isSystemActive()) {
PluginCommand id = new IdCmd();
sender.sendMessage(TextFormat.AQUA + id.getUsage() + TextFormat.WHITE + " - " + id.getDescription());
}
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/ua/leonidius/trading/sell/AddSellItemCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import cn.nukkit.item.Item;
import cn.nukkit.utils.Config;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;
import ua.leonidius.trading.utils.ItemName;

Expand Down Expand Up @@ -50,14 +49,14 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
Config config = Main.sellcfg;
String key = "s-" + id + "-" + meta;
if (config.exists(key)) {
Message.LIST_EXISTS.print(sender, 'c');
Message.LIST_EXISTS.print(sender, Sell.errorColor);
return true;
}
config.set(key, price);
config.save();
config.reload();
Message.LIST_SELL_ADDED.print(sender, name, id, meta, price, Settings.sell.primaryColor, Settings.sell.secondaryColor);
if (Settings.general.editLogging) {
Message.LIST_SELL_ADDED.print(sender, name, id, meta, price, Sell.color1, Sell.color2);
if (Sell.editLogging) {
Message.LIST_SELL_ADDED_LOG.log(sender.getName(), name, id, meta, price, "NOCOLOR");
}
Message.LIST_SELL_ADDED_LOG.broadcast("trading.editshoplist", '7', '7', sender.getName(), name, id, meta, price);
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/ua/leonidius/trading/sell/DelSellItemCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import cn.nukkit.item.Item;
import cn.nukkit.utils.Config;
import ua.leonidius.trading.Main;
import ua.leonidius.trading.settings.Settings;
import ua.leonidius.trading.utils.Message;
import ua.leonidius.trading.utils.ItemName;

Expand Down Expand Up @@ -50,12 +49,12 @@ public boolean onCommand (CommandSender sender, Command command, String label, S
config.remove(key);
config.save();
config.reload();
Message.LIST_SELL_DELETED.print(sender, name, id, meta, Settings.sell.primaryColor, Settings.sell.secondaryColor);
if (Settings.general.editLogging) {
Message.LIST_SELL_DELETED.print(sender, name, id, meta, Sell.color1, Sell.color2);
if (Sell.editLogging) {
Message.LIST_SELL_DELETED_LOG.log(sender.getName(), name, id, meta, "NOCOLOR");
}
Message.LIST_SELL_DELETED_LOG.broadcast("trading.editshoplist", '7','7', sender.getName(), name, id, meta);
} else Message.LIST_DOESNOT_EXIST.print(sender, 'c');
} else Message.LIST_DOESNOT_EXIST.print(sender, Sell.errorColor);
return true;
}
}
Loading

0 comments on commit 6174d1d

Please sign in to comment.