From b0a04c42cc6a59dc8cf94dfd80a04a7ba9d1f3be Mon Sep 17 00:00:00 2001 From: Acrobot Date: Sun, 28 Oct 2012 23:53:26 +0100 Subject: [PATCH] Fixed enchantments -.- --- com/Acrobot/Breeze/Database/EntityParser.java | 51 +++++++++++++++++++ com/Acrobot/Breeze/Utils/MaterialUtil.java | 7 ++- .../ChestShop/Commands/DatabaseCommand.java | 14 +++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 com/Acrobot/Breeze/Database/EntityParser.java create mode 100644 com/Acrobot/ChestShop/Commands/DatabaseCommand.java diff --git a/com/Acrobot/Breeze/Database/EntityParser.java b/com/Acrobot/Breeze/Database/EntityParser.java new file mode 100644 index 0000000..85a16e9 --- /dev/null +++ b/com/Acrobot/Breeze/Database/EntityParser.java @@ -0,0 +1,51 @@ +package com.Acrobot.Breeze.Database; + +import com.google.common.base.Joiner; + +import javax.persistence.Entity; +import java.lang.annotation.AnnotationFormatError; +import java.lang.reflect.Field; +import java.util.LinkedList; +import java.util.List; + +/** + * Parses an entity (class with database fields) + * + * @author Acrobot + */ +public class EntityParser { + private Class entity; + + public EntityParser(Class table) { + if (!table.isAnnotationPresent(Entity.class) || !table.isAnnotationPresent(javax.persistence.Table.class)) { + throw new AnnotationFormatError("The class hasn't got Entity or Table annotation!"); + } + + entity = table; + } + + /** + * Parses the class' fields to a standard SQL format + * + * @return SQLed class + */ + public String parseToString() { + List fields = new LinkedList(); + + for (Field field : entity.getDeclaredFields()) { + fields.add(convertToSQL(field)); + } + + return Joiner.on(',').join(fields); + } + + /** + * Converts a field type to SQL type + * + * @param field Java's field + * @return SQL type + */ + public String convertToSQL(Field field) { + return null; + } +} diff --git a/com/Acrobot/Breeze/Utils/MaterialUtil.java b/com/Acrobot/Breeze/Utils/MaterialUtil.java index 8485bbf..d54c321 100644 --- a/com/Acrobot/Breeze/Utils/MaterialUtil.java +++ b/com/Acrobot/Breeze/Utils/MaterialUtil.java @@ -241,13 +241,16 @@ public class MaterialUtil { * @return Enchantments found */ public static Map getEnchantments(String base32) { +<<<<<<< HEAD if (base32 == null || base32.isEmpty() || NumberUtil.isLong(base32)) { +======= + if (base32 == null || base32.isEmpty() || !NumberUtil.isEnchantment(base32)) { +>>>>>>> Fixed enchantments -.- return new HashMap(); } - Map map = new HashMap(); - StringBuilder number = new StringBuilder(Long.toString(Long.parseLong(base32, 32))); + Map map = new HashMap(); while (number.length() % 3 != 0) { number.insert(0, '0'); diff --git a/com/Acrobot/ChestShop/Commands/DatabaseCommand.java b/com/Acrobot/ChestShop/Commands/DatabaseCommand.java new file mode 100644 index 0000000..03e2735 --- /dev/null +++ b/com/Acrobot/ChestShop/Commands/DatabaseCommand.java @@ -0,0 +1,14 @@ +package com.Acrobot.ChestShop.Commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; + +/** + * @author Acrobot + */ +public class DatabaseCommand implements CommandExecutor { + public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + return true;//TODO OOO + } +}