Skip to content

Commit 8729540

Browse files
committed
fix Vault hook
1 parent f08ee05 commit 8729540

File tree

7 files changed

+107
-101
lines changed

7 files changed

+107
-101
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,5 +159,11 @@
159159
<scope>system</scope>
160160
<systemPath>${project.basedir}/lib/TNE-0.1.1.16.jar</systemPath>
161161
</dependency>
162+
<dependency>
163+
<groupId>com.github.MilkBowl</groupId>
164+
<artifactId>VaultAPI</artifactId>
165+
<version>1.7</version>
166+
<scope>provided</scope>
167+
</dependency>
162168
</dependencies>
163169
</project>

src/main/java/com/github/elic0de/thejpspit/TheJpsPit.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import com.github.elic0de.thejpspit.hook.EconomyHook;
1616
import com.github.elic0de.thejpspit.hook.Hook;
1717
import com.github.elic0de.thejpspit.hook.PlaceholderHook;
18-
import com.github.elic0de.thejpspit.hook.TneEconomyHook;
18+
import com.github.elic0de.thejpspit.hook.VaultEconomyHook;
1919
import com.github.elic0de.thejpspit.item.ItemManager;
2020
import com.github.elic0de.thejpspit.leveler.Levels;
2121
import com.github.elic0de.thejpspit.listener.BlockPlaceListener;
@@ -94,7 +94,8 @@ public void onEnable() {
9494
// Prepare the database and networking system
9595
this.database = this.loadDatabase();
9696
if (!database.hasLoaded()) {
97-
Bukkit.getLogger().log(Level.SEVERE, "Failed to load database! Please check your credentials! Disabling plugin...");
97+
Bukkit.getLogger().log(Level.SEVERE,
98+
"Failed to load database! Please check your credentials! Disabling plugin...");
9899
Bukkit.getPluginManager().disablePlugin(this);
99100
return;
100101
}
@@ -119,25 +120,23 @@ public void onEnable() {
119120
world.setGameRule(GameRule.DO_IMMEDIATE_RESPAWN, true);
120121
world.setGameRule(GameRule.KEEP_INVENTORY, true);
121122
});
122-
Bukkit.getScheduler().runTaskLater(TheJpsPit.getInstance(), () -> {
123-
Bukkit.getOnlinePlayers().forEach(player -> {
124-
125-
final Optional<PitPlayer> userData = database.getPitPlayer(player);
126-
if (userData.isEmpty()) {
127-
database.createPitPlayer(player);
128-
PitPlayerManager.registerUser(new PitPlayer(player));
129-
return;
130-
}
131-
// Update the user's name if it has changed
132-
final PitPlayer pitPlayer = userData.get();
133-
boolean updateNeeded = !pitPlayer.getName().equals(player.getName());
134-
135-
PitPlayerManager.registerUser(pitPlayer);
136-
if (updateNeeded) {
137-
database.updateUserData(pitPlayer);
138-
}
139-
});
140-
}, 5 * 20);
123+
Bukkit.getOnlinePlayers().forEach(player -> {
124+
125+
final Optional<PitPlayer> userData = database.getPitPlayer(player);
126+
if (userData.isEmpty()) {
127+
database.createPitPlayer(player);
128+
PitPlayerManager.registerUser(new PitPlayer(player));
129+
return;
130+
}
131+
// Update the user's name if it has changed
132+
final PitPlayer pitPlayer = userData.get();
133+
boolean updateNeeded = !pitPlayer.getName().equals(player.getName());
134+
135+
PitPlayerManager.registerUser(pitPlayer);
136+
if (updateNeeded) {
137+
database.updateUserData(pitPlayer);
138+
}
139+
});
141140
}
142141

