Skip to content
This repository was archived by the owner on Jun 29, 2023. It is now read-only.

Commit ed94222

Browse files
committed
Merged #359 and resolved conflicts
2 parents 7af5b43 + 77ab4a2 commit ed94222

39 files changed

Lines changed: 265 additions & 2154 deletions

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
allprojects { apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' group = 'be.isach' version = '2.5.0-RELEASE' compileJava.options.encoding = 'UTF-8' sourceCompatibility = 1.8 targetCompatibility = 1.8 configurations { shaded compile.extendsFrom shaded } afterEvaluate { jar { dependsOn configurations.shaded from configurations.shaded.collect { it.isDirectory() ? it : zipTree(it) } } }}boolean local = falseif (local) libsDirName = '/Users/sacha/Documents/Development/Java/UC_1_11/testserver/plugins'dependencies { subprojects.each { p -> shaded(p) { transitive false } }}subprojects { repositories { mavenLocal() mavenCentral() // Vault maven { url 'http://nexus.hc.to/content/repositories/pub_releases' } // Lib's Disguises maven { url 'http://repo.md-5.net/content/groups/public/' } maven { url 'https://repo.isach.be' } // BungeeCord maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } // PlaceholderAPI maven { url 'http://repo.extendedclip.com/content/repositories/placeholderapi/' } }}
1+
allprojects { apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' group = 'be.isach' version = '2.5.0' compileJava.options.encoding = 'UTF-8' sourceCompatibility = 1.8 targetCompatibility = 1.8 configurations { shaded compile.extendsFrom shaded } afterEvaluate { jar { dependsOn configurations.shaded from configurations.shaded.collect { it.isDirectory() ? it : zipTree(it) } } }}boolean local = falseif (local) libsDirName = '/Users/sacha/Documents/Development/Java/UC_1_11/testserver/plugins'dependencies { subprojects.each { p -> shaded(p) { transitive false } }}subprojects { repositories { mavenLocal() mavenCentral() // Vault maven { url 'http://nexus.hc.to/content/repositories/pub_releases' } // Lib's Disguises maven { url 'http://repo.md-5.net/content/groups/public/' } maven { url 'https://repo.isach.be' } // BungeeCord maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } // PlaceholderAPI maven { url 'http://repo.extendedclip.com/content/repositories/placeholderapi/' } // PlayerPoints maven { url 'https://repo.dakanilabs.com/repository/public/' } }}

core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ dependencies {
88
exclude group: 'org.bukkit'
99
}
1010
compile 'me.clip:placeholderapi:2.8.2'
11+
compile 'org.black_ixx:PlayerPoints:2.1.3'
1112
}
1213

1314
processResources {

core/src/main/java/be/isach/ultracosmetics/UltraCosmetics.java

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import be.isach.ultracosmetics.config.MessageManager;
55
import be.isach.ultracosmetics.config.SettingsManager;
66
import be.isach.ultracosmetics.config.TreasureManager;
7+
import be.isach.ultracosmetics.economy.EconomyHandler;
8+
import be.isach.ultracosmetics.economy.EconomyHook;
79
import be.isach.ultracosmetics.listeners.MainListener;
810
import be.isach.ultracosmetics.listeners.PlayerListener;
911
import be.isach.ultracosmetics.listeners.v1_9.PlayerSwapItemListener;
@@ -15,6 +17,7 @@
1517
import be.isach.ultracosmetics.placeholderapi.PlaceholderHook;
1618
import be.isach.ultracosmetics.player.UltraPlayer;
1719
import be.isach.ultracosmetics.player.UltraPlayerManager;
20+
import be.isach.ultracosmetics.economy.PlayerPointsHook;
1821
import be.isach.ultracosmetics.run.FallDamageManager;
1922
import be.isach.ultracosmetics.run.InvalidWorldChecker;
2023
import be.isach.ultracosmetics.run.MovingChecker;
@@ -46,7 +49,6 @@
4649
* @since 08-03-2015
4750
*/
4851
public class UltraCosmetics extends JavaPlugin {
49-
5052
/**
5153
* Manages sub commands.
5254
*/
@@ -62,11 +64,6 @@ public class UltraCosmetics extends JavaPlugin {
6264
*/
6365
private File file;
6466

65-
/**
66-
* Economy, used only if Vault is enabled.
67-
*/
68-
private Economy economy = null;
69-
7067
/**
7168
* Player Manager instance.
7269
*/
@@ -101,9 +98,9 @@ public class UltraCosmetics extends JavaPlugin {
10198
* Manages armor stands.
10299
*/
103100
private ArmorStandManager armorStandManager;
104-
105-
private boolean vaultLoaded = false;
106-
101+
102+
103+
private EconomyHandler economyHandler;
107104
/**
108105
* Called when plugin is enabled.
109106
*/
@@ -254,27 +251,11 @@ private void registerListeners() {
254251
}
255252

256253
/**
257-
* Sets Vault up.
254+
* Sets the economy up.
258255
*/
259256
private void setupEconomy() {
257+
economyHandler = new EconomyHandler(this, getConfig().getString("Economy"));
260258
UltraCosmeticsData.get().checkTreasureChests();
261-
if (!(UltraCosmeticsData.get().isAmmoEnabled()
262-
|| (SettingsManager.getConfig().getBoolean("Pets-Rename.Enabled") && SettingsManager.getConfig().getBoolean("Pets-Rename.Requires-Money.Enabled"))
263-
|| UltraCosmeticsData.get().areTreasureChestsEnabled())) {
264-
return;
265-
}
266-
267-
if (!Bukkit.getPluginManager().isPluginEnabled("Vault")) {
268-
return;
269-
}
270-
271-
RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
272-
if (economyProvider != null) {
273-
economy = economyProvider.getProvider();
274-
UltraCosmeticsData.get().setUsingVaultEconomy(true);
275-
}
276-
277-
vaultLoaded = true;
278259
}
279260

280261
private void setUpConfig() {
@@ -383,13 +364,6 @@ public SmartLogger getSmartLogger() {
383364
return smartLogger;
384365
}
385366

386-
/**
387-
* @return Vault Economy.
388-
*/
389-
public Economy getEconomy() {
390-
return economy;
391-
}
392-
393367
/**
394368
* @return The Update CheckerC.
395369
*/
@@ -422,10 +396,6 @@ public ArmorStandManager getArmorStandManager() {
422396
return armorStandManager;
423397
}
424398

425-
public boolean isVaultLoaded() {
426-
return vaultLoaded;
427-
}
428-
429399
public void openMainMenu(UltraPlayer ultraPlayer) {
430400
if (getConfig().getBoolean("Categories.Back-To-Main-Menu-Custom-Command.Enabled")) {
431401
String command = getConfig().getString("Categories.Back-To-Main-Menu-Custom-Command.Command").replace("/", "").replace("{player}", ultraPlayer.getBukkitPlayer().getName()).replace("{playeruuid}", ultraPlayer.getUuid().toString());
@@ -434,4 +404,8 @@ public void openMainMenu(UltraPlayer ultraPlayer) {
434404
getMenus().getMainMenu().open(ultraPlayer);
435405
}
436406
}
407+
408+
public EconomyHandler getEconomyHandler() {
409+
return economyHandler;
410+
}
437411
}

core/src/main/java/be/isach/ultracosmetics/UltraCosmeticsData.java

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,6 @@ public static UltraCosmeticsData get() {
5757
*/
5858
private boolean moneyTreasureLoot;
5959

60-
/**
61-
* If a Vault economy is being used.
62-
*/
63-
private boolean usingVaultEconomy;
64-
6560
/**
6661
* Determines if Gadget Cooldown should be shown in action bar.
6762
*/
@@ -116,13 +111,8 @@ void checkTreasureChests() {
116111
moneyTreasureLoot = SettingsManager.getConfig().getBoolean("TreasureChests.Loots.Money.Enabled");
117112
if (SettingsManager.getConfig().getBoolean("TreasureChests.Enabled")) {
118113
treasureChests = true;
119-
if (!Bukkit.getPluginManager().isPluginEnabled("Vault")
120-
&& (boolean) SettingsManager.getConfig().get("TreasureChests.Loots.Money.Enabled")) {
121-
ultraCosmetics.getSmartLogger().write("-------------------------");
122-
ultraCosmetics.getSmartLogger().write("Treasure Chests' Money Loot requires Vault!");
123-
ultraCosmetics.getSmartLogger().write("Money Loot is turned off!");
124-
ultraCosmetics.getSmartLogger().write("-------------------------");
125-
moneyTreasureLoot = false;
114+
if ((boolean) SettingsManager.getConfig().get("TreasureChests.Loots.Money.Enabled")) {
115+
moneyTreasureLoot = true;
126116
}
127117
}
128118
}
@@ -248,14 +238,6 @@ public void setServerVersion(ServerVersion serverVersion) {
248238
this.serverVersion = serverVersion;
249239
}
250240

251-
public void setUsingVaultEconomy(boolean usingVaultEconomy) {
252-
this.usingVaultEconomy = usingVaultEconomy;
253-
}
254-
255-
public boolean isUsingVaultEconomy() {
256-
return this.usingVaultEconomy;
257-
}
258-
259241
public final String getItemNoPickupString() {
260242
return this.itemNoPickupString;
261243
}

core/src/main/java/be/isach/ultracosmetics/cosmetics/gadgets/Gadget.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
import be.isach.ultracosmetics.util.SoundUtil;
1818
import be.isach.ultracosmetics.util.Sounds;
1919
import be.isach.ultracosmetics.util.TextUtil;
20+
import java.text.DecimalFormat;
21+
import java.text.DecimalFormatSymbols;
22+
import java.util.Locale;
23+
import java.util.UUID;
2024
import org.bukkit.Bukkit;
2125
import org.bukkit.ChatColor;
2226
import org.bukkit.Material;
@@ -38,11 +42,6 @@
3842
import org.bukkit.inventory.ItemStack;
3943
import org.bukkit.scheduler.BukkitRunnable;
4044

41-
import java.text.DecimalFormat;
42-
import java.text.DecimalFormatSymbols;
43-
import java.util.Locale;
44-
import java.util.UUID;
45-
4645
/**
4746
* Represents an instance of a Gadget summoned by a player.
4847
*
@@ -329,7 +328,7 @@ public void onInventoryClickAmmo(final InventoryClickEvent event) {
329328
if (displayName.equals(purchase)) {
330329
if (getUltraCosmetics().getPlayerManager().getUltraPlayer((Player) event.getWhoClicked())
331330
.getBalance() >= getPrice()) {
332-
getUltraCosmetics().getEconomy().withdrawPlayer((Player) event.getWhoClicked(), getPrice());
331+
getUltraCosmetics().getEconomyHandler().withdraw((Player) event.getWhoClicked(), getPrice());
333332
getUltraCosmetics().getPlayerManager().getUltraPlayer((Player) event.getWhoClicked())
334333
.addAmmo(getType().toString().toLowerCase(), getResultAmmoAmount());
335334
event.getWhoClicked().sendMessage(MessageManager.getMessage("Successful-Purchase"));
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package be.isach.ultracosmetics.economy;
2+
3+
import be.isach.ultracosmetics.UltraCosmetics;
4+
import org.bukkit.entity.Player;
5+
6+
/**
7+
* Handles the current economy being used.
8+
*
9+
* @author RadBuilder
10+
* @since 2.5
11+
*/
12+
public class EconomyHandler {
13+
private UltraCosmetics ultraCosmetics;
14+
private EconomyHook economyHook;
15+
private boolean usingEconomy;
16+
17+
public EconomyHandler(UltraCosmetics ultraCosmetics, String economy) {
18+
this.ultraCosmetics = ultraCosmetics;
19+
if (economy.equalsIgnoreCase("vault")) {
20+
economyHook = new VaultHook(ultraCosmetics);
21+
} else if (economy.equalsIgnoreCase("playerpoints")) {
22+
economyHook = new PlayerPointsHook(ultraCosmetics);
23+
} else {
24+
usingEconomy = false;
25+
}
26+
}
27+
28+
public void withdraw(Player player, int amount) {
29+
economyHook.withdraw(player, amount);
30+
}
31+
32+
public void deposit(Player player, int amount) {
33+
economyHook.deposit(player, amount);
34+
}
35+
36+
public double balance(Player player) {
37+
return economyHook.balance(player);
38+
}
39+
40+
public String getName() {
41+
return economyHook.getName();
42+
}
43+
44+
public boolean isUsingEconomy() {
45+
return usingEconomy && economyHook.economyEnabled();
46+
}
47+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package be.isach.ultracosmetics.economy;
2+
3+
import org.bukkit.entity.Player;
4+
5+
/**
6+
* Economy hook interface.
7+
*
8+
* @author RadBuilder
9+
* @since 2.5
10+
*/
11+
public interface EconomyHook {
12+
/**
13+
* Withdraws the specified amount of money from the specified player.
14+
*
15+
* @param player The player to withdraw money from.
16+
* @param amount The amount to withdraw from the player.
17+
*/
18+
void withdraw(Player player, int amount);
19+
20+
/**
21+
* Gives the specified amount of money to the specified player.
22+
*
23+
* @param player The player to give money to.
24+
* @param amount The amount to give to the player.
25+
*/
26+
void deposit(Player player, int amount);
27+
28+
/**
29+
* Gets the balance of the specified player.
30+
*
31+
* @param player The player to get the balance of.
32+
* @return The player's balance.
33+
*/
34+
double balance(Player player);
35+
36+
/**
37+
* Gets the name of the economy being used.
38+
*
39+
* @return The name of the economy being used.
40+
*/
41+
String getName();
42+
43+
/**
44+
* Gets if the economy is enabled and functioning.
45+
*
46+
* @return True if the economy is enabled and functioning, false otherwise.
47+
*/
48+
boolean economyEnabled();
49+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package be.isach.ultracosmetics.economy;
2+
3+
import be.isach.ultracosmetics.UltraCosmetics;
4+
import org.black_ixx.playerpoints.PlayerPoints;
5+
import org.bukkit.entity.Player;
6+
import org.bukkit.plugin.Plugin;
7+
8+
/**
9+
* PlayerPoints economy hook.
10+
*
11+
* @author RadBuilder
12+
* @since 2.5
13+
*/
14+
public class PlayerPointsHook implements EconomyHook {
15+
private UltraCosmetics ultraCosmetics;
16+
private PlayerPoints playerPoints;
17+
private boolean economyEnabled;
18+
19+
public PlayerPointsHook(UltraCosmetics ultraCosmetics) {
20+
this.ultraCosmetics = ultraCosmetics;
21+
if (hookPlayerPoints()) {
22+
ultraCosmetics.getSmartLogger().write("");
23+
ultraCosmetics.getSmartLogger().write("Hooked into PlayerPoints for economy.");
24+
ultraCosmetics.getSmartLogger().write("");
25+
economyEnabled = true;
26+
} else {
27+
ultraCosmetics.getSmartLogger().write("");
28+
ultraCosmetics.getSmartLogger().write("Something happened while hooking into PlayerPoints for economy.");
29+
ultraCosmetics.getSmartLogger().write("");
30+
economyEnabled = false;
31+
}
32+
}
33+
34+
/**
35+
* Validate that there's access to PlayerPoints.
36+
*
37+
* @return True if there is access to PlayerPoints, otherwise false.
38+
*/
39+
private boolean hookPlayerPoints() {
40+
final Plugin plugin = ultraCosmetics.getServer().getPluginManager().getPlugin("PlayerPoints");
41+
playerPoints = PlayerPoints.class.cast(plugin);
42+
return playerPoints != null;
43+
}
44+
45+
@Override
46+
public void withdraw(Player player, int amount) {
47+
playerPoints.getAPI().take(player.getUniqueId(), amount);
48+
}
49+
50+
@Override
51+
public void deposit(Player player, int amount) {
52+
playerPoints.getAPI().give(player.getUniqueId(), amount);
53+
}
54+
55+
@Override
56+
public double balance(Player player) {
57+
return playerPoints.getAPI().look(player.getUniqueId());
58+
}
59+
60+
@Override
61+
public String getName() {
62+
return "PlayerPoints";
63+
}
64+
65+
@Override
66+
public boolean economyEnabled() {
67+
return economyEnabled;
68+
}
69+
}

0 commit comments

Comments
 (0)