mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-06-11 13:33:54 +00:00
shop and grappling hook
This commit is contained in:
@ -1,16 +1,21 @@
|
||||
package me.totalfreedom.totalfreedommod.shop;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import net.pravian.aero.base.ConfigLoadable;
|
||||
import net.pravian.aero.base.ConfigSavable;
|
||||
import net.pravian.aero.base.Validatable;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class ShopData implements ConfigLoadable, ConfigSavable, Validatable
|
||||
{
|
||||
@ -22,6 +27,7 @@ public class ShopData implements ConfigLoadable, ConfigSavable, Validatable
|
||||
@Getter
|
||||
@Setter
|
||||
private int coins;
|
||||
private List<String> items = Lists.newArrayList();
|
||||
|
||||
public ShopData(Player player)
|
||||
{
|
||||
@ -40,6 +46,7 @@ public class ShopData implements ConfigLoadable, ConfigSavable, Validatable
|
||||
this.ips.clear();
|
||||
this.ips.addAll(cs.getStringList("ips"));
|
||||
this.coins = cs.getInt("coins", coins);
|
||||
this.items.addAll(cs.getStringList("items"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -49,6 +56,7 @@ public class ShopData implements ConfigLoadable, ConfigSavable, Validatable
|
||||
cs.set("username", username);
|
||||
cs.set("ips", ips);
|
||||
cs.set("coins", coins);
|
||||
cs.set("items", items);
|
||||
}
|
||||
|
||||
public List<String> getIps()
|
||||
@ -66,7 +74,56 @@ public class ShopData implements ConfigLoadable, ConfigSavable, Validatable
|
||||
{
|
||||
return ips.remove(ip);
|
||||
}
|
||||
|
||||
|
||||
public List<String> getItems()
|
||||
{
|
||||
return Collections.unmodifiableList(items);
|
||||
}
|
||||
|
||||
public String giveItem(ShopItem item)
|
||||
{
|
||||
String signature = String.valueOf(item.getId());
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
signature += FUtil.getRandomCharacter();
|
||||
}
|
||||
items.add(signature);
|
||||
return signature;
|
||||
}
|
||||
|
||||
public boolean hasItem(ShopItem item)
|
||||
{
|
||||
for (String i : items)
|
||||
{
|
||||
int id = Integer.valueOf(i.substring(0, 1));
|
||||
if (item.getId() == id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public ItemStack getItem(ShopItem item)
|
||||
{
|
||||
String signature = "";
|
||||
for (String i : items)
|
||||
{
|
||||
int id = Integer.valueOf(i.substring(0, 1));
|
||||
if (item.getId() == id)
|
||||
{
|
||||
signature = i;
|
||||
}
|
||||
}
|
||||
ItemStack stack = new ItemStack(item.getMaterial(), 1);
|
||||
ItemMeta meta = stack.getItemMeta();
|
||||
meta.setDisplayName(item.getColoredName());
|
||||
List<String> lore = new ArrayList<>();
|
||||
lore.add(ChatColor.DARK_GRAY + signature);
|
||||
meta.setLore(lore);
|
||||
stack.setItemMeta(meta);
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid()
|
||||
|
@ -0,0 +1,48 @@
|
||||
package me.totalfreedom.totalfreedommod.shop;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
|
||||
public enum ShopItem
|
||||
{
|
||||
GRAPPLING_HOOK("Grappling Hook", Material.FISHING_ROD, 100, ChatColor.GREEN, 0);
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
@Getter
|
||||
private final Material material;
|
||||
@Getter
|
||||
private final int cost;
|
||||
@Getter
|
||||
private final ChatColor color;
|
||||
@Getter
|
||||
private final int id;
|
||||
|
||||
ShopItem(String name, Material material, int cost, ChatColor color, int id)
|
||||
{
|
||||
this.name = name;
|
||||
this.material = material;
|
||||
this.cost = cost;
|
||||
this.color = color;
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getColoredName()
|
||||
{
|
||||
return color + name;
|
||||
}
|
||||
|
||||
public static ShopItem findItem(String string)
|
||||
{
|
||||
try
|
||||
{
|
||||
return ShopItem.valueOf(string.toUpperCase());
|
||||
}
|
||||
catch (Exception ignored)
|
||||
{
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user