Update 1.0.1

This commit is contained in:
Kiran Hart 2018-09-11 19:44:10 -04:00
parent fc3b974d5f
commit 28961b4dae
10 changed files with 170 additions and 93 deletions

View File

@ -4,7 +4,7 @@
<groupId>com.shadebyte</groupId>
<artifactId>auctionhouse</artifactId>
<name>AuctionHouse</name>
<version>Production-Test</version>
<version>1.0.1</version>
<description>A premium auction house plugin</description>
<url>https://www.shadebyte.com</url>
<build>

View File

@ -6,7 +6,7 @@
<groupId>com.shadebyte</groupId>
<artifactId>auctionhouse</artifactId>
<version>1.0</version>
<version>1.0.1</version>
<packaging>jar</packaging>
<name>AuctionHouse</name>

View File

@ -13,6 +13,7 @@ import com.shadebyte.auctionhouse.events.AGUIListener;
import com.shadebyte.auctionhouse.events.PlayerListener;
import com.shadebyte.auctionhouse.events.TransactionListener;
import com.shadebyte.auctionhouse.inventory.AGUI;
import com.shadebyte.auctionhouse.inventory.inventories.AuctionGUI;
import com.shadebyte.auctionhouse.util.Debugger;
import com.shadebyte.auctionhouse.util.Locale;
import com.shadebyte.auctionhouse.util.storage.ConfigWrapper;
@ -28,9 +29,6 @@ import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
@ -104,7 +102,7 @@ public final class Core extends JavaPlugin {
hikari.addDataSourceProperty("databaseName", getConfig().getString("database.database"));
hikari.addDataSourceProperty("user", getConfig().getString("database.username"));
hikari.addDataSourceProperty("password", getConfig().getString("database.password"));
if(!hikari.isClosed()) {
if (!hikari.isClosed()) {
dbConnected = true;
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&aConnected to database"));
}
@ -126,7 +124,7 @@ public final class Core extends JavaPlugin {
@Override
public void onDisable() {
Bukkit.getOnlinePlayers().forEach(p -> {
if(p.getOpenInventory().getTopInventory().getHolder() instanceof AGUI) p.closeInventory();
if (p.getOpenInventory().getTopInventory().getHolder() instanceof AGUI) p.closeInventory();
});
saveAuctions();
@ -224,6 +222,14 @@ public final class Core extends JavaPlugin {
}
}
}
if (getConfig().getBoolean("settings.auto-refresh-auction-page")) {
Bukkit.getOnlinePlayers().forEach(p -> {
if (p.getOpenInventory().getTopInventory().getTitle().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString("gui.auction.title")))) {
p.closeInventory();
p.openInventory(new AuctionGUI(p).getInventory());
}
});
}
}
}, 0, 20 * 5);
} catch (Exception e) {

View File

@ -15,6 +15,7 @@ public enum Lang {
NOT_ENOUGH_MONEY("notenoughmoney"),
CANNOT_BUY_OWN("cantbuyown"),
CANNOT_BID_OWN("cantbidonown"),
AIR("air"),
AUCTION_LISTED("auction.listed"),
AUCTION_BUY("auction.buy"),

View File

@ -1,5 +1,6 @@
package com.shadebyte.auctionhouse.auction;
import com.shadebyte.auctionhouse.Core;
import com.shadebyte.auctionhouse.api.AuctionAPI;
import com.shadebyte.auctionhouse.util.NBTEditor;
import org.apache.commons.lang.StringUtils;
@ -156,12 +157,15 @@ public class AuctionItem {
lore.add(translateAlternateColorCodes('&', "&eSeller&f: &b" + Bukkit.getOfflinePlayer(UUID.fromString(owner)).getName()));
lore.add(translateAlternateColorCodes('&', ""));
lore.add(translateAlternateColorCodes('&', "&eBuy Now: &a$" + AuctionAPI.getInstance().friendlyNumber(buyNowPrice)));
lore.add(translateAlternateColorCodes('&', "&eCurrent Price: &a$" + AuctionAPI.getInstance().friendlyNumber(currentPrice)));
lore.add(translateAlternateColorCodes('&', "&eBid Increment: &a$" + AuctionAPI.getInstance().friendlyNumber(bidIncrement)));
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
lore.add(translateAlternateColorCodes('&', "&eCurrent Price: &a$" + AuctionAPI.getInstance().friendlyNumber(currentPrice)));
lore.add(translateAlternateColorCodes('&', "&eBid Increment: &a$" + AuctionAPI.getInstance().friendlyNumber(bidIncrement)));
}
lore.add(translateAlternateColorCodes('&', ""));
lore.add(translateAlternateColorCodes('&', "&eTime Left: &b" + AuctionAPI.getInstance().timeLeft(getTime())));
lore.add(translateAlternateColorCodes('&', "&7-------------------------"));
lore.add(translateAlternateColorCodes('&', "&eLeft-Click&f: &bBid"));
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system"))
lore.add(translateAlternateColorCodes('&', "&eLeft-Click&f: &bBid"));
lore.add(translateAlternateColorCodes('&', "&eRight-Click&f: &bBuy Now"));
lore.add(translateAlternateColorCodes('&', "&7-------------------------"));
meta.setLore(lore);
@ -177,8 +181,10 @@ public class AuctionItem {
List<String> lore = (meta.hasLore() ? meta.getLore() : new ArrayList<>());
lore.add(translateAlternateColorCodes('&', "&7-------------------------"));
lore.add(translateAlternateColorCodes('&', "&eBuy Now: &a$" + AuctionAPI.getInstance().friendlyNumber(buyNowPrice)));
lore.add(translateAlternateColorCodes('&', "&eCurrent Price: &a$" + AuctionAPI.getInstance().friendlyNumber(currentPrice)));
lore.add(translateAlternateColorCodes('&', "&eBid Increment: &a$" + AuctionAPI.getInstance().friendlyNumber(bidIncrement)));
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
lore.add(translateAlternateColorCodes('&', "&eCurrent Price: &a$" + AuctionAPI.getInstance().friendlyNumber(currentPrice)));
lore.add(translateAlternateColorCodes('&', "&eBid Increment: &a$" + AuctionAPI.getInstance().friendlyNumber(bidIncrement)));
}
lore.add(translateAlternateColorCodes('&', ""));
lore.add(translateAlternateColorCodes('&', "&eTime Left: &b" + AuctionAPI.getInstance().timeLeft(getTime())));
lore.add(translateAlternateColorCodes('&', "&7-------------------------"));

View File

@ -5,7 +5,6 @@ import com.shadebyte.auctionhouse.api.enums.Lang;
import com.shadebyte.auctionhouse.api.enums.Permissions;
import com.shadebyte.auctionhouse.cmds.subcmds.*;
import com.shadebyte.auctionhouse.inventory.inventories.AuctionGUI;
import com.shadebyte.auctionhouse.inventory.inventories.ListingsGUI;
import com.shadebyte.auctionhouse.util.Debugger;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@ -46,6 +45,7 @@ public class CommandManager implements CommandExecutor {
this.commands.add(new ListedCommand());
this.commands.add(new ExpiredCommand());
this.commands.add(new TransactionsCommand());
this.commands.add(new HelpCommand());
}
@Override

View File

@ -12,6 +12,7 @@ import com.shadebyte.auctionhouse.api.event.AuctionStartEvent;
import com.shadebyte.auctionhouse.auction.AuctionItem;
import com.shadebyte.auctionhouse.auction.AuctionPlayer;
import com.shadebyte.auctionhouse.cmds.SubCommand;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -47,95 +48,149 @@ public class SellCommand extends SubCommand {
if (args.length == 2) {
if (AuctionAPI.getInstance().isNumeric(args[1])) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.CMD_SELL.getNode()));
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.CMD_SELL.getNode()));
} else {
int buyNow = Integer.parseInt(args[1]);
//Max Prices
if (buyNow > Core.getInstance().getConfig().getInt("settings.max-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_AUCTION_PRICE.getNode()));
return;
}
if (buyNow < Core.getInstance().getConfig().getInt("settings.min-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_AUCTION_PRICE.getNode()));
return;
}
AuctionItem auctionItem = new AuctionItem(p.getUniqueId().toString(), AuctionAPI.getItemInHand(p), Core.getInstance().getConfig().getInt("settings.default-auction-time"), buyNow, 0, buyNow);
AuctionStartEvent auctionStartEvent = new AuctionStartEvent(auctionItem);
Core.getInstance().getServer().getPluginManager().callEvent(auctionStartEvent);
if (!auctionStartEvent.isCancelled()) {
Core.getInstance().auctionItems.add(0, auctionItem);
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AUCTION_LISTED.getNode()).replace("{itemname}", auctionItem.getDisplayName()).replace("{price}", AuctionAPI.getInstance().friendlyNumber(buyNow)));
//Discord Hook
if (Core.getInstance().getConfig().getBoolean("discord.enabled")) {
DiscordHook discordHook = new DiscordHook(Core.getInstance().getConfig().getString("discord.webhook"));
DiscordEmbed de = DiscordEmbed.builder()
.title(Core.getInstance().getConfig().getString("discord.title"))
.description(Core.getInstance().getConfig().getString("discord.description"))
.color(1)
.fields(Arrays.asList(
FieldEmbed.builder().name("Seller").value(p.getName()).inline(true).build(),
FieldEmbed.builder().name("Buy Now").value(AuctionAPI.getInstance().friendlyNumber(buyNow)).build(),
FieldEmbed.builder().name("Item").value(auctionItem.getItem().getType().name() + ":" + auctionItem.getItem().getDurability()).build()
))
.build();
DiscordMessage dm = DiscordMessage.builder().username(Core.getInstance().getConfig().getString("discord.username")).content("").avatarUrl(Core.getInstance().getConfig().getString("discord.profilepicture")).embeds(Arrays.asList(de)).build();
discordHook.send(dm);
}
AuctionAPI.setItemInHand(p, null);
}
}
} else {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.NOT_A_NUMBER.getNode()));
}
}
if (args.length == 3) {
if (AuctionAPI.getInstance().isNumeric(args[1]) && AuctionAPI.getInstance().isNumeric(args[2])) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.CMD_SELL.getNode()));
} else {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.NOT_A_NUMBER.getNode()));
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
if (AuctionAPI.getInstance().isNumeric(args[1]) && AuctionAPI.getInstance().isNumeric(args[2])) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.CMD_SELL.getNode()));
} else {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.NOT_A_NUMBER.getNode()));
}
}
}
if (args.length == 4) {
if (AuctionAPI.getInstance().isNumeric(args[1]) && AuctionAPI.getInstance().isNumeric(args[2]) && AuctionAPI.getInstance().isNumeric(args[3])) {
if (new AuctionPlayer(p).getLimit() - 1 < new AuctionPlayer(p).getTotalActiveAuctions()) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AUCTION_MAX.getNode()));
return;
}
int buyNow = Integer.parseInt(args[1]);
int startPrice = Integer.parseInt(args[2]);
int increment = Integer.parseInt(args[3]);
//Max Prices
if (buyNow > Core.getInstance().getConfig().getInt("settings.max-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_AUCTION_PRICE.getNode()));
return;
}
if (startPrice > Core.getInstance().getConfig().getInt("settings.max-auction-start")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_START_PRICE.getNode()));
return;
}
if (increment > Core.getInstance().getConfig().getInt("settings.max-auction-increment")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_INCREMENT_PRICE.getNode()));
return;
}
//Min Prices
if (buyNow < Core.getInstance().getConfig().getInt("settings.min-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_AUCTION_PRICE.getNode()));
return;
}
if (startPrice < Core.getInstance().getConfig().getInt("settings.min-auction-start")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_START_PRICE.getNode()));
return;
}
if (increment < Core.getInstance().getConfig().getInt("settings.min-auction-increment")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_INCREMENT_PRICE.getNode()));
return;
}
AuctionItem auctionItem = new AuctionItem(p.getUniqueId().toString(), AuctionAPI.getItemInHand(p), Core.getInstance().getConfig().getInt("settings.default-auction-time"), startPrice, increment, buyNow);
AuctionStartEvent auctionStartEvent = new AuctionStartEvent(auctionItem);
Core.getInstance().getServer().getPluginManager().callEvent(auctionStartEvent);
if (!auctionStartEvent.isCancelled()) {
Core.getInstance().auctionItems.add(0, auctionItem);
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AUCTION_LISTED.getNode()).replace("{itemname}", auctionItem.getDisplayName()).replace("{price}", AuctionAPI.getInstance().friendlyNumber(startPrice)));
//Discord Hook
if (Core.getInstance().getConfig().getBoolean("discord.enabled")) {
DiscordHook discordHook = new DiscordHook(Core.getInstance().getConfig().getString("discord.webhook"));
DiscordEmbed de = DiscordEmbed.builder()
.title(Core.getInstance().getConfig().getString("discord.title"))
.description(Core.getInstance().getConfig().getString("discord.description"))
.color(1)
.fields(Arrays.asList(
FieldEmbed.builder().name("Seller").value(p.getName()).inline(true).build(),
FieldEmbed.builder().name("Start Price").value(AuctionAPI.getInstance().friendlyNumber(startPrice)).build(),
FieldEmbed.builder().name("Increment").value(AuctionAPI.getInstance().friendlyNumber(increment)).build(),
FieldEmbed.builder().name("Buy Now").value(AuctionAPI.getInstance().friendlyNumber(buyNow)).build(),
FieldEmbed.builder().name("Item").value(auctionItem.getItem().getType().name() + ":" + auctionItem.getItem().getDurability()).build()
))
.build();
DiscordMessage dm = DiscordMessage.builder().username(Core.getInstance().getConfig().getString("discord.username")).content("").avatarUrl(Core.getInstance().getConfig().getString("discord.profilepicture")).embeds(Arrays.asList(de)).build();
discordHook.send(dm);
if (Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
if (AuctionAPI.getInstance().isNumeric(args[1]) && AuctionAPI.getInstance().isNumeric(args[2]) && AuctionAPI.getInstance().isNumeric(args[3])) {
if (new AuctionPlayer(p).getLimit() - 1 < new AuctionPlayer(p).getTotalActiveAuctions()) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AUCTION_MAX.getNode()));
return;
}
AuctionAPI.setItemInHand(p, null);
int buyNow = Integer.parseInt(args[1]);
int startPrice = Integer.parseInt(args[2]);
int increment = Integer.parseInt(args[3]);
if (AuctionAPI.getItemInHand(p) == null || AuctionAPI.getItemInHand(p).getType() == Material.AIR) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AIR.getNode()));
return;
}
//Max Prices
if (buyNow > Core.getInstance().getConfig().getInt("settings.max-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_AUCTION_PRICE.getNode()));
return;
}
if (startPrice > Core.getInstance().getConfig().getInt("settings.max-auction-start")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_START_PRICE.getNode()));
return;
}
if (increment > Core.getInstance().getConfig().getInt("settings.max-auction-increment")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MAX_INCREMENT_PRICE.getNode()));
return;
}
//Min Prices
if (buyNow < Core.getInstance().getConfig().getInt("settings.min-auction-price")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_AUCTION_PRICE.getNode()));
return;
}
if (startPrice < Core.getInstance().getConfig().getInt("settings.min-auction-start")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_START_PRICE.getNode()));
return;
}
if (increment < Core.getInstance().getConfig().getInt("settings.min-auction-increment")) {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.MIN_INCREMENT_PRICE.getNode()));
return;
}
AuctionItem auctionItem = new AuctionItem(p.getUniqueId().toString(), AuctionAPI.getItemInHand(p), Core.getInstance().getConfig().getInt("settings.default-auction-time"), startPrice, increment, buyNow);
AuctionStartEvent auctionStartEvent = new AuctionStartEvent(auctionItem);
Core.getInstance().getServer().getPluginManager().callEvent(auctionStartEvent);
if (!auctionStartEvent.isCancelled()) {
Core.getInstance().auctionItems.add(0, auctionItem);
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.AUCTION_LISTED.getNode()).replace("{itemname}", auctionItem.getDisplayName()).replace("{price}", AuctionAPI.getInstance().friendlyNumber(startPrice)));
//Discord Hook
if (Core.getInstance().getConfig().getBoolean("discord.enabled")) {
DiscordHook discordHook = new DiscordHook(Core.getInstance().getConfig().getString("discord.webhook"));
DiscordEmbed de = DiscordEmbed.builder()
.title(Core.getInstance().getConfig().getString("discord.title"))
.description(Core.getInstance().getConfig().getString("discord.description"))
.color(1)
.fields(Arrays.asList(
FieldEmbed.builder().name("Seller").value(p.getName()).inline(true).build(),
FieldEmbed.builder().name("Start Price").value(AuctionAPI.getInstance().friendlyNumber(startPrice)).build(),
FieldEmbed.builder().name("Increment").value(AuctionAPI.getInstance().friendlyNumber(increment)).build(),
FieldEmbed.builder().name("Buy Now").value(AuctionAPI.getInstance().friendlyNumber(buyNow)).build(),
FieldEmbed.builder().name("Item").value(auctionItem.getItem().getType().name() + ":" + auctionItem.getItem().getDurability()).build()
))
.build();
DiscordMessage dm = DiscordMessage.builder().username(Core.getInstance().getConfig().getString("discord.username")).content("").avatarUrl(Core.getInstance().getConfig().getString("discord.profilepicture")).embeds(Arrays.asList(de)).build();
discordHook.send(dm);
}
AuctionAPI.setItemInHand(p, null);
}
} else {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.NOT_A_NUMBER.getNode()));
}
} else {
p.sendMessage(Core.getInstance().getSettings().getPrefix() + Core.getInstance().getLocale().getMessage(Lang.NOT_A_NUMBER.getNode()));
}
}
}

