Compare commits

...
27 Commits
Author SHA1 Message Date
Ben12345rocks 6e9916fcbd Update version number 2019-03-18 19:16:47 -04:00
Ben12345rocks e81c3e27bc Little fix 2019-03-09 20:50:22 -05:00
Ben12345rocks f4613cdce4 Update version number 2019-03-09 20:43:32 -05:00
Ben12345rocks 799340ce06 Added config option 2019-03-09 20:42:21 -05:00
Ben12345rocks ea1a033f2e Changes 2019-03-08 17:09:39 -05:00
Ben12345rocks dabdd8ae8f Add basic preloading 2019-03-07 20:35:45 -05:00
Ben12345rocks 3e2b7eede9 Config update 2019-03-07 18:52:12 -05:00
Ben12345rocks f941deed79 remove hardcode of vote today, closes #512 2019-03-07 18:40:44 -05:00
Ben12345rocks f601b4a134 Add debug for when user in vanish 2019-02-27 19:04:37 -05:00
Ben12345rocks 26630725bd Prevent loading plugin on 1.11 or lower 2019-02-26 18:55:13 -05:00
Ben12345rocks 7faa90ce43 Merge branch 'master' of https://github.com/Ben12345rocks/VotingPlugin 2019-02-23 19:25:15 -05:00
Ben12345rocks 4c99b6b06e Remove VotingPlugin.Player from /av givepoints 2019-02-18 17:26:25 -05:00
Ben 2f2d8278a4 Merge pull request #506 from kakd/patch-1
Minor spelling fixes in commens
2019-02-18 16:58:06 -05:00
kakd e8be2974f9 Minor spelling fixes in commens 2019-02-18 16:52:21 -05:00
Ben12345rocks 4930feff94 Add softdepend 2019-02-17 12:17:56 -05:00
Ben12345rocks 132d871039 Update version number 2019-02-16 18:51:38 -05:00
Ben12345rocks aea6954dbb Bug fix 2019-02-16 18:47:40 -05:00
Ben12345rocks 1ee8819e4c Add ability to transfer vote points 2019-02-16 08:12:45 -05:00
Ben12345rocks 41e3b7fbf6 Bug fix 2019-02-12 16:39:46 -05:00
Ben12345rocks 4218d240bc Bug fix 2019-02-11 17:09:17 -05:00
Ben12345rocks 683d6fcc42 Test commit 2019-02-11 17:07:12 -05:00
Ben12345rocks c9f6ab2fa6 Add event for when points received 2019-02-09 20:33:42 -05:00
Ben12345rocks c99d3baa3c Bug fix 2019-02-09 10:31:59 -05:00
Ben12345rocks d0ade2feff Add MVdW placeholders 2019-02-08 20:32:51 -05:00
Ben12345rocks dcebe5a701 Add authme support 2019-02-08 20:16:21 -05:00
Ben12345rocks d33791fb28 Update version number 2019-02-03 12:13:26 -05:00
Ben12345rocks 8512b3ab4f Bug fix 2019-02-01 20:12:06 -05:00
14 changed files with 275 additions and 44 deletions

No files matched your search

