2016-06-14 05:06:58 +02:00
|
|
|
package org.appledash.saneeconomy.economy;
|
|
|
|
|
2016-09-19 07:44:55 +02:00
|
|
|
import org.bukkit.configuration.ConfigurationSection;
|
2016-06-14 05:06:58 +02:00
|
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by AppleDash on 6/13/2016.
|
|
|
|
* Blackjack is still best pony.
|
|
|
|
*
|
|
|
|
* Represents an in-game currency.
|
|
|
|
*/
|
|
|
|
public class Currency {
|
2016-06-14 10:59:16 +02:00
|
|
|
private final String nameSingular;
|
|
|
|
private final String namePlural;
|
|
|
|
private final DecimalFormat format;
|
2016-06-14 05:06:58 +02:00
|
|
|
|
2016-07-29 13:16:11 +02:00
|
|
|
public Currency(String nameSingular, String namePlural, DecimalFormat format) {
|
2016-06-14 05:06:58 +02:00
|
|
|
this.nameSingular = nameSingular;
|
|
|
|
this.namePlural = namePlural;
|
|
|
|
this.format = format;
|
|
|
|
}
|
|
|
|
|
2016-09-19 07:44:55 +02:00
|
|
|
public static Currency fromConfig(ConfigurationSection config) {
|
2016-06-14 05:06:58 +02:00
|
|
|
return new Currency(
|
2016-09-19 07:44:55 +02:00
|
|
|
config.getString("name.singular", "dollar"),
|
|
|
|
config.getString("name.plural", "dollars"),
|
|
|
|
new DecimalFormat(config.getString("format", "0.00"))
|
2016-06-14 05:06:58 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Format a money amount with this currency's format.
|
|
|
|
* @param amount Money amount.
|
|
|
|
* @return Formatted amount string.
|
|
|
|
*/
|
|
|
|
public String formatAmount(double amount) {
|
|
|
|
if (amount == 1) {
|
|
|
|
return String.format("%s %s", format.format(amount), nameSingular);
|
|
|
|
}
|
|
|
|
|
|
|
|
return String.format("%s %s", format.format(amount), namePlural);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get this currency's singular name.
|
|
|
|
* Example: "Dollar"
|
|
|
|
* @return Singular name.
|
|
|
|
*/
|
|
|
|
public String getSingularName() {
|
|
|
|
return nameSingular;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get this currency's plural name.
|
|
|
|
* Example: "Dollars"
|
|
|
|
* @return Plural name.
|
|
|
|
*/
|
|
|
|
public String getPluralName() {
|
|
|
|
return namePlural;
|
|
|
|
}
|
2016-06-14 12:20:14 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get this currency's number format.
|
|
|
|
* @return DecimalFormat instance
|
|
|
|
*/
|
|
|
|
public DecimalFormat getFormat() {
|
|
|
|
return format;
|
|
|
|
}
|
2016-06-14 05:06:58 +02:00
|
|
|
}
|