Compare commits

...
27 Commits
Author SHA1 Message Date
BenCodez 054c8d0361 Update version number to 6.16.3 2024-06-23 14:45:19 -04:00
BenCodez c78141357e Change click bypass to require shift on vote URL 2024-06-18 16:36:45 -04:00
BenCodez 5efd5646f2 Changes to vote url GUI 2024-06-17 16:16:23 -04:00
BenCodez e1c1d7b530 Add paper mapping setting 2024-06-16 17:00:54 -04:00
BenCodez f436b03584 Support left clicking on GUI to show all votesites even without perms 2024-06-16 12:23:34 -04:00
BenCodez e34f5f077f Add ability to hide votesites if no permission 2024-06-15 19:56:11 -04:00
BenCodez e1a059b766 Properly shutdown multi-proxy handling on proxy 2024-06-14 15:58:28 -04:00
BenCodez 9cb7158d84 Update to 1.21 2024-06-13 16:31:47 -04:00
BenCodez 35ce6cc68e Fix timer not shuting down on velocity 2024-06-13 16:27:24 -04:00
BenCodez a7832692b7 Add option UUIDLookup on proxy (default=true) 2024-06-04 20:01:04 -04:00
Ben 8fd7a30720 Merge pull request #1360 from BenCodez/dependabot/maven/VotingPlugin/org.apache.maven.plugins-maven-shade-plugin-3.6.0
Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 in /VotingPlugin
2024-06-03 15:43:25 -04:00
Ben fdd8f28a29 Merge pull request #1361 from BenCodez/dependabot/maven/VotingPlugin/org.sonatype.plugins-nexus-staging-maven-plugin-1.7.0
Bump org.sonatype.plugins:nexus-staging-maven-plugin from 1.6.13 to 1.7.0 in /VotingPlugin
2024-06-03 15:43:18 -04:00
Ben f9d41d49b2 Merge pull request #1362 from BenCodez/dependabot/maven/VotingPlugin/org.apache.maven.plugins-maven-javadoc-plugin-3.7.0
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 in /VotingPlugin
2024-06-03 15:43:07 -04:00
dependabot[bot] 456e43b37a Bump org.apache.maven.plugins:maven-javadoc-plugin in /VotingPlugin
Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.3 to 3.7.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.3...maven-javadoc-plugin-3.7.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 06:47:51 +00:00
dependabot[bot] 2cbf12cf1e Bump org.sonatype.plugins:nexus-staging-maven-plugin in /VotingPlugin
Bumps org.sonatype.plugins:nexus-staging-maven-plugin from 1.6.13 to 1.7.0.

---
updated-dependencies:
- dependency-name: org.sonatype.plugins:nexus-staging-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 06:45:32 +00:00
dependabot[bot] aeac53a5a7 Bump org.apache.maven.plugins:maven-shade-plugin in /VotingPlugin
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.3...maven-shade-plugin-3.6.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-shade-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 06:45:27 +00:00
BenCodez 2ea402b67c Check offline rewards on resume 2024-06-02 15:52:43 -04:00
BenCodez ba1b8cafcd Change vote party timing 2024-06-02 15:30:21 -04:00
BenCodez 5984ee15b5 Always update last vote party for each day 2024-06-02 14:06:19 -04:00
BenCodez a13b5ee7a2 Add new VoteTotal to rewards as a requirement 2024-06-01 19:44:24 -04:00
BenCodez 56e6a659fe Added ability to pause/resume rewards globally via commands 2024-06-01 19:17:51 -04:00
BenCodez 56f5611a96 Change reward placeholder name 2024-05-30 20:02:35 -04:00
BenCodez a828450846 Add placeholder to voteparty rewards for first vote party today 2024-05-30 20:01:44 -04:00
BenCodez 3f8495d0f7 Added option to only shows sites to vote on still on all urls 2024-05-30 19:56:51 -04:00
BenCodez bbb2df5f16 Added option to enable/disable internal papi expansion 2024-05-28 15:52:12 -04:00
Ben 40eb9b0afc Merge pull request #1358 from BenCodez/dependabot/maven/VotingPlugin/me.clip-placeholderapi-2.11.6
Bump me.clip:placeholderapi from 2.11.5 to 2.11.6 in /VotingPlugin
2024-05-27 15:58:06 -04:00
dependabot[bot] 545eb0cd69 Bump me.clip:placeholderapi from 2.11.5 to 2.11.6 in /VotingPlugin
Bumps me.clip:placeholderapi from 2.11.5 to 2.11.6.