View File

@ -67,6 +67,7 @@ public class AuctionGUI implements AGUI {
}
if (slot >= 0 & slot <= 44) {
if (clicked == null || clicked.getType() == Material.AIR) {
return;
}
@ -74,6 +75,11 @@ public class AuctionGUI implements AGUI {
AuctionItem item = null;
if (e.getClick() == ClickType.LEFT) {
if (!Core.getInstance().getConfig().getBoolean("settings.use-bid-system")) {
return;
}
String key = (String) NBTEditor.getItemTag(clicked, "AuctionItemKey");
for (AuctionItem auctionItem : Core.getInstance().auctionItems) {
if (auctionItem.getKey().equalsIgnoreCase(key)) item = auctionItem;

View File

@ -5,7 +5,7 @@
lang: "en_US"
settings:
default-auction-time: 15 # 15 Minutes by default
default-auction-time: 150 # 15 Minutes by default
max-auction-price: 2000000000
max-auction-start: 2000000000
max-auction-increment: 2000000000
@ -14,6 +14,8 @@ settings:
min-auction-increment: 1
owner-can-purchase-own: false
owner-can-bid-own: false
use-bid-system: true
auto-refresh-auction-page: true
bid:
increase-on-bid: true
increase-amount: 10 #10 Seconds by default
@ -21,10 +23,10 @@ settings:
#MySql stuff for databases if you want
database:
enabled: false
host: ""
host: "localhost"
port: 3306
database: ""
username: ""
database: "auctionhouse"
username: "root"
password: ""
discord:

View File

@ -18,6 +18,7 @@ notanumber = "&CThat isn't a valid number"
notenoughmoney = "&CYou do not have enough money!"
cantbidonown = "&cYou cannot bid on your own item!"
cantbuyown = "&cYou cannot buy your own item!"
air = "&CCome on, really tryna auction air?"
price.max.start = "&cPlease start auction with a lower price."
price.max.auction = "&cPlease start with a lower bid price."