Prints the correct currency if Vault is available
This commit is contained in:
parent
7767a3f3eb
commit
3e93b4a733
10
pom.xml
10
pom.xml
@ -74,6 +74,10 @@
|
|||||||
<id>citizens-repo</id>
|
<id>citizens-repo</id>
|
||||||
<url>http://repo.citizensnpcs.co/</url>
|
<url>http://repo.citizensnpcs.co/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>vault-repo</id>
|
||||||
|
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -126,6 +130,12 @@
|
|||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.milkbowl.vault</groupId>
|
||||||
|
<artifactId>Vault</artifactId>
|
||||||
|
<version>1.7.3</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mcmonkey</groupId>
|
<groupId>org.mcmonkey</groupId>
|
||||||
<artifactId>sentinel</artifactId>
|
<artifactId>sentinel</artifactId>
|
||||||
|
@ -26,6 +26,7 @@ public final class DynmapCitizens extends JavaPlugin {
|
|||||||
private static DynmapCitizens instance;
|
private static DynmapCitizens instance;
|
||||||
private DynmapAPI dynmapAPI;
|
private DynmapAPI dynmapAPI;
|
||||||
private Map<Icon, MarkerIcon> markerIcons;
|
private Map<Icon, MarkerIcon> markerIcons;
|
||||||
|
private VaultHandler vaultHandler;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@ -69,11 +70,22 @@ public final class DynmapCitizens extends JavaPlugin {
|
|||||||
//TODO: It would probably make more sense to have individual timers for each marker based on whether the
|
//TODO: It would probably make more sense to have individual timers for each marker based on whether the
|
||||||
// NPC is likely to move about.
|
// NPC is likely to move about.
|
||||||
}, 5 * 20, 5 * 20);
|
}, 5 * 20, 5 * 20);
|
||||||
|
|
||||||
|
vaultHandler = new VaultHandler(this.getServer().getServicesManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
// Plugin shutdown logic
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Vault handler to use for anything Vault-related
|
||||||
|
*
|
||||||
|
* @return <p>The Vault handler</p>
|
||||||
|
*/
|
||||||
|
public VaultHandler getVaultHandler() {
|
||||||
|
return vaultHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
48
src/main/java/net/knarcraft/dynmapcitizens/VaultHandler.java
Normal file
48
src/main/java/net/knarcraft/dynmapcitizens/VaultHandler.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package net.knarcraft.dynmapcitizens;
|
||||||
|
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
|
import org.bukkit.plugin.ServicesManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class to keep track of everything Vault
|
||||||
|
*/
|
||||||
|
public class VaultHandler {
|
||||||
|
|
||||||
|
private Economy economy = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new Vault handler
|
||||||
|
*
|
||||||
|
* @param servicesManager <p>The services manager to get the Vault service from</p>
|
||||||
|
*/
|
||||||
|
public VaultHandler(ServicesManager servicesManager) {
|
||||||
|
RegisteredServiceProvider<Economy> economyProvider = servicesManager.getRegistration(Economy.class);
|
||||||
|
if (economyProvider != null) {
|
||||||
|
economy = economyProvider.getProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether Vault is enabled
|
||||||
|
*
|
||||||
|
* @return <p>True if Vault is enabled</p>
|
||||||
|
*/
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return economy != null && economy.isEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the name of the used currency
|
||||||
|
*
|
||||||
|
* @return <p>The currency name</p>
|
||||||
|
*/
|
||||||
|
public String getCurrency(boolean plural) {
|
||||||
|
if (plural) {
|
||||||
|
return economy.currencyNamePlural();
|
||||||
|
} else {
|
||||||
|
return economy.currencyNameSingular();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,7 @@ import net.citizensnpcs.api.npc.NPCRegistry;
|
|||||||
import net.knarcraft.dynmapcitizens.DynmapCitizens;
|
import net.knarcraft.dynmapcitizens.DynmapCitizens;
|
||||||
import net.knarcraft.dynmapcitizens.Icon;
|
import net.knarcraft.dynmapcitizens.Icon;
|
||||||
import net.knarcraft.dynmapcitizens.UpdateRate;
|
import net.knarcraft.dynmapcitizens.UpdateRate;
|
||||||
|
import net.knarcraft.dynmapcitizens.VaultHandler;
|
||||||
import net.knarcraft.dynmapcitizens.trait.AbstractTraitHandler;
|
import net.knarcraft.dynmapcitizens.trait.AbstractTraitHandler;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -169,14 +170,12 @@ public class QuestsHandler extends AbstractTraitHandler {
|
|||||||
StringBuilder plannerInfo = new StringBuilder();
|
StringBuilder plannerInfo = new StringBuilder();
|
||||||
plannerInfo.append("<b>Planner:</b><ul>");
|
plannerInfo.append("<b>Planner:</b><ul>");
|
||||||
|
|
||||||
//Quest is repeatable
|
//Quest can be repeated after a cool-down
|
||||||
if (planner.hasRepeat()) {
|
|
||||||
plannerInfo.append("<li>Can be repeated after ").append(getDurationString(planner.getRepeat() / 1000));
|
|
||||||
}
|
|
||||||
|
|
||||||
//Quest has cool-down
|
|
||||||
if (planner.hasCooldown()) {
|
if (planner.hasCooldown()) {
|
||||||
plannerInfo.append("<li>Cool-down: ").append(getDurationString(planner.getCooldown() / 1000)).append("</li>");
|
plannerInfo.append("<li>Quest repeatable after: ").append(getDurationString(planner.getCooldown() / 1000));
|
||||||
|
plannerInfo.append("</li>");
|
||||||
|
} else {
|
||||||
|
plannerInfo.append("<li>Quest cannot be repeated!</li>");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Quest only becomes available after the start date
|
//Quest only becomes available after the start date
|
||||||
@ -193,6 +192,12 @@ public class QuestsHandler extends AbstractTraitHandler {
|
|||||||
plannerInfo.append("<li>Quest available until ").append(format.format(date)).append("</li>");
|
plannerInfo.append("<li>Quest available until ").append(format.format(date)).append("</li>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Quest availability repeats
|
||||||
|
if (planner.hasRepeat()) {
|
||||||
|
plannerInfo.append("<li>Quest will become available again after ");
|
||||||
|
plannerInfo.append(getDurationString(planner.getRepeat() / 1000)).append("</li>");
|
||||||
|
}
|
||||||
|
|
||||||
plannerInfo.append("</ul>");
|
plannerInfo.append("</ul>");
|
||||||
return plannerInfo.toString();
|
return plannerInfo.toString();
|
||||||
}
|
}
|
||||||
@ -357,12 +362,11 @@ public class QuestsHandler extends AbstractTraitHandler {
|
|||||||
rewardInfo.append("<b>Rewards:</b><ul>");
|
rewardInfo.append("<b>Rewards:</b><ul>");
|
||||||
|
|
||||||
if (reward.getMoney() > 0) {
|
if (reward.getMoney() > 0) {
|
||||||
//TODO: Get the currency from Vault
|
rewardInfo.append("<li>").append(reward.getMoney()).append(" ").append(getCurrency(reward.getMoney())).append("</li>");
|
||||||
rewardInfo.append("<li>").append(reward.getMoney()).append(" money").append("</li>");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reward.getExp() > 0) {
|
if (reward.getExp() > 0) {
|
||||||
rewardInfo.append("<li>").append(reward.getMoney()).append(" exp").append("</li>");
|
rewardInfo.append("<li>").append(reward.getExp()).append(" exp").append("</li>");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String permission : reward.getPermissions()) {
|
for (String permission : reward.getPermissions()) {
|
||||||
@ -381,6 +385,21 @@ public class QuestsHandler extends AbstractTraitHandler {
|
|||||||
return rewardInfo.toString();
|
return rewardInfo.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the currency to print for the given amount of money
|
||||||
|
*
|
||||||
|
* @param money <p>The amount to pay/use</p>
|
||||||
|
* @return <p>The currency name to use</p>
|
||||||
|
*/
|
||||||
|
private String getCurrency(double money) {
|
||||||
|
VaultHandler vaultHandler = DynmapCitizens.getInstance().getVaultHandler();
|
||||||
|
if (vaultHandler.isEnabled()) {
|
||||||
|
return vaultHandler.getCurrency(money != 1);
|
||||||
|
} else {
|
||||||
|
return "money";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the marker title to use for the given quest NPC type
|
* Gets the marker title to use for the given quest NPC type
|
||||||
*
|
*
|
||||||
|
@ -4,6 +4,6 @@ main: net.knarcraft.dynmapcitizens.DynmapCitizens
|
|||||||
api-version: 1.19
|
api-version: 1.19
|
||||||
prefix: DynmapCitizens
|
prefix: DynmapCitizens
|
||||||
depend: [ dynmap, Citizens ]
|
depend: [ dynmap, Citizens ]
|
||||||
softdepend: [ Blacksmith, Sentinel, Quests, Minstrel ]
|
softdepend: [ Blacksmith, Sentinel, Quests, Minstrel, Vault ]
|
||||||
authors: [ EpicKnarvik97 ]
|
authors: [ EpicKnarvik97 ]
|
||||||
description: A plugin for displaying citizens info on the dynmap map
|
description: A plugin for displaying citizens info on the dynmap map
|
||||||
|
Loading…
Reference in New Issue
Block a user