Renames plugin, and adds README
This commit is contained in:
@ -1,16 +1,16 @@
|
||||
package net.knarcraft.timeismoney;
|
||||
package net.knarcraft.playerpayouts;
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import net.knarcraft.timeismoney.command.ReloadCommand;
|
||||
import net.knarcraft.timeismoney.command.SetGroupPaymentCommand;
|
||||
import net.knarcraft.timeismoney.command.SetGroupPaymentTabCompleter;
|
||||
import net.knarcraft.timeismoney.command.SetPlayerPaymentCommand;
|
||||
import net.knarcraft.timeismoney.command.SetPlayerPaymentTabCompleter;
|
||||
import net.knarcraft.timeismoney.config.Configuration;
|
||||
import net.knarcraft.timeismoney.listener.PlayerJoinListener;
|
||||
import net.knarcraft.timeismoney.manager.EconomyManager;
|
||||
import net.knarcraft.timeismoney.manager.PermissionManager;
|
||||
import net.knarcraft.timeismoney.manager.PlayerTracker;
|
||||
import net.knarcraft.playerpayouts.command.ReloadCommand;
|
||||
import net.knarcraft.playerpayouts.command.SetGroupPaymentCommand;
|
||||
import net.knarcraft.playerpayouts.command.SetGroupPaymentTabCompleter;
|
||||
import net.knarcraft.playerpayouts.command.SetPlayerPaymentCommand;
|
||||
import net.knarcraft.playerpayouts.command.SetPlayerPaymentTabCompleter;
|
||||
import net.knarcraft.playerpayouts.config.Configuration;
|
||||
import net.knarcraft.playerpayouts.listener.PlayerJoinListener;
|
||||
import net.knarcraft.playerpayouts.manager.EconomyManager;
|
||||
import net.knarcraft.playerpayouts.manager.PermissionManager;
|
||||
import net.knarcraft.playerpayouts.manager.PlayerTracker;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -32,15 +32,15 @@ import java.util.logging.Level;
|
||||
* Time is money's main class
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public final class TimeIsMoney extends JavaPlugin {
|
||||
public final class PlayerPayouts extends JavaPlugin {
|
||||
|
||||
private Configuration configuration;
|
||||
private IEssentials essentials = null;
|
||||
private static TimeIsMoney timeIsMoney;
|
||||
private static PlayerPayouts playerPayouts;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
timeIsMoney = this;
|
||||
playerPayouts = this;
|
||||
this.saveDefaultConfig();
|
||||
this.reloadConfig();
|
||||
this.saveConfig();
|
||||
@ -51,7 +51,9 @@ public final class TimeIsMoney extends JavaPlugin {
|
||||
|
||||
// Plugin startup logic
|
||||
if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
|
||||
setupVault();
|
||||
if (!setupVault()) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
this.getLogger().log(Level.SEVERE, "Could not find Vault. Plugin disabled.");
|
||||
this.setEnabled(false);
|
||||
@ -99,17 +101,17 @@ public final class TimeIsMoney extends JavaPlugin {
|
||||
*
|
||||
* @return <p>An instance of this plugin</p>
|
||||
*/
|
||||
public static TimeIsMoney getInstance() {
|
||||
return timeIsMoney;
|
||||
public static PlayerPayouts getInstance() {
|
||||
return playerPayouts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the configuration from disk
|
||||
*/
|
||||
public static void reload() {
|
||||
timeIsMoney.reloadConfig();
|
||||
timeIsMoney.saveConfig();
|
||||
timeIsMoney.configuration = new Configuration(timeIsMoney.getConfig());
|
||||
playerPayouts.reloadConfig();
|
||||
playerPayouts.saveConfig();
|
||||
playerPayouts.configuration = new Configuration(playerPayouts.getConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -180,7 +182,7 @@ public final class TimeIsMoney extends JavaPlugin {
|
||||
/**
|
||||
* Sets up Vault by getting plugins from their providers
|
||||
*/
|
||||
private void setupVault() {
|
||||
private boolean setupVault() {
|
||||
ServicesManager servicesManager = this.getServer().getServicesManager();
|
||||
RegisteredServiceProvider<Permission> permissionProvider = servicesManager.getRegistration(Permission.class);
|
||||
RegisteredServiceProvider<Economy> economyProvider = servicesManager.getRegistration(Economy.class);
|
||||
@ -188,14 +190,17 @@ public final class TimeIsMoney extends JavaPlugin {
|
||||
if (permissionProvider != null) {
|
||||
PermissionManager.initialize(permissionProvider.getProvider());
|
||||
} else {
|
||||
getLogger().log(Level.WARNING, "No Vault permission provider found. Permission rewards are unavailable.");
|
||||
getLogger().log(Level.WARNING, "No Vault permission provider found. Per-group payouts cannot be used!");
|
||||
}
|
||||
|
||||
if (economyProvider != null) {
|
||||
EconomyManager.initialize(economyProvider.getProvider());
|
||||
} else {
|
||||
getLogger().log(Level.WARNING, "No Vault economy provider found. Economy rewards are unavailable.");
|
||||
getLogger().log(Level.SEVERE, "No Vault economy provider found. PlayerPayouts disabled!");
|
||||
this.onDisable();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package net.knarcraft.timeismoney.command;
|
||||
package net.knarcraft.playerpayouts.command;
|
||||
|
||||
import net.knarcraft.timeismoney.TimeIsMoney;
|
||||
import net.knarcraft.playerpayouts.PlayerPayouts;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@ -18,7 +18,7 @@ public class ReloadCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
TimeIsMoney.reload();
|
||||
PlayerPayouts.reload();
|
||||
sender.sendMessage("Plugin reloaded!");
|
||||
return true;
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
package net.knarcraft.timeismoney.command;
|
||||
package net.knarcraft.playerpayouts.command;
|
||||
|
||||
import net.knarcraft.timeismoney.config.Configuration;
|
||||
import net.knarcraft.timeismoney.util.StringHelper;
|
||||
import net.knarcraft.playerpayouts.config.Configuration;
|
||||
import net.knarcraft.playerpayouts.manager.PermissionManager;
|
||||
import net.knarcraft.playerpayouts.util.StringHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -31,6 +32,12 @@ public class SetGroupPaymentCommand implements CommandExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!PermissionManager.isInitialized()) {
|
||||
commandSender.sendMessage("Vault permissions aren't available, and thus per-group payouts are " +
|
||||
"unavailable.");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
String group = arguments[0];
|
||||
if (StringHelper.isNonValue(arguments[1])) {
|
@ -1,7 +1,7 @@
|
||||
package net.knarcraft.timeismoney.command;
|
||||
package net.knarcraft.playerpayouts.command;
|
||||
|
||||
import net.knarcraft.timeismoney.manager.PermissionManager;
|
||||
import net.knarcraft.timeismoney.util.TabCompletionHelper;
|
||||
import net.knarcraft.playerpayouts.manager.PermissionManager;
|
||||
import net.knarcraft.playerpayouts.util.TabCompletionHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
@ -20,6 +20,10 @@ public class SetGroupPaymentTabCompleter implements TabCompleter {
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||
@NotNull String[] arguments) {
|
||||
if (!PermissionManager.isInitialized()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (arguments.length == 1) {
|
||||
// List permission groups
|
||||
return TabCompletionHelper.filterMatchingContains(List.of(PermissionManager.getPermissionGroups()),
|
@ -1,7 +1,7 @@
|
||||
package net.knarcraft.timeismoney.command;
|
||||
package net.knarcraft.playerpayouts.command;
|
||||
|
||||
import net.knarcraft.timeismoney.config.Configuration;
|
||||
import net.knarcraft.timeismoney.util.StringHelper;
|
||||
import net.knarcraft.playerpayouts.config.Configuration;
|
||||
import net.knarcraft.playerpayouts.util.StringHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
@ -1,6 +1,6 @@
|
||||
package net.knarcraft.timeismoney.command;
|
||||
package net.knarcraft.playerpayouts.command;
|
||||
|
||||
import net.knarcraft.timeismoney.util.TabCompletionHelper;
|
||||
import net.knarcraft.playerpayouts.util.TabCompletionHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
@ -1,7 +1,7 @@
|
||||
package net.knarcraft.timeismoney.config;
|
||||
package net.knarcraft.playerpayouts.config;
|
||||
|
||||
import net.knarcraft.timeismoney.TimeIsMoney;
|
||||
import net.knarcraft.timeismoney.manager.PermissionManager;
|
||||
import net.knarcraft.playerpayouts.PlayerPayouts;
|
||||
import net.knarcraft.playerpayouts.manager.PermissionManager;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -92,20 +92,35 @@ public class Configuration {
|
||||
return playerPayouts.get(player.getUniqueId());
|
||||
}
|
||||
|
||||
double maxPay = -1;
|
||||
double groupPayout = -1;
|
||||
if (PermissionManager.isInitialized()) {
|
||||
for (String group : PermissionManager.getPlayerGroups(player)) {
|
||||
if (groupPayouts.containsKey(group)) {
|
||||
maxPay = Math.max(maxPay, groupPayouts.get(group));
|
||||
groupPayout = getGroupPayout(player);
|
||||
}
|
||||
|
||||
if (groupPayout == -1) {
|
||||
return defaultPayout;
|
||||
} else {
|
||||
return groupPayout;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the max payout of the given player's permission groups
|
||||
*
|
||||
* @param player <p>The player to get the group payout for</p>
|
||||
* @return <p>The group payout, or -1 if no groups has a set payout</p>
|
||||
*/
|
||||
private double getGroupPayout(@NotNull Player player) {
|
||||
double maxPay = -1;
|
||||
for (String group : PermissionManager.getPlayerGroups(player)) {
|
||||
if (groupPayouts.containsKey(group)) {
|
||||
Double groupPayout = groupPayouts.get(group);
|
||||
if (groupPayout != null) {
|
||||
maxPay = Math.max(maxPay, groupPayout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (maxPay == -1) {
|
||||
return defaultPayout;
|
||||
} else {
|
||||
return maxPay;
|
||||
}
|
||||
return maxPay;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -209,7 +224,19 @@ public class Configuration {
|
||||
fileConfiguration.setComments(ConfigurationKey.GROUP_PAYOUTS.getPath(),
|
||||
List.of("Overrides for specific groups"));
|
||||
|
||||
TimeIsMoney.getInstance().saveConfig();
|
||||
PlayerPayouts.getInstance().saveConfig();
|
||||
|
||||
// Null values are necessary for updating removed keys, but should not appear otherwise
|
||||
for (Map.Entry<String, Double> entry : groupPayouts.entrySet()) {
|
||||
if (entry.getValue() == null) {
|
||||
groupPayouts.remove(entry.getKey());
|
||||
}
|
||||
}
|
||||
for (Map.Entry<UUID, Double> entry : playerPayouts.entrySet()) {
|
||||
if (entry.getValue() == null) {
|
||||
playerPayouts.remove(entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.config;
|
||||
package net.knarcraft.playerpayouts.config;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.knarcraft.timeismoney.listener;
|
||||
package net.knarcraft.playerpayouts.listener;
|
||||
|
||||
import net.knarcraft.timeismoney.manager.PlayerTracker;
|
||||
import net.knarcraft.playerpayouts.manager.PlayerTracker;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.manager;
|
||||
package net.knarcraft.playerpayouts.manager;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.bukkit.OfflinePlayer;
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.manager;
|
||||
package net.knarcraft.playerpayouts.manager;
|
||||
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import org.bukkit.entity.Player;
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.manager;
|
||||
package net.knarcraft.playerpayouts.manager;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.util;
|
||||
package net.knarcraft.playerpayouts.util;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.knarcraft.timeismoney.util;
|
||||
package net.knarcraft.playerpayouts.util;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -10,7 +10,7 @@ hoursUntilBonus: 100
|
||||
bonusMultiplier: 1
|
||||
# The percentage of their normal payout to pay AFK players
|
||||
afkPercentage: 0
|
||||
# Overrides for specific groups
|
||||
# Overrides for specific groups. Use /setgrouppayout
|
||||
groupPayouts: [ ]
|
||||
# Overrides for specific players
|
||||
# Overrides for specific players. Use /setplayerpayout
|
||||
playerPayouts: [ ]
|
@ -1,8 +1,8 @@
|
||||
name: "TimeIsMoney"
|
||||
name: "PlayerPayouts"
|
||||
version: '${project.version}'
|
||||
main: net.knarcraft.timeismoney.TimeIsMoney
|
||||
main: net.knarcraft.playerpayouts.PlayerPayouts
|
||||
api-version: '1.20'
|
||||
prefix: 'TimeIsMoney'
|
||||
prefix: 'PlayerPayouts'
|
||||
author: EpicKnarvik97
|
||||
depend:
|
||||
- Vault
|
||||
|
Reference in New Issue
Block a user