Binary file not shown.
+30 -9
View File
@@ -42,12 +42,12 @@ AllowUnjoined: false
VoteReminding:
# Enable vote reminding
# This will remind player when he can vote on all sites
# Requires VoteDelay's to be setup properly
# Requires VoteDelays to be setup properly
# Use /vote next to see when you can be reminded
# Players require the perm "VotingPlugin.Login.RemindVotes" or "VotingPlugin.Player"
Enabled: true
# Wether or t to remind only once when the player can vote
# Whether or not to remind only once when the player can vote
# Does not apply to login reminds.
RemindOnlyOnce: true
@@ -91,7 +91,7 @@ VoteReminding:
# Set Message to '' (2 ') to disable message
Commands:
# Wether or not the following commands will open GUIs rather than display text
# Whether or not the following commands will open GUIs rather than display text
UseGUI:
Today: true
TopVoter: true
@@ -224,6 +224,9 @@ Format:
- '&3Highest Week Streak: &3&l%BestWeeklyStreak%'
- '&3Highest Month Streak: &3&l%BestMonthlyStreak%'
Today:
Line: '&6%player% : %VoteSite% : %Time%'
# PlaceHolders:
# %VotesRequired% = VotesRequired
# %NeededVotes% = Number of votes needed to reach VotesRequired
@@ -282,9 +285,16 @@ Format:
# User not exist message, from commands such as /vote next (player)
UserNotExist: '&cUser does not exist: %player%'
# Text for page buttons in inventories
PrevPage: '&aPrevious Page'
NextPage: '&aNext Page'
# Prev/Next page tems in GUIs
PrevItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aPrevious Page'
NextItem:
Material: 'BLACK_STAINED_GLASS_PANE'
Amount: 1
Name: '&aNext Page'
InvFull: '&cInventory full, dropping items on ground'
@@ -567,7 +577,7 @@ Shop:
Permission: ''
# Limit how many times you can buy this
#Limit: 3
# Rewards to run if player buys succesfully
# Rewards to run if player buys successfully
Rewards:
Items:
Diamond:
@@ -831,7 +841,7 @@ RequestAPI:
DefaultMethod: 'Anvil'
DisabledMethods: []
# Wether or not to log every vote to a file
# Whether or not to log every vote to a file
# Use this if you wanna track player votes
# Not recommended though
LogVotesToFile: false
@@ -887,6 +897,9 @@ AutoDownload: false
# Whether or not to disable update checks
DisableUpdateChecking: false
# Allow transfer of vote points
AllowVotePointTransfers: false
# Disable this on a hub server for example
# Still processes rewards for offline rewards (just won't give any)
ProcessRewards: true
@@ -898,6 +911,14 @@ DisableAdvancedTab: false
# Requires restart to take effect
LoadCommandAliases: true
# Wait until user is logged in with AuthMe
# Requires AuthMe
WaitUntilLoggedIn: true
# Preload skulls to improve performance
# If false, skulls will be cached as they are used
PreloadSkulls: true
# ---------------------------------------------------------
# Mysql cache options
# Clearing cache forces the plugin to pull from database
@@ -931,4 +952,4 @@ ClearCacheOnVote: false
# Disable checking on world change
# May improve performance
#DisableCheckOnWorldChange: false
#DisableCheckOnWorldChange: false
+4
View File
@@ -4,6 +4,7 @@ main: com.Ben12345rocks.VotingPlugin.Main
description: Highly Customizable Voting Listener!
website: https://www.spigotmc.org/resources/votingplugin.15358/
author: Ben12345rocks
softdepend: [MVdWPlaceholders]
api-version: 1.13
commands:
vote:
@@ -63,6 +64,9 @@ commands:
votechoices:
description: A command
alaises: vchoices
votegivepoints:
description: A command
alaises: vgivepoints
adminvotehelp:
description: Open adminvote help
aliases: avhelp
+8 -1
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.Ben12345rocks</groupId>
<artifactId>VotingPlugin</artifactId>
<version>5.17.4</version>
<version>5.18.2</version>
<packaging>jar</packaging>
<name>VotingPlugin</name>
<properties>
@@ -278,5 +278,12 @@
<scope>system</scope>
<systemPath>${project.basedir}/Jars/SuperbVote-0.5.3.jar</systemPath>
</dependency>
<dependency>
<groupId>be.maximvdw</groupId>
<artifactId>MVdWPlaceholderAPI</artifactId>
<version>LATEST</version>
<scope>system</scope>
<systemPath>${project.basedir}/Jars/MVdWPlaceholderAPI.jar</systemPath>
</dependency>
</dependencies>
</project>
@@ -1981,6 +1981,31 @@ public class CommandLoader {
}
});
if (Config.getInstance().isAllowVotePointTransfers()) {
plugin.getVoteCommand().add(new CommandHandler(new String[] { "GivePoints", "(player)", "(number)" },
"VotingPlugin.Commands.Vote.GivePoints", "Give someone points from your points", false) {
@Override
public void execute(CommandSender sender, String[] args) {
if (Config.getInstance().isAllowVotePointTransfers()) {
User cPlayer = UserManager.getInstance().getVotingPluginUser((Player) sender);
User user = UserManager.getInstance().getVotingPluginUser(args[1]);
int pointsToGive = Integer.parseInt(args[2]);
if (cPlayer.getPoints() >= pointsToGive) {
user.addPoints(pointsToGive);
cPlayer.removePoints(pointsToGive);
sendMessage(sender, "&c" + pointsToGive + " points given to " + user.getPlayerName());
user.sendMessage(
"&cYou received " + pointsToGive + " points from " + cPlayer.getPlayerName());
} else {
sendMessage(sender, "&cNot enough points");
}
}
}
});
}
plugin.getVoteCommand().add(
new CommandHandler(new String[] {}, "VotingPlugin.Commands.Vote|" + playerPerm, "See voting URLs") {
@@ -888,7 +888,13 @@ public class Commands {
for (VoteSite voteSite : plugin.getVoteToday().get(user).keySet()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Config.getInstance().getFormatTimeFormat());
String timeString = plugin.getVoteToday().get(user).get(voteSite).format(formatter);
msg.add("&6" + user.getPlayerName() + " : " + voteSite.getKey() + " : " + timeString);
HashMap<String, String> placeholders = new HashMap<String, String>();
placeholders.put("player", user.getPlayerName());
placeholders.put("votesite", voteSite.getKey());
placeholders.put("time", timeString);
msg.add(StringUtils.getInstance()
.replacePlaceHolder(Config.getInstance().getFormatCommandsVoteTodayLine(), placeholders));
// msg.add("&6" + user.getPlayerName() + " : " + voteSite.getKey() + " : " + timeString);
}
}
msg = ArrayUtils.getInstance().colorize(msg);
@@ -260,9 +260,17 @@ public class Config extends YMLFile {
@Getter
private String guiVoteTopPlayerItemMaterial = "PAPER";
@ConfigDataBoolean(path = "AllowVotePointTransfers")
@Getter
private boolean allowVotePointTransfers = false;
@Getter
private int formatPageSize = 10;
@ConfigDataString(path = "Format.Commands.Vote.Today.Line")
@Getter
private String formatCommandsVoteTodayLine = "&6%player% : %VoteSite% : %Time%";
/**
* Instantiates a new config.
*/
@@ -0,0 +1,60 @@
package com.Ben12345rocks.VotingPlugin.Events;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import com.Ben12345rocks.VotingPlugin.Objects.User;
import lombok.Getter;
import lombok.Setter;
// TODO: Auto-generated Javadoc
/**
* The Class PlayerVoteEvent.
*/
public class PlayerReceivePointsEvent extends Event {
/** The Constant handlers. */
private static final HandlerList handlers = new HandlerList();
/**
* Gets the handler list.
*
* @return the handler list
*/
public static HandlerList getHandlerList() {
return handlers;
}
@Getter
@Setter
private User player;
@Getter
@Setter
private int points;
@Getter
@Setter
private boolean cancelled;
@Getter
@Setter
private String serviceSite = "";
public PlayerReceivePointsEvent(User user, int points) {
super(true);
setPlayer(user);
setPoints(points);
}
/*
* (non-Javadoc)
* @see org.bukkit.event.Event#getHandlers()
*/
@Override
public HandlerList getHandlers() {
return handlers;
}
}
@@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
import com.Ben12345rocks.AdvancedCore.Listeners.AdvancedCoreLoginEvent;
import com.Ben12345rocks.AdvancedCore.UserManager.UserStorage;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Objects.User;
@@ -19,6 +19,7 @@ import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class PlayerJoinEvent implements Listener {
/** The plugin. */
@SuppressWarnings("unused")
private static Main plugin;
/**
@@ -38,31 +39,22 @@ public class PlayerJoinEvent implements Listener {
* the event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLogin(PlayerLoginEvent event) {
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
public void onPlayerLogin(AdvancedCoreLoginEvent event) {
if (event.getPlayer() == null || (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() == null)) {
return;
}
Player player = event.getPlayer();
@Override
public void run() {
if (event.getPlayer() == null
|| (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
&& AdvancedCoreHook.getInstance().getMysql() == null)) {
return;
}
Player player = event.getPlayer();
User user = UserManager.getInstance().getVotingPluginUser(player);
if (player != null) {
User user = UserManager.getInstance().getVotingPluginUser(player);
// run remind
user.loginMessage();
// run remind
user.loginMessage();
if (user.getData().hasData()) {
// give offline vote (if they voted offline)
user.offVote();
}
}
}
}, 20L);
if (user.getData().hasData()) {
// give offline vote (if they voted offline)
user.offVote();
}
}
}
@@ -68,6 +68,7 @@ import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoterHandler;
import com.Ben12345rocks.VotingPlugin.Updater.CheckUpdate;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.MVdWPlaceholders;
import com.Ben12345rocks.VotingPlugin.Util.PlaceHolders.PlaceHolders;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
import com.Ben12345rocks.VotingPlugin.VoteReminding.VoteReminding;
@@ -704,6 +705,14 @@ public class Main extends JavaPlugin {
public void onEnable() {
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;
}
setupFiles();
loadVoteSites();
AdvancedCoreHook.getInstance().setJenkinsSite("ben12345rocks.com");
@@ -756,6 +765,10 @@ public class Main extends JavaPlugin {
PlaceHolders.getInstance().load();
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
MVdWPlaceholders.getInstance().loadMVdWPlaceholders();
}
// set columns
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
AdvancedCoreHook.getInstance().getMysql().alterColumnType("TopVoterIgnore", "VARCHAR(5)");
@@ -836,11 +849,6 @@ public class Main extends JavaPlugin {
}
}, 30l);
}
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. Support is limited");
}
}
/**
@@ -11,6 +11,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.Ben12345rocks.AdvancedCore.AdvancedCoreHook;
@@ -23,6 +24,7 @@ import com.Ben12345rocks.AdvancedCore.Util.Misc.StringUtils;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.Config.Config;
import com.Ben12345rocks.VotingPlugin.Config.ConfigVoteSites;
import com.Ben12345rocks.VotingPlugin.Events.PlayerReceivePointsEvent;
import com.Ben12345rocks.VotingPlugin.SpecialRewards.SpecialRewards;
import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter;
import com.Ben12345rocks.VotingPlugin.VoteParty.VoteParty;
@@ -169,7 +171,14 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
* the value
*/
public void addPoints(int value) {
setPoints(getPoints() + value);
PlayerReceivePointsEvent event = new PlayerReceivePointsEvent(this, value);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
setPoints(getPoints() + event.getPoints());
}
/**
@@ -483,12 +492,14 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
public void giveDailyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getDailyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Daily").setOnline(isOnline())
.send(this);
}
public void giveMonthlyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getMonthlyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Monthly").setOnline(isOnline())
.send(this);
}
public void giveOfflineOtherRewards() {
@@ -543,7 +554,8 @@ public class User extends com.Ben12345rocks.AdvancedCore.UserManager.User {
public void giveWeeklyTopVoterAward(int place, String path) {
new RewardBuilder(Config.getInstance().getData(), Config.getInstance().getWeeklyAwardRewardsPath(path))
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").send(this);
.withPlaceHolder("place", "" + place).withPlaceHolder("topvoter", "Weekly").setOnline(isOnline())
.send(this);
}
/**
@@ -126,6 +126,8 @@ public class VoteSite {
}
MiscUtils.getInstance().broadcast(bc, players);
} else {
plugin.debug(user.getPlayerName() + " is vanished, not broadcasting");
}
}
@@ -0,0 +1,86 @@
package com.Ben12345rocks.VotingPlugin.Util.PlaceHolders;
import org.bukkit.Bukkit;
import com.Ben12345rocks.VotingPlugin.Main;
import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
import be.maximvdw.placeholderapi.PlaceholderAPI;
import be.maximvdw.placeholderapi.PlaceholderReplaceEvent;
import be.maximvdw.placeholderapi.PlaceholderReplacer;
// TODO: Auto-generated Javadoc
/**
* The Class PlaceHolders.
*/
public class MVdWPlaceholders {
/** The instance. */
static MVdWPlaceholders instance = new MVdWPlaceholders();
/** The plugin. */
static Main plugin = Main.plugin;
/**
* Gets the single instance of PlaceHolders.
*
* @return single instance of PlaceHolders
*/
public static MVdWPlaceholders getInstance() {
return instance;
}
/**
* Instantiates a new place holders.
*/
private MVdWPlaceholders() {
}
/**
* Instantiates a new place holders.
*
* @param plugin
* the plugin
*/
public MVdWPlaceholders(Main plugin) {
MVdWPlaceholders.plugin = plugin;
}
public void loadMVdWPlaceholders() {
if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
// The plugin is enabled
for (final PlaceHolder place : PlaceHolders.getInstance().getPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(),
UserManager.getInstance().getVotingPluginUser(event.getOfflinePlayer()),
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
for (final PlaceHolder place : PlaceHolders.getInstance().getNonPlayerPlaceholders()) {
String str = place.getIdentifier();
if (!str.endsWith("_")) {
PlaceholderAPI.registerPlaceholder(Main.plugin, "VotingPlugin_" + str, new PlaceholderReplacer() {
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
return place.placeholderRequest(event.getOfflinePlayer(), null,
event.getPlaceholder().substring("VotingPlugin_".length()));
}
});
}
}
}
}
}
@@ -7,7 +7,7 @@ import com.Ben12345rocks.VotingPlugin.UserManager.UserManager;
public class VotingPluginHooks {
private static VotingPluginHooks instance = new VotingPluginHooks();
public VotingPluginHooks getInstance() {
public static VotingPluginHooks getInstance() {
return instance;
}