Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4814cfae86 | ||
|
|
3aa7820239 | ||
|
|
c4a7232bca | ||
|
|
ee390ac0b1 | ||
|
|
187ee01d82 | ||
|
|
64f3d89abb | ||
|
|
bc33cef53f | ||
|
|
199936262a | ||
|
|
3b6eb22c16 | ||
|
|
0dc2ada7bc | ||
|
|
f591756697 | ||
|
|
86175dc284 | ||
|
|
d69970acdd | ||
|
|
8242c4a977 | ||
|
|
f319bce854 | ||
|
|
8bd1bfc3e0 | ||
|
|
cec3232b51 | ||
|
|
7dcd892106 |
No files matched your search
@@ -310,6 +310,10 @@ Format:
|
||||
# GUI Options
|
||||
# ------------------------------------------------
|
||||
|
||||
# Enable command for last month gui
|
||||
# Requires restart to take effect
|
||||
LastMonthGUI: false
|
||||
|
||||
# Configure GUI's here
|
||||
# Note: Slots start at 0 instead of 1, max slot is 53 (don't go over) (E.g: last slot in first row of inventory is 8)
|
||||
# Item Material's can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||
@@ -557,6 +561,10 @@ BackButton:
|
||||
|
||||
VoteShopBackButton: true
|
||||
VoteShopEnabled: true
|
||||
# Hide items in vote shop which user can not buy
|
||||
VoteShopHideLimitedReached: true
|
||||
# Requires above to be false
|
||||
VoteShopLimitReached: '&aYou reached your limit'
|
||||
Shop:
|
||||
# Identifier
|
||||
# Used in placeholders for formats
|
||||
@@ -577,6 +585,8 @@ Shop:
|
||||
Permission: ''
|
||||
# Limit how many times you can buy this
|
||||
#Limit: 3
|
||||
# If true, item is not buyable
|
||||
#NotBuyable: false
|
||||
# Rewards to run if player buys successfully
|
||||
Rewards:
|
||||
Items:
|
||||
@@ -807,6 +817,8 @@ DailyAwards:
|
||||
# Set to 0 to give no points
|
||||
PointsOnVote: 1
|
||||
|
||||
AlwaysCloseInventory: false
|
||||
|
||||
# Set this to false to disable the plugin adding totals
|
||||
# Not really recommended
|
||||
AddTotals: true
|
||||
@@ -942,6 +954,9 @@ ClearCacheOnJoin: false
|
||||
# Would recommend for some bungee setups
|
||||
ClearCacheOnVote: false
|
||||
|
||||
# Disable using vault for permission checks
|
||||
DisableVaultPermissions: false
|
||||
|
||||
# ###############################################################
|
||||
# Deprecated options, don't recommend using any of these
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ VoteSites:
|
||||
Chance: 20
|
||||
Messages:
|
||||
Player: 'You got second reward'
|
||||
# Fallback, 100% chance
|
||||
# Fallback, 100% chance, after other rewards fail chances
|
||||
Fallback:
|
||||
Messages:
|
||||
Player: 'You got unlucky'
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.Ben12345rocks</groupId>
|
||||
<artifactId>VotingPlugin</artifactId>
|
||||
<version>5.19.1</version>
|
||||
<version>5.19.2</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>VotingPlugin</name>
|
||||
<properties>
|
||||
@@ -245,7 +245,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.14.3-SNAPSHOT</version>
|
||||
<version>1.14.4-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
@@ -460,10 +460,22 @@ public class CommandLoader {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
sender.sendMessage(ChatColor.RED + "Reloading " + plugin.getName() + "...");
|
||||
sendMessage(sender, "&4" + "Reloading " + plugin.getName() + "...");
|
||||
plugin.reload();
|
||||
sender.sendMessage(
|
||||
ChatColor.RED + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
|
||||
if (plugin.isYmlError()) {
|
||||
sendMessage(sender, "&3Detected yml error, please check server log for details");
|
||||
}
|
||||
sendMessage(sender,
|
||||
"&4" + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
|
||||
if (ServerData.getInstance().getServiceSites().size() == 0) {
|
||||
sendMessage(sender, "&c"
|
||||
+ "Detected that server hasn't received any votes from votifier, please check votifier connection");
|
||||
}
|
||||
if (!Config.getInstance().isDisableUpdateChecking()
|
||||
&& plugin.getUpdater().getResult().equals(Updater.UpdateResult.UPDATE_AVAILABLE)) {
|
||||
sendMessage(sender,
|
||||
"&3Plugin has update available! https://www.spigotmc.org/resources/votingplugin.15358/");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -700,6 +712,12 @@ public class CommandLoader {
|
||||
}
|
||||
plugin.getServer().getPluginManager().callEvent(voteEvent);
|
||||
|
||||
if (plugin.isYmlError()) {
|
||||
sendMessage(sender,
|
||||
"&4" + plugin.getName() + " v" + plugin.getDescription().getVersion() + " reloaded!");
|
||||
sendMessage(sender, "&3Detected yml error, please check server log for details");
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1550,6 +1568,19 @@ public class CommandLoader {
|
||||
}
|
||||
});
|
||||
|
||||
if (Config.getInstance().isLastMonthGUI()) {
|
||||
plugin.getVoteCommand()
|
||||
.add(new CommandHandler(new String[] { "LastMonthTop" },
|
||||
"VotingPlugin.Commands.Vote.LastMonthTop|" + playerPerm,
|
||||
"Open list of Top Voters from last month") {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
PlayerGUIs.getInstance().openVoteTopLastMonth((Player) sender);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
plugin.getVoteCommand().add(new CommandHandler(new String[] { "Top" },
|
||||
"VotingPlugin.Commands.Vote.Top|" + playerPerm, "Open list of Top Voters") {
|
||||
|
||||
|
||||
@@ -52,12 +52,28 @@ public class PlayerGUIs {
|
||||
private PlayerGUIs() {
|
||||
}
|
||||
|
||||
public ItemBuilder getBackButton() {
|
||||
public BInventoryButton getBackButton() {
|
||||
ConfigurationSection sec = Config.getInstance().getBackButton();
|
||||
ItemBuilder item;
|
||||
if (sec != null) {
|
||||
return new ItemBuilder(sec);
|
||||
item = new ItemBuilder(sec);
|
||||
} else {
|
||||
item = new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
|
||||
}
|
||||
return new ItemBuilder(Material.PAPER, 1).setName("&8Back to VoteGUI");
|
||||
|
||||
BInventoryButton b = new BInventoryButton(item) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getWhoClicked(), getSelectedPlayer(event.getWhoClicked()));
|
||||
}
|
||||
};
|
||||
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
b.dontClose();
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public User getSelectedPlayer(Player player) {
|
||||
@@ -116,6 +132,9 @@ public class PlayerGUIs {
|
||||
setSelectedPlayer(player, user);
|
||||
BInventory inv = new BInventory(StringUtils.getInstance()
|
||||
.replacePlaceHolder(Config.getInstance().getGUIVoteGUIName(), "player", user.getPlayerName()));
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
inv.dontClose();
|
||||
}
|
||||
|
||||
for (String slot : Config.getInstance().getVoteGUISlots()) {
|
||||
ItemBuilder builder = new ItemBuilder(Config.getInstance().getVoteGUISlotSection(slot));
|
||||
@@ -195,6 +214,8 @@ public class PlayerGUIs {
|
||||
player.performCommand("vote help");
|
||||
} else if (slot.equalsIgnoreCase("shop")) {
|
||||
openVoteShop(player);
|
||||
} else if (slot.equalsIgnoreCase("lastmonth")) {
|
||||
openVoteTopLastMonth(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,14 +244,7 @@ public class PlayerGUIs {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteLastBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
|
||||
inv.openInventory(player);
|
||||
@@ -252,14 +266,7 @@ public class PlayerGUIs {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteNextBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
inv.openInventory(player);
|
||||
}
|
||||
@@ -292,70 +299,77 @@ public class PlayerGUIs {
|
||||
}
|
||||
}
|
||||
|
||||
if (hasPerm && limitPass) {
|
||||
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
|
||||
if (!Config.getInstance().getVoteShopNotBuyable(identifier)) {
|
||||
if (hasPerm && (limitPass || !Config.getInstance().isVoteShopHideLimitedReached())) {
|
||||
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
|
||||
|
||||
inv.addButton(new BInventoryButton(builder) {
|
||||
inv.addButton(new BInventoryButton(builder) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Player player = event.getWhoClicked();
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Player player = event.getWhoClicked();
|
||||
|
||||
User user = UserManager.getInstance().getVotingPluginUser(player);
|
||||
user.clearCache();
|
||||
String identifier = (String) getData("identifier");
|
||||
int limit = (int) getData("Limit");
|
||||
int points = Config.getInstance().getIdentifierCost(identifier);
|
||||
if (identifier != null) {
|
||||
User user = UserManager.getInstance().getVotingPluginUser(player);
|
||||
user.clearCache();
|
||||
String identifier = (String) getData("identifier");
|
||||
int limit = (int) getData("Limit");
|
||||
int points = Config.getInstance().getIdentifierCost(identifier);
|
||||
if (identifier != null) {
|
||||
|
||||
// limit fail-safe, should never be needed, except in rare cases
|
||||
boolean limitPass = true;
|
||||
if (limit > 0) {
|
||||
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
|
||||
limitPass = false;
|
||||
// limit fail-safe, should never be needed, except in rare cases
|
||||
boolean limitPass = true;
|
||||
if (limit > 0) {
|
||||
if (user.getVoteShopIdentifierLimit(identifier) >= limit) {
|
||||
limitPass = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (limitPass) {
|
||||
HashMap<String, String> placeholders = new HashMap<String, String>();
|
||||
placeholders.put("identifier", identifier);
|
||||
placeholders.put("points", "" + points);
|
||||
placeholders.put("limit", "" + limit);
|
||||
if (user.removePoints(points)) {
|
||||
if (limitPass) {
|
||||
HashMap<String, String> placeholders = new HashMap<String, String>();
|
||||
placeholders.put("identifier", identifier);
|
||||
placeholders.put("points", "" + points);
|
||||
placeholders.put("limit", "" + limit);
|
||||
if (user.removePoints(points)) {
|
||||
|
||||
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
|
||||
Config.getInstance().getIdentifierRewardsPath(identifier),
|
||||
new RewardOptions().setPlaceholders(placeholders));
|
||||
RewardHandler.getInstance().giveReward(user, Config.getInstance().getData(),
|
||||
Config.getInstance().getIdentifierRewardsPath(identifier),
|
||||
new RewardOptions().setPlaceholders(placeholders));
|
||||
|
||||
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
|
||||
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
|
||||
if (limit > 0) {
|
||||
user.setVoteShopIdentifierLimit(identifier,
|
||||
user.getVoteShopIdentifierLimit(identifier) + 1);
|
||||
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
|
||||
Config.getInstance().getFormatShopPurchaseMsg(), placeholders));
|
||||
if (limit > 0) {
|
||||
user.setVoteShopIdentifierLimit(identifier,
|
||||
user.getVoteShopIdentifierLimit(identifier) + 1);
|
||||
}
|
||||
} else {
|
||||
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
|
||||
Config.getInstance().getFormatShopFailedMsg(), placeholders));
|
||||
}
|
||||
} else {
|
||||
user.sendMessage(StringUtils.getInstance().replacePlaceHolder(
|
||||
Config.getInstance().getFormatShopFailedMsg(), placeholders));
|
||||
user.sendMessage(Config.getInstance().getVoteShopLimitReached());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}.addData("identifier", identifier).addData("Limit", limit));
|
||||
}.addData("identifier", identifier).addData("Limit", limit));
|
||||
}
|
||||
} else {
|
||||
if (hasPerm) {
|
||||
ItemBuilder builder = new ItemBuilder(Config.getInstance().getIdentifierSection(identifier));
|
||||
inv.addButton(new BInventoryButton(builder) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
}
|
||||
|
||||
}.dontClose().addData("identifier", identifier).addData("Limit", limit));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.getInstance().getVoteShopBackButton()) {
|
||||
inv.addButton(new BInventoryButton(PlayerGUIs.getInstance().getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
PlayerGUIs.getInstance().openVoteGUI(event.getPlayer(),
|
||||
UserManager.getInstance().getVotingPluginUser(player));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
|
||||
inv.openInventory(player);
|
||||
@@ -423,13 +437,7 @@ public class PlayerGUIs {
|
||||
});
|
||||
|
||||
if (Config.getInstance().getGUIVoteStreakBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
|
||||
inv.openInventory(player);
|
||||
@@ -438,6 +446,9 @@ public class PlayerGUIs {
|
||||
public void openVoteToday(Player player) {
|
||||
setSelectedPlayer(player, null);
|
||||
BInventory inv = new BInventory(Config.getInstance().getGUIVoteTodayName());
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
inv.dontClose();
|
||||
}
|
||||
for (User user : plugin.getVoteToday().keySet()) {
|
||||
|
||||
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
|
||||
@@ -452,25 +463,64 @@ public class PlayerGUIs {
|
||||
User user = UserManager.getInstance()
|
||||
.getVotingPluginUser(clickEvent.getClickedItem().getItemMeta().getDisplayName());
|
||||
openVoteGUI(player, user);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteTodayBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
inv.openInventory(player);
|
||||
}
|
||||
|
||||
public void openVoteTopLastMonth(Player player) {
|
||||
Set<Entry<User, Integer>> users = null;
|
||||
|
||||
users = plugin.getLastMonthTopVoter().entrySet();
|
||||
|
||||
BInventory inv = new BInventory(StringUtils.getInstance()
|
||||
.replacePlaceHolder(Config.getInstance().getGUIVoteTopName(), "topvoter", "Last Month"));
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
inv.dontClose();
|
||||
}
|
||||
|
||||
int pos = 1;
|
||||
for (Entry<User, Integer> entry : users) {
|
||||
ItemBuilder playerItem;
|
||||
|
||||
if (Config.getInstance().isGuiVoteTopUseSkull()) {
|
||||
playerItem = new ItemBuilder(entry.getKey().getPlayerHead());
|
||||
} else {
|
||||
playerItem = new ItemBuilder(Material.valueOf(Config.getInstance().getGuiVoteTopPlayerItemMaterial()));
|
||||
}
|
||||
|
||||
playerItem.setLore(new ArrayList<String>());
|
||||
|
||||
inv.addButton(new BInventoryButton(playerItem.setName(Config.getInstance().getGUIVoteTopItemName())
|
||||
.addLoreLine(Config.getInstance().getGUIVoteTopItemLore()).addPlaceholder("position", "" + pos)
|
||||
.addPlaceholder("player", entry.getKey().getPlayerName())
|
||||
.addPlaceholder("votes", "" + entry.getValue())) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent clickEvent) {
|
||||
User user = (User) getData("User");
|
||||
openVoteGUI(player, user);
|
||||
}
|
||||
}.addData("player", entry.getKey().getPlayerName()).addData("User", entry.getKey()));
|
||||
pos++;
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteTopBackButton()) {
|
||||
inv.getPageButtons().add(getBackButton().setSlot(1));
|
||||
}
|
||||
|
||||
inv.setPages(true);
|
||||
inv.setMaxInvSize(Config.getInstance().getGUIVoteTopSize());
|
||||
inv.openInventory(player);
|
||||
|
||||
}
|
||||
|
||||
public void openVoteTop(Player player, TopVoter top) {
|
||||
if (top == null) {
|
||||
top = TopVoter.getDefault();
|
||||
@@ -482,6 +532,9 @@ public class PlayerGUIs {
|
||||
|
||||
BInventory inv = new BInventory(StringUtils.getInstance()
|
||||
.replacePlaceHolder(Config.getInstance().getGUIVoteTopName(), "topvoter", topVoter));
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
inv.dontClose();
|
||||
}
|
||||
|
||||
int pos = 1;
|
||||
for (Entry<User, Integer> entry : users) {
|
||||
@@ -524,13 +577,7 @@ public class PlayerGUIs {
|
||||
});
|
||||
|
||||
if (Config.getInstance().getGUIVoteTopBackButton()) {
|
||||
inv.getPageButtons().add(new BInventoryButton(getBackButton().setSlot(1)) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
});
|
||||
inv.getPageButtons().add(getBackButton().setSlot(1));
|
||||
}
|
||||
|
||||
inv.setPages(true);
|
||||
@@ -556,14 +603,7 @@ public class PlayerGUIs {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteTotalBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
inv.openInventory(player);
|
||||
}
|
||||
@@ -644,13 +684,7 @@ public class PlayerGUIs {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getGUIVoteURLBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
|
||||
inv.openInventory(player);
|
||||
@@ -663,6 +697,9 @@ public class PlayerGUIs {
|
||||
BInventory inv = new BInventory(StringUtils.getInstance()
|
||||
.replacePlaceHolder(Config.getInstance().getGUIVoteURLSiteName(), "site", site.getDisplayName()));
|
||||
inv.setMeta(player, "VoteSite", site);
|
||||
if (!Config.getInstance().isAlwaysCloseInventory()) {
|
||||
inv.dontClose();
|
||||
}
|
||||
|
||||
inv.addButton(
|
||||
new BInventoryButton(new ItemBuilder(Material.BOW).setName("&4URL").addLoreLine("Click to see URL")) {
|
||||
@@ -693,13 +730,7 @@ public class PlayerGUIs {
|
||||
});
|
||||
|
||||
if (Config.getInstance().getGUIVoteURLBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
inv.openInventory(player);
|
||||
}
|
||||
@@ -754,13 +785,7 @@ public class PlayerGUIs {
|
||||
}
|
||||
|
||||
if (Config.getInstance().isVoteRewardBackButton()) {
|
||||
inv.addButton(new BInventoryButton(getBackButton()) {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
openVoteGUI(event.getPlayer(), getSelectedPlayer(event.getPlayer()));
|
||||
}
|
||||
});
|
||||
inv.addButton(getBackButton());
|
||||
}
|
||||
|
||||
inv.openInventory(player);
|
||||
|
||||
@@ -268,6 +268,18 @@ public class Config extends YMLFile {
|
||||
@Getter
|
||||
private boolean limitMonthlyVotes = false;
|
||||
|
||||
@ConfigDataBoolean(path = "AlwaysCloseInventory")
|
||||
@Getter
|
||||
private boolean alwaysCloseInventory = false;
|
||||
|
||||
@ConfigDataBoolean(path = "VoteShopHideLimitedReached")
|
||||
@Getter
|
||||
private boolean voteShopHideLimitedReached = true;
|
||||
|
||||
@ConfigDataString(path = "VoteShopLimitReached")
|
||||
@Getter
|
||||
private String voteShopLimitReached = "&aYou reached your limit";
|
||||
|
||||
@Getter
|
||||
private int formatPageSize = 10;
|
||||
|
||||
@@ -1255,6 +1267,14 @@ public class Config extends YMLFile {
|
||||
return getData().getString("Shop." + ident + ".Permission", "");
|
||||
}
|
||||
|
||||
@ConfigDataBoolean(path = "OverrideVersionDisable")
|
||||
@Getter
|
||||
private boolean overrideVersionDisable = false;
|
||||
|
||||
@ConfigDataBoolean(path = "LastMonthGUI")
|
||||
@Getter
|
||||
private boolean lastMonthGUI = false;
|
||||
|
||||
/**
|
||||
* Gets the vote site items.
|
||||
*
|
||||
@@ -1290,6 +1310,10 @@ public class Config extends YMLFile {
|
||||
return getData().getInt("GUI.VoteReward." + siteName + ".Items." + item + ".Slot");
|
||||
}
|
||||
|
||||
public boolean getVoteShopNotBuyable(String shop) {
|
||||
return getData().getBoolean("Shop." + shop + ".NotBuyable", false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the votes required.
|
||||
*
|
||||
|
||||
@@ -46,6 +46,9 @@ public class PlayerJoinEvent implements Listener {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
User user = UserManager.getInstance().getVotingPluginUser(player);
|
||||
if (player.isOp() && plugin.isYmlError()) {
|
||||
user.sendMessage("&cVotingPlugin: Detected yml error, please chceck console for details");
|
||||
}
|
||||
|
||||
// run remind
|
||||
user.loginMessage();
|
||||
|
||||
@@ -7,11 +7,13 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
|
||||
import com.Ben12345rocks.VotingPlugin.Main;
|
||||
import com.Ben12345rocks.VotingPlugin.Config.Config;
|
||||
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
|
||||
import com.Ben12345rocks.VotingPlugin.Data.ServerData;
|
||||
import com.Ben12345rocks.VotingPlugin.Events.PlayerVoteEvent;
|
||||
import com.Ben12345rocks.VotingPlugin.Objects.VoteSite;
|
||||
import com.vexsoftware.votifier.model.Vote;
|
||||
import com.vexsoftware.votifier.model.VotifierEvent;
|
||||
|
||||
@@ -67,7 +69,7 @@ public class VotiferEvent implements Listener {
|
||||
}
|
||||
|
||||
plugin.getLogger()
|
||||
.info("Recieved a vote from '" + voteSite + "(" + IP + ")' by player '" + voteUsername + "'!");
|
||||
.info("Recieved a vote from service site '" + voteSite + "' by player '" + voteUsername + "'!");
|
||||
|
||||
plugin.debug("PlayerUsername: " + voteUsername);
|
||||
plugin.debug("VoteSite: " + voteSite);
|
||||
@@ -80,15 +82,27 @@ public class VotiferEvent implements Listener {
|
||||
String voteSiteName = plugin.getVoteSiteName(voteSite);
|
||||
|
||||
ArrayList<String> sites = configVoteSites.getVoteSitesNames();
|
||||
boolean createSite = false;
|
||||
if (sites != null) {
|
||||
if (!sites.contains(voteSiteName) && Config.getInstance().isAutoCreateVoteSites()) {
|
||||
plugin.getLogger()
|
||||
.warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
|
||||
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
|
||||
if (!sites.contains(voteSiteName)) {
|
||||
createSite = true;
|
||||
}
|
||||
} else if (Config.getInstance().isAutoCreateVoteSites()) {
|
||||
plugin.getLogger().warning("VoteSite " + voteSiteName + " doe not exist, generaterating one...");
|
||||
} else {
|
||||
createSite = true;
|
||||
}
|
||||
|
||||
if (Config.getInstance().isAutoCreateVoteSites() && createSite) {
|
||||
plugin.getLogger().warning("VoteSite with service site '" + voteSiteName
|
||||
+ "' does not exist, attempting to generaterate...");
|
||||
ConfigVoteSites.getInstance().generateVoteSite(voteSiteName);
|
||||
|
||||
ArrayList<String> services = new ArrayList<String>();
|
||||
for (VoteSite site : plugin.getVoteSites()) {
|
||||
services.add(site.getServiceSite());
|
||||
}
|
||||
plugin.getLogger()
|
||||
.info("Current known service sites: " + ArrayUtils.getInstance().makeStringList(services));
|
||||
|
||||
}
|
||||
|
||||
PlayerVoteEvent voteEvent = new PlayerVoteEvent(plugin.getVoteSite(voteSiteName), voteUsername,
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.Ben12345rocks.AdvancedCore.CommandAPI.CommandHandler;
|
||||
import com.Ben12345rocks.AdvancedCore.NMSManager.NMSManager;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.Reward;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.RewardHandler;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.RewardPlaceholderHandle;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInject;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectInt;
|
||||
import com.Ben12345rocks.AdvancedCore.Rewards.Injected.RewardInjectValidator;
|
||||
@@ -97,6 +98,9 @@ public class Main extends AdvancedCorePlugin {
|
||||
@Getter
|
||||
private LinkedHashMap<TopVoter, LinkedHashMap<User, Integer>> topVoter;
|
||||
|
||||
@Getter
|
||||
private LinkedHashMap<User, Integer> lastMonthTopVoter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Updater updater;
|
||||
@@ -601,6 +605,10 @@ public class Main extends AdvancedCorePlugin {
|
||||
num = num * 100;
|
||||
int num2 = (total + 100) / 100;
|
||||
num2 = num2 * 100;
|
||||
if (total < 1000) {
|
||||
num = 0;
|
||||
num2 = 1000;
|
||||
}
|
||||
return "" + num + "-" + num2;
|
||||
}
|
||||
});
|
||||
@@ -721,6 +729,15 @@ public class Main extends AdvancedCorePlugin {
|
||||
}
|
||||
});
|
||||
|
||||
lastMonthTopVoter = new LinkedHashMap<User, Integer>();
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
TopVoterHandler.getInstance().loadLastMonth();
|
||||
debug("Loaded last month top voters");
|
||||
}
|
||||
});
|
||||
topVoter = new LinkedHashMap<TopVoter, LinkedHashMap<User, Integer>>();
|
||||
for (TopVoter top : TopVoter.values()) {
|
||||
topVoter.put(top, new LinkedHashMap<User, Integer>());
|
||||
@@ -787,6 +804,7 @@ public class Main extends AdvancedCorePlugin {
|
||||
getMysql().alterColumnType("LastMonthTotal", "INT DEFAULT '0'");
|
||||
}
|
||||
|
||||
// Add rewards
|
||||
RewardHandler.getInstance().addInjectedReward(new RewardInjectInt("Points", 0) {
|
||||
|
||||
@Override
|
||||
@@ -813,6 +831,16 @@ public class Main extends AdvancedCorePlugin {
|
||||
}
|
||||
}));
|
||||
|
||||
for (final TopVoter top : TopVoter.values())
|
||||
RewardHandler.getInstance().addPlaceholder(new RewardPlaceholderHandle("Total_" + top.toString()) {
|
||||
|
||||
@Override
|
||||
public String getValue(Reward reward, com.Ben12345rocks.AdvancedCore.UserManager.User user) {
|
||||
User vUser = UserManager.getInstance().getVotingPluginUser(user);
|
||||
return "" + vUser.getTotal(top);
|
||||
}
|
||||
});
|
||||
|
||||
plugin.getLogger().info("Enabled VotingPlugin " + plugin.getDescription().getVersion());
|
||||
|
||||
boolean hasRewards = RewardHandler.getInstance().hasRewards(ConfigVoteSites.getInstance().getData(),
|
||||
@@ -871,15 +899,22 @@ public class Main extends AdvancedCorePlugin {
|
||||
plugin = this;
|
||||
|
||||
// disable plugin for older versions below 1.12
|
||||
|
||||
if (NMSManager.getInstance().isVersion("1.7", "1.8", "1.9", "1.10", "1.11", "1.12")) {
|
||||
plugin.getLogger().severe("Detected running " + NMSManager.getInstance().getVersion()
|
||||
+ ", this version is not supported on this build. Disabling");
|
||||
Bukkit.getPluginManager().disablePlugin(plugin);
|
||||
return;
|
||||
plugin.getLogger().severe("Detected running " + Bukkit.getVersion()
|
||||
+ ", this version is not supported on this build, read the plugin page. Disabling...");
|
||||
if (!Config.getInstance().isOverrideVersionDisable()) {
|
||||
Bukkit.getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
} else {
|
||||
plugin.getLogger().warning("Overriding version disable, beware of using this! This may cause issues!");
|
||||
}
|
||||
}
|
||||
|
||||
setupFiles();
|
||||
|
||||
loadVoteSites();
|
||||
|
||||
setJenkinsSite("ben12345rocks.com");
|
||||
updateAdvancedCoreHook();
|
||||
|
||||
@@ -955,15 +990,48 @@ public class Main extends AdvancedCorePlugin {
|
||||
|
||||
}
|
||||
|
||||
private void checkYMLError() {
|
||||
if (config.isFailedToRead() || configVoteSites.isFailedToRead()) {
|
||||
ymlError = true;
|
||||
} else if (!config.isFailedToRead() && !configVoteSites.isFailedToRead()) {
|
||||
ymlError = false;
|
||||
}
|
||||
|
||||
if (config.isFailedToRead()) {
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getLogger().severe("Failed to load Config.yml");
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
|
||||
if (configVoteSites.isFailedToRead()) {
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getLogger().severe("Failed to load VoteSites.yml");
|
||||
}
|
||||
|
||||
}, 10);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reload.
|
||||
*/
|
||||
@Override
|
||||
public void reload() {
|
||||
setUpdate(true);
|
||||
|
||||
config.reloadData();
|
||||
config.loadValues();
|
||||
|
||||
configVoteSites.reloadData();
|
||||
checkYMLError();
|
||||
|
||||
updateAdvancedCoreHook();
|
||||
plugin.loadVoteSites();
|
||||
reloadAdvancedCore();
|
||||
@@ -976,40 +1044,20 @@ public class Main extends AdvancedCorePlugin {
|
||||
update();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Getter
|
||||
private boolean ymlError = false;
|
||||
|
||||
private void setupFiles() {
|
||||
try {
|
||||
config = Config.getInstance();
|
||||
config.setup();
|
||||
config.loadValues();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
||||
config = Config.getInstance();
|
||||
config.setup();
|
||||
config.loadValues();
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getLogger().severe("Failed to load Config.yml");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
try {
|
||||
configVoteSites = ConfigVoteSites.getInstance();
|
||||
configVoteSites.setup();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
||||
configVoteSites = ConfigVoteSites.getInstance();
|
||||
configVoteSites.setup();
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getLogger().severe("Failed to load VoteSites.yml");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}, 10);
|
||||
}
|
||||
checkYMLError();
|
||||
|
||||
plugin.debug("Loaded Files");
|
||||
|
||||
|
||||
@@ -702,9 +702,6 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
|
||||
}
|
||||
|
||||
public void resetTotals(TopVoter topVoter) {
|
||||
if (topVoter.equals(TopVoter.Monthly)) {
|
||||
setLastMonthTotal(getTotal(TopVoter.Monthly));
|
||||
}
|
||||
setTotal(topVoter, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -100,6 +100,7 @@ public class TopVoterHandler implements Listener {
|
||||
public void onDateChanged(DateChangedEvent event) {
|
||||
plugin.setUpdate(true);
|
||||
plugin.update();
|
||||
loadLastMonth();
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@@ -118,7 +119,7 @@ public class TopVoterHandler implements Listener {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getStoreTopVotersDaily()) {
|
||||
plugin.debug("Storing TopVoters Daily");
|
||||
plugin.getLogger().info("Saving TopVoters Daily");
|
||||
storeTopVoters(TopVoter.Daily);
|
||||
}
|
||||
|
||||
@@ -161,13 +162,15 @@ public class TopVoterHandler implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
user.setLastMonthTotal(user.getTotal(TopVoter.Monthly));
|
||||
|
||||
if (user.getHighestMonthlyTotal() < user.getTotal(TopVoter.Monthly)) {
|
||||
user.setHighestMonthlyTotal(user.getTotal(TopVoter.Monthly));
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.getInstance().getStoreTopVotersMonthly()) {
|
||||
plugin.debug("Storing TopVoters Monthly");
|
||||
plugin.getLogger().info("Saving TopVoters Monthly");
|
||||
storeTopVoters(TopVoter.Monthly);
|
||||
}
|
||||
|
||||
@@ -192,6 +195,7 @@ public class TopVoterHandler implements Listener {
|
||||
lastTotal = user.getTotal(TopVoter.Monthly);
|
||||
}
|
||||
}
|
||||
|
||||
resetTotals(TopVoter.Monthly);
|
||||
|
||||
if (Config.getInstance().getResetMilestonesMonthly()) {
|
||||
@@ -230,7 +234,7 @@ public class TopVoterHandler implements Listener {
|
||||
}
|
||||
|
||||
if (Config.getInstance().getStoreTopVotersWeekly()) {
|
||||
plugin.debug("Storing TopVoters Weekly");
|
||||
plugin.getLogger().info("Saving TopVoters Weekly");
|
||||
storeTopVoters(TopVoter.Weekly);
|
||||
}
|
||||
|
||||
@@ -566,6 +570,26 @@ public class TopVoterHandler implements Listener {
|
||||
return ArrayUtils.getInstance().convert(msg);
|
||||
}
|
||||
|
||||
public void loadLastMonth() {
|
||||
if (Config.getInstance().isLastMonthGUI()) {
|
||||
plugin.getLastMonthTopVoter().clear();
|
||||
|
||||
LinkedHashMap<User, Integer> totals = new LinkedHashMap<User, Integer>();
|
||||
for (String uuid : UserManager.getInstance().getAllUUIDs()) {
|
||||
User user = UserManager.getInstance().getVotingPluginUser(new UUID(uuid));
|
||||
int total = user.getLastMonthTotal();
|
||||
if (total > 0) {
|
||||
totals.put(user, total);
|
||||
}
|
||||
}
|
||||
|
||||
plugin.getLastMonthTopVoter().putAll(sortByValues(totals, false));
|
||||
|
||||
plugin.debug("Loaded last month top voters");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public synchronized void updateTopVoters(ArrayList<User> users1) {
|
||||
ArrayList<User> users = new ArrayList<User>();
|
||||
ArrayList<String> blackList = getTopVoterBlackList();
|
||||
|
||||
@@ -79,7 +79,7 @@ public class PlaceHolders {
|
||||
}
|
||||
}
|
||||
|
||||
return identifier;
|
||||
return "Not a valid placeholder";
|
||||
}
|
||||
|
||||
public String getPlaceHolder(Player p, String identifier) {
|
||||
|
||||
Reference in new issue
Block a user