---
updated-dependencies:
- dependency-name: me.clip:placeholderapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 06:44:10 +00:00
16 changed files with 306 additions and 119 deletions

No files matched your search

+7
View File
@@ -129,6 +129,9 @@ Format:
# If you want to want to use the feature below where the plugin will
# automaticly list the sites then set the message in the text above
AutoInputSites: true
# If true only show links on all urls that need to be voted on still
OnlyShowSitesToVote: false
# For each VoteSite
# make sure to set VoteURL in your VoteSites
# Requires above to be true
@@ -463,6 +466,9 @@ UseJavascriptPlaceholders: false
# 'false': 'User does not have enough points'
CustomPlaceholderReturns: {}
# Load votingplugin internal expansion
LoadInteralExpansion: true
###########################################
# Login options
###########################################
@@ -552,6 +558,7 @@ CreateBackups: true
AutoDownload: false
# If false plugin will use offline player UUIDs
# Keep enabled when mixing uuids (Premium and cracked)
OnlineMode: true
# Disable checking on world change
+4
View File
@@ -60,6 +60,10 @@ VoteSites:
# This basiclly disables offline voting if set to true, don't misinterpret this option
ForceOffline: false
# Requrie a permission to view site in GUI
# If empty or not set anyone can view (default)
#PermissionToView: 'Perm.here'
# VoteSite Material for some GUI's
# Removing this may result in an error, required on each site
DisplayItem:
+4
View File
@@ -148,8 +148,12 @@ VoteParty:
# Online mode for UUIDS
# Offline mode setups are not fully tested and are not supported currently
# If using mixed uuids (premium and cracked players leave this enabled and disable UUIDLookup below)
OnlineMode: true
# If true plugin will atempt to lookup uuids if none exist
UUIDLookup: true
##########################################
# PLUGINMESSAGING Settings
##########################################
+15 -9
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.bencodez</groupId>
<artifactId>${version.art}</artifactId>
<version>6.16.2</version>
<version>6.16.3</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -63,6 +63,11 @@
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<archive>
<manifestEntries>
<paperweight-mappings-namespace>mojang</paperweight-mappings-namespace>
</manifestEntries>
</archive>
<source>1.8</source>
<target>1.8</target>
<finalName>${project.name}</finalName>
@@ -90,7 +95,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.3</version>
<version>3.6.0</version>
<configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<minimizeJar>true</minimizeJar>
@@ -186,7 +191,8 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${user.home}/Documents/Test Server/plugins</outputDirectory>
<outputDirectory>${user.home}/Documents/Test
Server/plugins</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
@@ -237,7 +243,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.6-R0.1-SNAPSHOT</version>
<version>1.21-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -279,7 +285,7 @@
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.5</version>
<version>2.11.6</version>
<scope>provided</scope>
</dependency>
</dependencies>
@@ -384,7 +390,7 @@
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<version>1.7.0</version>
<executions>
<execution>
<id>default-deploy</id>
@@ -431,7 +437,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<version>3.7.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
@@ -483,7 +489,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<version>3.7.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
@@ -509,7 +515,7 @@
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<version>1.7.0</version>
<executions>
<execution>
<id>default-deploy</id>
@@ -46,12 +46,15 @@ import com.bencodez.advancedcore.api.misc.MiscUtils;
import com.bencodez.advancedcore.api.rewards.DirectlyDefinedReward;
import com.bencodez.advancedcore.api.rewards.Reward;
import com.bencodez.advancedcore.api.rewards.RewardEditData;
import com.bencodez.advancedcore.api.rewards.RewardOptions;
import com.bencodez.advancedcore.api.rewards.RewardPlaceholderHandle;
import com.bencodez.advancedcore.api.rewards.injected.RewardInject;
import com.bencodez.advancedcore.api.rewards.injected.RewardInjectConfigurationSection;
import com.bencodez.advancedcore.api.rewards.injected.RewardInjectInt;
import com.bencodez.advancedcore.api.rewards.injected.RewardInjectValidator;
import com.bencodez.advancedcore.api.rewards.injectedrequirement.RequirementInjectConfigurationSection;
import com.bencodez.advancedcore.api.skull.SkullHandler;
import com.bencodez.advancedcore.api.user.AdvancedCoreUser;
import com.bencodez.advancedcore.api.user.userstorage.Column;
import com.bencodez.advancedcore.api.yml.YMLConfig;
import com.bencodez.advancedcore.logger.Logger;
@@ -1059,8 +1062,10 @@ public class VotingPluginMain extends AdvancedCorePlugin {
}
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new VotingPluginExpansion(this).register();
getLogger().info("Loading PlaceholderAPI expansion");
if (getConfigFile().isLoadInteralExpansion()) {
new VotingPluginExpansion(this).register();
getLogger().info("Loading PlaceholderAPI expansion");
}
}
registerCommands();
@@ -1178,8 +1183,7 @@ public class VotingPluginMain extends AdvancedCorePlugin {
ConfigurationSection section, HashMap<String, String> placeholders) {
if (section.getBoolean("Enabled")) {
user.sendBossBar(
PlaceholderUtils.replacePlaceHolder(section.getString("Message", ""),
placeholders),
PlaceholderUtils.replacePlaceHolder(section.getString("Message", ""), placeholders),
section.getString("Color", "BLUE"), section.getString("Style", "SOLID"),
(double) getVotingPluginUserManager().getVotingPluginUser(user).getSitesVotedOn()
/ plugin.getVoteSites().size(),
@@ -1189,6 +1193,69 @@ public class VotingPluginMain extends AdvancedCorePlugin {
}
});
getRewardHandler().addInjectedRequirements(new RequirementInjectConfigurationSection("VoteTotal") {
@Override
public boolean onRequirementsRequested(Reward reward, AdvancedCoreUser acUser, ConfigurationSection section,
RewardOptions rewardOptions) {
boolean atleast = section.getBoolean("AtleastMode", false);
VotingPluginUser user = plugin.getVotingPluginUserManager().getVotingPluginUser(acUser);
for (TopVoter top : TopVoter.values()) {
int required = section.getInt(top.toString(), -1);
if (required >= 0) {
int total = user.getTotal(top);
if (atleast) {
if (total < required) {
debug("Failed requirement " + top.toString() + " " + total + "/" + required);
return false;
}
} else {
if (total != required) {
debug("Failed requirement " + top.toString() + " " + total + "!=" + required);
return false;
}
}
}
}
int milestoneCountRequired = section.getInt("MilestoneCount", -1);
if (milestoneCountRequired >= 0) {
int milestoneCount = user.getMilestoneCount();
if (atleast) {
if (milestoneCount < milestoneCountRequired) {
debug("Failed requirement milestonecount " + milestoneCount + "/" + milestoneCountRequired);
return false;
}
} else {
if (milestoneCount != milestoneCountRequired) {
debug("Failed requirement milestonecount " + milestoneCount + "!="
+ milestoneCountRequired);
return false;
}
}
}
int pointsRequired = section.getInt("Points", -1);
if (pointsRequired >= 0) {
int points = user.getPoints();
if (atleast) {
if (points < pointsRequired) {
debug("Failed requirement points " + points + "/" + pointsRequired);
return false;
}
} else {
if (points != pointsRequired) {
debug("Failed requirement points " + points + "!=" + pointsRequired);
return false;
}
}
}
return true;
}
});
for (final TopVoter top : TopVoter.values()) {
getRewardHandler().addPlaceholder(new RewardPlaceholderHandle("Total_" + top.toString()) {
@@ -64,6 +64,10 @@ public class Config {
public boolean getOnlineMode() {
return getData().getBoolean("OnlineMode", true);
}
public boolean getUUIDLookup() {
return getData().getBoolean("UUIDLookup", true);
}
public boolean getGlobalDataEnabled() {
return getData().getBoolean("GlobalData.Enabled", false);
@@ -553,6 +553,9 @@ public class VotingPluginBungee extends Plugin implements Listener {
if (mysql != null) {
mysql.shutdown();
}
if (multiProxyHandler != null) {
multiProxyHandler.close();
}
getLogger().info("VotingPlugin disabled");
enabled = false;
}
@@ -1257,8 +1260,7 @@ public class VotingPluginBungee extends Plugin implements Listener {
ArrayList<String> list = new ArrayList<String>();
list.add(channel);
list.addAll(ArrayUtils.convert(messageData));
redisHandler.sendMessage(getConfig().getRedisPrefix() + "VotingPlugin_" + server,
ArrayUtils.convert(list));
redisHandler.sendMessage(getConfig().getRedisPrefix() + "VotingPlugin_" + server, ArrayUtils.convert(list));
}
public void sendPluginMessageServer(String server, String channel, String... messageData) {
@@ -1374,22 +1376,27 @@ public class VotingPluginBungee extends Plugin implements Listener {
return;
}
if (config.getAllowUnJoined()) {
debug("Fetching UUID online, since allowunjoined is enabled");
UUID u = null;
try {
if (config.getOnlineMode()) {
u = fetchUUID(player);
if (config.getUUIDLookup()) {
debug("Fetching UUID online, since allowunjoined is enabled");
UUID u = null;
try {
if (config.getOnlineMode()) {
u = fetchUUID(player);
}
} catch (Exception e) {
if (getConfig().getDebug()) {
e.printStackTrace();
}
}
} catch (Exception e) {
if (getConfig().getDebug()) {
e.printStackTrace();
if (u == null) {
debug("Failed to get uuid for " + player);
return;
}
}
if (u == null) {
debug("Failed to get uuid for " + player);
uuid = u.toString();
} else {
getLogger().info("Failed to get uuid for " + player);
return;
}
uuid = u.toString();
} else {
getLogger().info("Ignoring vote from " + player + " since player hasn't joined before");
return;
@@ -36,6 +36,10 @@ public class Config extends VelocityYMLFile {
public boolean getOnlineMode() {
return getBoolean(getNode("OnlineMode"), true);
}
public boolean getUUIDLookup() {
return getBoolean(getNode("UUIDLookup"), true);
}
public boolean getGlobalDataEnabled() {
return getBoolean(getNode("GlobalData", "Enabled"), false);
@@ -593,7 +593,11 @@ public class VotingPluginVelocity {
if (mysql != null) {
mysql.shutDown();
}
if (multiProxyHandler != null) {
multiProxyHandler.close();
}
timer.shutdownNow();
bungeeTimeChecker.getTimer().shutdownNow();
enabled = false;
logger.info("VotingPlugin disabled");
}
@@ -1429,26 +1433,31 @@ public class VotingPluginVelocity {
if (uuid.isEmpty()) {
if (config.getAllowUnJoined()) {
if (player.startsWith(config.getBedrockPlayerPrefix())) {
logger.info("Ignoring vote since unable to get UUID of bedrock player");
if (config.getUUIDLookup()) {
if (player.startsWith(config.getBedrockPlayerPrefix())) {
logger.info("Ignoring vote since unable to get UUID of bedrock player");
return;
}
debug("Fetching UUID online, since allowunjoined is enabled");
UUID u = null;
try {
if (config.getOnlineMode()) {
u = fetchUUID(player);
}
} catch (Exception e) {
if (getConfig().getDebug()) {
e.printStackTrace();
}
}
if (u == null) {
debug("Failed to get uuid for " + player);
return;
}
uuid = u.toString();
} else {
logger.info("Failed to get uuid for " + player);
return;
}
debug("Fetching UUID online, since allowunjoined is enabled");
UUID u = null;
try {
if (config.getOnlineMode()) {
u = fetchUUID(player);
}
} catch (Exception e) {
if (getConfig().getDebug()) {
e.printStackTrace();
}
}
if (u == null) {
debug("Failed to get uuid for " + player);
return;
}
uuid = u.toString();
} else {
logger.info("Ignoring vote from " + player + " since player hasn't joined before");
return;
@@ -327,6 +327,43 @@ public class CommandLoader {
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(plugin, new String[] { "PauseRewards" },
"VotingPlugin.Commands.AdminVote.PauseRewards|" + adminPerm, "Pause rewards globally") {
@Override
public void execute(CommandSender sender, String[] args) {
if (!plugin.getOptions().isPauseRewards()) {
plugin.getOptions().setPauseRewards(true);
sendMessage(sender,
"&cRewards paused, note server restart will reset pause, resume with /av resumerewards");
} else {
sendMessage(sender, "&cRewards already paused, use /av resumerewards to resume");
}
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(plugin, new String[] { "ResumeRewards" },
"VotingPlugin.Commands.AdminVote.ResumeRewards|" + adminPerm, "Resume rewards globally") {
@Override
public void execute(CommandSender sender, String[] args) {
if (plugin.getOptions().isPauseRewards()) {
plugin.getOptions().setPauseRewards(false);
for (Player p : Bukkit.getOnlinePlayers()) {
VotingPluginUser user = plugin.getVotingPluginUserManager().getVotingPluginUser(p);
user.offVote();
user.checkOfflineRewards();
}
plugin.setUpdate(true);
sendMessage(sender, "&aRewards resumed");
} else {
sendMessage(sender, "&aRewards already resumed");
}
}
});
plugin.getAdminVoteCommand().add(new CommandHandler(plugin, new String[] { "ResetMilestoneCount" },
"VotingPlugin.Commands.AdminVote.ResetMilestoneCount|" + adminPerm, "Resets milestone count to 0") {
@@ -2645,10 +2682,10 @@ public class CommandLoader {
placeholders.put("touser", "" + user.getPlayerName());
placeholders.put("fromuser", "" + cPlayer.getPlayerName());
sendMessage(sender,
PlaceholderUtils
.replacePlaceHolder(plugin.getConfigFile()
PlaceholderUtils.replacePlaceHolder(
plugin.getConfigFile()
.getFormatCommandsVoteGivePointsTransferFrom(),
placeholders));
placeholders));
user.sendMessage(PlaceholderUtils.replacePlaceHolder(
plugin.getConfigFile().getFormatCommandsVoteGivePointsTransferTo(),
placeholders));
@@ -7,6 +7,7 @@ import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import com.bencodez.advancedcore.api.bookgui.BookWrapper;
import com.bencodez.advancedcore.api.bookgui.Layout;
@@ -50,7 +51,11 @@ public class VoteURL extends GUIHandler {
}
@Override
public ArrayList<String> getChat(CommandSender arg0) {
public ArrayList<String> getChat(CommandSender sender) {
return getChat(sender, false);
}
public ArrayList<String> getChat(CommandSender sender, boolean bypassCanVote) {
ArrayList<String> sites = new ArrayList<String>();
List<String> title = plugin.getConfigFile().getFormatCommandsVoteText();
@@ -61,16 +66,25 @@ public class VoteURL extends GUIHandler {
int counter = 0;
for (VoteSite voteSite : plugin.getVoteSitesEnabled()) {
if (!voteSite.isHidden()) {
counter++;
String voteURL = voteSite.getVoteURL(json);
MessageBuilder message = new MessageBuilder(plugin.getConfigFile().getFormatCommandsVoteURLS());
message.replacePlaceholder("num", Integer.toString(counter)).replacePlaceholder("url", voteURL)
.replacePlaceholder("SiteName", voteSite.getDisplayName());
if (user != null && user.getPlayerName() != null) {
message.replacePlaceholder("player", "" + user.getPlayerName()).replacePlaceholder("Next",
"" + user.voteCommandNextInfo(voteSite));
if (voteSite.getPermissionToView().isEmpty()
|| sender.hasPermission(voteSite.getPermissionToView())) {
if (!plugin.getConfigFile().isFormatCommandsVoteOnlyShowSitesToVote()
|| user.canVoteSite(voteSite) || bypassCanVote) {
counter++;
String voteURL = voteSite.getVoteURL(json);
MessageBuilder message = new MessageBuilder(
plugin.getConfigFile().getFormatCommandsVoteURLS());
message.replacePlaceholder("num", Integer.toString(counter))
.replacePlaceholder("url", voteURL)
.replacePlaceholder("SiteName", voteSite.getDisplayName());
if (user != null && user.getPlayerName() != null) {
message.replacePlaceholder("player", "" + user.getPlayerName())
.replacePlaceholder("Next", "" + user.voteCommandNextInfo(voteSite));
}
sites.add(message.colorize().getText());
}
}
sites.add(message.colorize().getText());
}
}
}
@@ -141,20 +155,25 @@ public class VoteURL extends GUIHandler {
}
int i = 1;
for (VoteSite site : plugin.getVoteSitesEnabled()) {
Layout layout = new Layout(plugin.getGui().getBookVoteURLBookGUILayout()).addPlaceholder("sitename",
site.getDisplayName());
String text = plugin.getGui().getBookVoteURLBookGUIAlreadyVotedText();
ChatColor color = ChatColor.valueOf(plugin.getGui().getBookVoteURLBookGUIAlreadyVotedColor());
if (user.canVoteSite(site)) {
color = ChatColor.valueOf(plugin.getGui().getBookVoteURLBookGUICanVoteColor());
text = plugin.getGui().getBookVoteURLBookGUICanVoteText();
if (!site.isHidden()) {
if (site.getPermissionToView().isEmpty() || player.hasPermission(site.getPermissionToView())) {
Layout layout = new Layout(plugin.getGui().getBookVoteURLBookGUILayout()).addPlaceholder("sitename",
site.getDisplayName());
String text = plugin.getGui().getBookVoteURLBookGUIAlreadyVotedText();
ChatColor color = ChatColor.valueOf(plugin.getGui().getBookVoteURLBookGUIAlreadyVotedColor());
if (user.canVoteSite(site)) {
color = ChatColor.valueOf(plugin.getGui().getBookVoteURLBookGUICanVoteColor());
text = plugin.getGui().getBookVoteURLBookGUICanVoteText();
}
String url = PlaceholderUtils.replacePlaceHolder(PlaceholderUtils.replacePlaceHolder(
site.getVoteURLJsonStrip(), "player", user.getPlayerName()), "num", "" + i);
layout.replaceTextComponent("[UrlText]",
BookUtil.TextBuilder.of(text).color(color).onClick(BookUtil.ClickAction.openUrl(url))
.onHover(BookUtil.HoverAction.showText(url)).build());
book.addLayout(layout);
i++;
}
}
String url = PlaceholderUtils.replacePlaceHolder(PlaceholderUtils
.replacePlaceHolder(site.getVoteURLJsonStrip(), "player", user.getPlayerName()), "num", "" + i);
layout.replaceTextComponent("[UrlText]", BookUtil.TextBuilder.of(text).color(color)
.onClick(BookUtil.ClickAction.openUrl(url)).onHover(BookUtil.HoverAction.showText(url)).build());
book.addLayout(layout);
i++;
}
book.open(player);
@@ -178,7 +197,12 @@ public class VoteURL extends GUIHandler {
public void onClick(ClickEvent event) {
VotingPluginUser user = plugin.getVotingPluginUserManager().getVotingPluginUser(event.getPlayer());
json = true;
user.sendMessage(getChat(player));
if (event.getClick().equals(ClickType.SHIFT_LEFT)
|| event.getClick().equals(ClickType.SHIFT_RIGHT)) {
user.sendMessage(getChat(player, true));
} else {
user.sendMessage(getChat(player, false));
}
}
@Override
@@ -191,42 +215,46 @@ public class VoteURL extends GUIHandler {
int startSlot = plugin.getGui().getChestVoteURLAllUrlsButtonStartSlot();
for (final VoteSite voteSite : plugin.getVoteSitesEnabled()) {
if (!voteSite.isHidden()) {
ItemBuilder builder = getItemVoteSite(voteSite);
if (startSlot >= 0) {
builder.setSlot(startSlot);
startSlot++;
}
if (voteSite.getPermissionToView().isEmpty() || player.hasPermission(voteSite.getPermissionToView())) {
ItemBuilder builder = getItemVoteSite(voteSite);
if (startSlot >= 0) {
builder.setSlot(startSlot);
startSlot++;
}
inv.addButton(new UpdatingBInventoryButton(plugin, builder, 5000, 5000) {
inv.addButton(new UpdatingBInventoryButton(plugin, builder, 5000, 5000) {
@Override
public void onClick(ClickEvent event) {
Player player = event.getPlayer();
if (player != null) {
VotingPluginUser user = plugin.getVotingPluginUserManager().getVotingPluginUser(player);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("voteurl", voteSite.getVoteURL());
placeholders.put("sitename", voteSite.getDisplayName());
placeholders.put("player", player.getName());
placeholders.put("servicesite", voteSite.getServiceSite());
placeholders.put("VoteDelay", "" + voteSite.getVoteDelay());
placeholders.put("VoteHour", "" + voteSite.getVoteDelayDailyHour());
user.sendMessage(plugin.getGui().getChestVoteURLURLText(), placeholders);
@Override
public void onClick(ClickEvent event) {
Player player = event.getPlayer();
if (player != null) {
VotingPluginUser user = plugin.getVotingPluginUserManager().getVotingPluginUser(player);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("voteurl", voteSite.getVoteURL());
placeholders.put("sitename", voteSite.getDisplayName());
placeholders.put("player", player.getName());
placeholders.put("servicesite", voteSite.getServiceSite());
placeholders.put("VoteDelay", "" + voteSite.getVoteDelay());
placeholders.put("VoteHour", "" + voteSite.getVoteDelayDailyHour());
user.sendMessage(plugin.getGui().getChestVoteURLURLText(), placeholders);
}
}
}
@Override
public ItemBuilder onUpdate(Player player) {
return getItemVoteSite(voteSite);
}
@Override
public ItemBuilder onUpdate(Player player) {
return getItemVoteSite(voteSite);
}
});
});
}
}
}
for (final String str : plugin.getGui().getChestVoteURLExtraItems()) {
for (
final String str : plugin.getGui().getChestVoteURLExtraItems()) {
inv.addButton(new BInventoryButton(new ItemBuilder(plugin.getGui().getChestVoteURLExtraItemsItem(str))) {
@Override
@@ -39,6 +39,10 @@ public class Config extends YMLFile {
@Getter
private boolean addTotalsOffline = true;
@ConfigDataBoolean(path = "LoadInteralExpansion")
@Getter
private boolean loadInteralExpansion = true;
@ConfigDataBoolean(path = "PerSiteCoolDownEvents")
@Getter
private boolean perSiteCoolDownEvents = false;
@@ -381,6 +385,10 @@ public class Config extends YMLFile {
@Getter
private boolean formatCommandsVoteAutoInputSites = true;
@ConfigDataBoolean(path = "Format.Commands.Vote.OnlyShowSitesToVote")
@Getter
private boolean formatCommandsVoteOnlyShowSitesToVote = false;
@ConfigDataListString(path = "Format.Commands.Vote.Best.Lines")
@Getter
private ArrayList<String> formatCommandsVoteBestLines = new ArrayList<String>();
@@ -103,8 +103,8 @@ public class ConfigVoteSites extends YMLFile {
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("VotingPlugin.Admin.GenerateServiceSite") || p.isOp()) {
p.sendMessage(MessageAPI.colorize("&cGenerating votesite for service site "
+ siteName + ", please check console for details"));
p.sendMessage(MessageAPI.colorize("&cGenerating votesite for service site " + siteName
+ ", please check console for details"));
}
}
}
@@ -298,6 +298,10 @@ public class ConfigVoteSites extends YMLFile {
return siteNames;
}
public String getPermissionToView(String siteName) {
return getData(siteName).getString("PermissionToView", "");
}
/**
* Gets the vote URL.
*
@@ -90,8 +90,7 @@ public class PlayerVoteListener implements Listener {
for (VoteSite site : plugin.getVoteSites()) {
services.add(site.getServiceSite());
}
plugin.getLogger()
.warning("Currently set service sites: " + ArrayUtils.makeStringList(services));
plugin.getLogger().warning("Currently set service sites: " + ArrayUtils.makeStringList(services));
}
return;
}
@@ -135,9 +134,6 @@ public class PlayerVoteListener implements Listener {
user.updateName(true);
// vote party
plugin.getVoteParty().vote(user, event.isRealVote(), event.isForceBungee());
if (event.isBroadcast() && !plugin.getBungeeSettings().isDisableBroadcast()) {
// broadcast vote if enabled in config
if (plugin.getConfigFile().isBroadcastVotesEnabled()
@@ -232,6 +228,9 @@ public class PlayerVoteListener implements Listener {
}
}
// vote party
plugin.getVoteParty().vote(user, event.isRealVote(), event.isForceBungee());
// other rewards
plugin.getSpecialRewards().checkAllSites(user, event.isForceBungee());
plugin.getSpecialRewards().checkAlmostAllSites(user, event.isForceBungee());
@@ -82,6 +82,10 @@ public class VoteSite {
@Setter
private String voteURL;
@Getter
@Setter
private String permissionToView;
@Getter
@Setter
private boolean waitUntilVoteDelay;
@@ -174,8 +178,7 @@ public class VoteSite {
}
public String getVoteURL(boolean json) {
if (!plugin.getConfigFile().isFormatCommandsVoteForceLinks() || !json
|| MessageAPI.containsJson(voteURL)) {
if (!plugin.getConfigFile().isFormatCommandsVoteForceLinks() || !json || MessageAPI.containsJson(voteURL)) {
return voteURL;
} else {
if (!voteURL.startsWith("http")) {
@@ -236,6 +239,7 @@ public class VoteSite {
voteDelayDailyHour = plugin.getConfigVoteSites().getVoteDelayDailyHour(key);
hidden = plugin.getConfigVoteSites().getVoteSiteHidden(key);
ignoreCanVote = plugin.getConfigVoteSites().getVoteSiteIgnoreCanVote(key);
permissionToView = plugin.getConfigVoteSites().getPermissionToView(key);
}
public boolean isVaidServiceSite() {
@@ -90,9 +90,7 @@ public class VoteParty implements Listener {
+ plugin.getSpecialRewardsConfig().getVotePartyIncreaseVotesRequired());
}
if (plugin.getSpecialRewardsConfig().isVotePartyOnlyOncePerDay()) {
plugin.getServerData().updateLastVoteParty();
}
plugin.getServerData().updateLastVoteParty();
if (plugin.getSpecialRewardsConfig().isVotePartyOnlyOncePerWeek()) {
plugin.getServerData().updateLastVotePartyWeek();
@@ -115,12 +113,10 @@ public class VoteParty implements Listener {
placeholders.put("votesrequired", "" + votesRequired);
placeholders.put("neededvotes", "" + neededVotes);
placeholders.put("votes", "" + votes);
msg = ArrayUtils.colorize(
PlaceholderUtils.replacePlaceHolder(msg, placeholders));
msg = ArrayUtils.colorize(PlaceholderUtils.replacePlaceHolder(msg, placeholders));
if (sender instanceof Player) {
Player p = (Player) sender;
sender.sendMessage(ArrayUtils.convert(
PlaceholderUtils.replacePlaceHolders(msg, p)));
sender.sendMessage(ArrayUtils.convert(PlaceholderUtils.replacePlaceHolders(msg, p)));
} else {
sender.sendMessage(ArrayUtils.convert(msg));
}
@@ -186,6 +182,7 @@ public class VoteParty implements Listener {
new RewardBuilder(plugin.getSpecialRewardsConfig().getData(),
plugin.getSpecialRewardsConfig().getVotePartyRewardsPath()).setOnline(online)
.withPlaceHolder("VotesRequired", "" + plugin.getSpecialRewardsConfig().getVotePartyVotesRequired())
.withPlaceHolder("FirstVotePartyToday", "" + !plugin.getServerData().isLastVotePartySameDay())
.setServer(useBungee).send(user);
}
@@ -223,10 +220,8 @@ public class VoteParty implements Listener {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
PlaceholderUtils.replacePlaceHolder(
list.get(ThreadLocalRandom.current().nextInt(list.size())), "randomonlineplayer",
player));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), PlaceholderUtils.replacePlaceHolder(
list.get(ThreadLocalRandom.current().nextInt(list.size())), "randomonlineplayer", player));
}
});