shop and grappling hook

This commit is contained in:
Super_
2020-01-07 15:13:59 -05:00
parent 3b715fc091
commit fbcb6da30d
7 changed files with 322 additions and 14 deletions

View File

@ -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()

View File

@ -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;
}
}