143142
private Database loadDatabase() throws RuntimeException {
@@ -192,8 +191,8 @@ private void registerListener() {
192191

193192
private void registerHooks() {
194193
final PluginManager plugins = Bukkit.getPluginManager();
195-
if (plugins.getPlugin("TheNewEconomy") != null) {
196-
this.registerHook(new TneEconomyHook(this));
194+
if (plugins.getPlugin("Vault") != null) {
195+
this.registerHook(new VaultEconomyHook(this));
197196
}
198197
if (plugins.getPlugin("PlaceholderAPI") != null) {
199198
new PlaceholderHook().register();

src/main/java/com/github/elic0de/thejpspit/hook/TneEconomyHook.java

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.github.elic0de.thejpspit.hook;
2+
3+
import com.github.elic0de.thejpspit.TheJpsPit;
4+
import com.github.elic0de.thejpspit.player.PitPlayer;
5+
import java.math.BigDecimal;
6+
import java.util.logging.Level;
7+
import net.milkbowl.vault.economy.Economy;
8+
import org.bukkit.plugin.RegisteredServiceProvider;
9+
10+
public class VaultEconomyHook extends EconomyHook {
11+
12+
protected Economy economy;
13+
14+
public VaultEconomyHook(TheJpsPit plugin) {
15+
super(plugin, "Vault");
16+
}
17+
18+
@Override
19+
public void onEnable() throws IllegalStateException {
20+
final RegisteredServiceProvider<Economy> economyProvider = plugin.getServer()
21+
.getServicesManager().getRegistration(Economy.class);
22+
if (economyProvider == null) {
23+
throw new IllegalStateException("Could not resolve Vault economy provider");
24+
}
25+
this.economy = economyProvider.getProvider();
26+
plugin.getLogger().log(Level.INFO, "Enabled Vault economy hook");
27+
}
28+
29+
@Override
30+
public BigDecimal getBalance(PitPlayer player) {
31+
return BigDecimal.valueOf(economy.getBalance(player.getPlayer()));
32+
}
33+
34+
@Override
35+
public boolean hasMoney(PitPlayer player, BigDecimal amount) {
36+
return getBalance(player).compareTo(amount) >= 0;
37+
}
38+
39+
@Override
40+
public void takeMoney(PitPlayer player, BigDecimal amount) {
41+
economy.withdrawPlayer(player.getPlayer(), amount.doubleValue());
42+
}
43+
44+
@Override
45+
public void giveMoney(PitPlayer player, BigDecimal amount) {
46+
economy.depositPlayer(player.getPlayer(), amount.doubleValue());
47+
}
48+
49+
@Override
50+
public String formatMoney(BigDecimal amount) {
51+
return economy.format(amount.doubleValue());
52+
}
53+
54+
}

src/main/java/com/github/elic0de/thejpspit/listener/EventListener.java

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,32 +38,30 @@ public EventListener() {
3838

3939
@EventHandler()
4040
public void onJoin(PlayerJoinEvent event) {
41-
Bukkit.getScheduler().runTaskLater(TheJpsPit.getInstance(), () -> {
42-
event.setJoinMessage("");
43-
new NoCollisionUtil().sendNoCollisionPacket(event.getPlayer());
44-
final Player player = event.getPlayer();
45-
final Optional<PitPlayer> userData = plugin.getDatabase().getPitPlayer(player);
46-
47-
plugin.getPitPreferences().ifPresent(pitPreferences -> {
48-
final Location location = pitPreferences.getSpawn().get().getLocation();
49-
50-
if (location != null)
51-
player.teleport(location);
52-
});
53-
if (userData.isEmpty()) {
54-
plugin.getDatabase().createPitPlayer(player);
55-
PitPlayerManager.registerUser(new PitPlayer(player));
56-
return;
57-
}
58-
// Update the user's name if it has changed
59-
final PitPlayer pitPlayer = userData.get();
60-
boolean updateNeeded = !pitPlayer.getName().equals(player.getName());
41+
event.setJoinMessage("");
42+
new NoCollisionUtil().sendNoCollisionPacket(event.getPlayer());
43+
final Player player = event.getPlayer();
44+
final Optional<PitPlayer> userData = plugin.getDatabase().getPitPlayer(player);
6145

62-
PitPlayerManager.registerUser(pitPlayer);
63-
if (updateNeeded) {
64-
plugin.getDatabase().updateUserData(pitPlayer);
65-
}
66-
}, 5 * 20);
46+
plugin.getPitPreferences().ifPresent(pitPreferences -> {
47+
final Location location = pitPreferences.getSpawn().get().getLocation();
48+
49+
if (location != null)
50+
player.teleport(location);
51+
});
52+
if (userData.isEmpty()) {
53+
plugin.getDatabase().createPitPlayer(player);
54+
PitPlayerManager.registerUser(new PitPlayer(player));
55+
return;
56+
}
57+
// Update the user's name if it has changed
58+
final PitPlayer pitPlayer = userData.get();
59+
boolean updateNeeded = !pitPlayer.getName().equals(player.getName());
60+
61+
PitPlayerManager.registerUser(pitPlayer);
62+
if (updateNeeded) {
63+
plugin.getDatabase().updateUserData(pitPlayer);
64+
}
6765
}
6866

6967
@EventHandler

src/main/java/com/github/elic0de/thejpspit/scoreboard/PitPlayerScoreboard.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void updateLevel() {
3232
}
3333

3434
public void updateCoins() {
35-
//TheJpsPit.getInstance().getEconomyHook().ifPresent(economyHook -> updateLine(2, "JP: [%coins%]".replaceAll("%coins%", economyHook.getBalance(player).toPlainString())));
35+
TheJpsPit.getInstance().getEconomyHook().ifPresent(economyHook -> updateLine(2, "JP: [%coins%]".replaceAll("%coins%", economyHook.getBalance(player).toPlainString())));
3636
}
3737

3838
public void updateRating() {

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ author: 'Elic0de#0342'
66
softdepend:
77
- TheNewEconomy
88
- PlaceholderAPI
9-
- TNE
9+
- Vault

0 commit comments

Comments
 (0)