Kaynağa Gözat

removed most commands / all skills out of the mod in favour of snuvi script, new snuvi script commands, databank upgrade to prepared statements, code cleanup

Kajetan Johannes Hammerle 5 yıl önce
ebeveyn
işleme
397eb8adfe
100 değiştirilmiş dosya ile 472 ekleme ve 7302 silme
  1. BIN
      src/SpeedTester.jar
  2. 3 43
      src/main/java/me/km/ClientProxy.java
  3. 0 13
      src/main/java/me/km/CommonProxy.java
  4. 1 2
      src/main/java/me/km/DamageUtils.java
  5. 24 116
      src/main/java/me/km/KajetansMod.java
  6. 12 27
      src/main/java/me/km/ObjectRegistry.java
  7. 1 1
      src/main/java/me/km/PackageHelper.java
  8. 0 37
      src/main/java/me/km/afk/AfkListener.java
  9. 0 69
      src/main/java/me/km/afk/CommandAFK.java
  10. 0 64
      src/main/java/me/km/api/GlobalText.java
  11. 0 100
      src/main/java/me/km/api/MessageSender.java
  12. 0 127
      src/main/java/me/km/api/Module.java
  13. 0 16
      src/main/java/me/km/api/ModuleListener.java
  14. 0 107
      src/main/java/me/km/api/SimpleConfig.java
  15. 17 41
      src/main/java/me/km/blockprotections/BlockProtection.java
  16. 164 171
      src/main/java/me/km/blockprotections/BlockProtectionBank.java
  17. 0 203
      src/main/java/me/km/blockprotections/CommandBlock.java
  18. 0 47
      src/main/java/me/km/blockprotections/SemiProtections.java
  19. 0 45
      src/main/java/me/km/chatmanager/ChatListener.java
  20. 0 186
      src/main/java/me/km/chatmanager/ChatManager.java
  21. 0 35
      src/main/java/me/km/chatmanager/CommandColor.java
  22. 0 69
      src/main/java/me/km/chatmanager/CommandFakeRank.java
  23. 0 69
      src/main/java/me/km/chatmanager/CommandNickName.java
  24. 0 29
      src/main/java/me/km/chatmanager/Rank.java
  25. 0 51
      src/main/java/me/km/commands/CommandAddUser.java
  26. 0 64
      src/main/java/me/km/commands/CommandAnswer.java
  27. 0 41
      src/main/java/me/km/commands/CommandBack.java
  28. 0 50
      src/main/java/me/km/commands/CommandBan.java
  29. 0 68
      src/main/java/me/km/commands/CommandBed.java
  30. 0 93
      src/main/java/me/km/commands/CommandBook.java
  31. 0 52
      src/main/java/me/km/commands/CommandCoords.java
  32. 0 41
      src/main/java/me/km/commands/CommandDelHome.java
  33. 0 34
      src/main/java/me/km/commands/CommandDelWarp.java
  34. 0 67
      src/main/java/me/km/commands/CommandEnchant.java
  35. 0 45
      src/main/java/me/km/commands/CommandEnderChest.java
  36. 0 185
      src/main/java/me/km/commands/CommandExp.java
  37. 0 51
      src/main/java/me/km/commands/CommandFeed.java
  38. 0 83
      src/main/java/me/km/commands/CommandFly.java
  39. 0 98
      src/main/java/me/km/commands/CommandGameMode.java
  40. 0 66
      src/main/java/me/km/commands/CommandGod.java
  41. 0 56
      src/main/java/me/km/commands/CommandGrow.java
  42. 0 47
      src/main/java/me/km/commands/CommandHat.java
  43. 0 53
      src/main/java/me/km/commands/CommandHeal.java
  44. 0 95
      src/main/java/me/km/commands/CommandHome.java
  45. 0 45
      src/main/java/me/km/commands/CommandInvSee.java
  46. 0 48
      src/main/java/me/km/commands/CommandItemInfo.java
  47. 0 45
      src/main/java/me/km/commands/CommandKick.java
  48. 0 52
      src/main/java/me/km/commands/CommandKill.java
  49. 0 40
      src/main/java/me/km/commands/CommandLag.java
  50. 0 87
      src/main/java/me/km/commands/CommandLastSeen.java
  51. 0 33
      src/main/java/me/km/commands/CommandLightUpdate.java
  52. 0 50
      src/main/java/me/km/commands/CommandList.java
  53. 0 28
      src/main/java/me/km/commands/CommandMemory.java
  54. 0 41
      src/main/java/me/km/commands/CommandMore.java
  55. 0 53
      src/main/java/me/km/commands/CommandMsg.java
  56. 0 40
      src/main/java/me/km/commands/CommandPosition.java
  57. 0 72
      src/main/java/me/km/commands/CommandPotion.java
  58. 0 70
      src/main/java/me/km/commands/CommandPvP.java
  59. 0 42
      src/main/java/me/km/commands/CommandRepair.java
  60. 0 28
      src/main/java/me/km/commands/CommandSay.java
  61. 0 58
      src/main/java/me/km/commands/CommandSeen.java
  62. 0 42
      src/main/java/me/km/commands/CommandSetBed.java
  63. 0 55
      src/main/java/me/km/commands/CommandSetHome.java
  64. 0 34
      src/main/java/me/km/commands/CommandSetSpawn.java
  65. 0 55
      src/main/java/me/km/commands/CommandSetWarp.java
  66. 0 76
      src/main/java/me/km/commands/CommandSign.java
  67. 0 35
      src/main/java/me/km/commands/CommandSilent.java
  68. 0 39
      src/main/java/me/km/commands/CommandSkull.java
  69. 0 60
      src/main/java/me/km/commands/CommandSpawn.java
  70. 0 63
      src/main/java/me/km/commands/CommandSpawner.java
  71. 0 80
      src/main/java/me/km/commands/CommandSpeed.java
  72. 0 127
      src/main/java/me/km/commands/CommandSummon.java
  73. 0 73
      src/main/java/me/km/commands/CommandTeleport.java
  74. 0 56
      src/main/java/me/km/commands/CommandTeleportAccept.java
  75. 0 81
      src/main/java/me/km/commands/CommandTempBan.java
  76. 0 77
      src/main/java/me/km/commands/CommandTest.java
  77. 0 65
      src/main/java/me/km/commands/CommandTime.java
  78. 0 58
      src/main/java/me/km/commands/CommandTop.java
  79. 0 84
      src/main/java/me/km/commands/CommandTpPos.java
  80. 0 54
      src/main/java/me/km/commands/CommandUser.java
  81. 0 89
      src/main/java/me/km/commands/CommandWarp.java
  82. 0 109
      src/main/java/me/km/commands/CommandWeather.java
  83. 0 65
      src/main/java/me/km/data/DataManager.java
  84. 0 849
      src/main/java/me/km/data/EntityData.java
  85. 0 41
      src/main/java/me/km/data/EntityDataEvents.java
  86. 64 14
      src/main/java/me/km/databank/DataBank.java
  87. 12 232
      src/main/java/me/km/databank/DummyStatement.java
  88. 19 0
      src/main/java/me/km/databank/IStatement.java
  89. 0 299
      src/main/java/me/km/databank/SimpleDataBank.java
  90. 76 0
      src/main/java/me/km/databank/Statement.java
  91. 46 62
      src/main/java/me/km/datatools/CommandDataTools.java
  92. 19 20
      src/main/java/me/km/datatools/CommandHuman.java
  93. 4 5
      src/main/java/me/km/datatools/CommandVillager.java
  94. 10 28
      src/main/java/me/km/datatools/DataToolsEvents.java
  95. 0 29
      src/main/java/me/km/dimensions/WorldData.java
  96. 0 23
      src/main/java/me/km/dimensions/WorldPreferences.java
  97. 0 77
      src/main/java/me/km/effects/ActiveEffectBase.java
  98. 0 212
      src/main/java/me/km/effects/Effect.java
  99. 0 67
      src/main/java/me/km/effects/EffectAirBlockChanger.java
  100. 0 78
      src/main/java/me/km/effects/EffectBlockChanger.java

BIN
src/SpeedTester.jar


+ 3 - 43
src/main/java/me/km/ClientProxy.java

@@ -1,8 +1,6 @@
 package me.km;
 
 import java.awt.Color;
-import java.lang.reflect.Field;
-import javax.annotation.Nullable;
 import me.km.blocks.ModBlocks;
 import me.km.blocks.cauldron.TileEntityCauldron;
 import me.km.entities.ModEntities;
@@ -12,9 +10,7 @@ import me.km.items.ModItems;
 import me.km.items.ModelCylinder;
 import me.km.items.ModelHat;
 import me.km.networking.KeyManager;
-import me.km.utils.ReflectionUtils;
 import net.minecraft.block.Block;
-import net.minecraft.block.BlockTallGrass;
 import net.minecraft.block.state.IBlockState;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.model.ModelBiped;
@@ -25,14 +21,10 @@ import net.minecraft.client.renderer.color.BlockColors;
 import net.minecraft.client.renderer.color.IBlockColor;
 import net.minecraft.client.renderer.color.ItemColors;
 import net.minecraft.client.renderer.entity.Render;
-import net.minecraft.client.resources.FoliageColorReloadListener;
-import net.minecraft.client.resources.GrassColorReloadListener;
 import net.minecraft.entity.Entity;
-import net.minecraft.init.Blocks;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemBlock;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.ColorizerGrass;
 import net.minecraft.world.IBlockAccess;
@@ -114,11 +106,7 @@ public class ClientProxy extends CommonProxy
         };
         
         bColors.registerBlockColorHandler(tallGrass, ModBlocks.tallGrass);
-        
-        /*bColors.registerBlockColorHandler((IBlockState state, IBlockAccess w, BlockPos pos, int ti) -> 
-            w != null && pos != null ? BiomeColorHelper.getFoliageColorAtPos(w, pos) : ColorizerFoliage.getFoliageColorBasic(), 
-                Blocks.LEAVES, ModBlocks.apricotLeaves, ModBlocks.pearLeaves, ModBlocks.plumLeaves);*/
-        
+
         ItemColors iColors = Minecraft.getMinecraft().getItemColors();
         iColors.registerItemColorHandler((ItemStack stack, int tintIndex) -> tintIndex > 0 ? -1 : ((ItemColoredSoup) stack.getItem()).getColor(stack), ModItems.coloredSoup);
         iColors.registerItemColorHandler((ItemStack stack, int tintIndex) -> tintIndex > 0 ? -1 : ((ItemGemStone) stack.getItem()).getColor(stack), 
@@ -129,18 +117,12 @@ public class ClientProxy extends CommonProxy
             IBlockState state = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata());
             return tallGrass.colorMultiplier(state, null, null, tintIndex);
         }, ModBlocks.tallGrass);
-        
-        /*iColors.registerItemColorHandler((ItemStack stack, int tintIndex) ->
-        {
-            IBlockState iblockstate = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata());
-            return bColors.colorMultiplier(iblockstate, null, null, tintIndex);
-        }, ModBlocks.apricotLeaves, ModBlocks.pearLeaves, ModBlocks.plumLeaves);*/
     }
 
     @SideOnly(Side.CLIENT)
-    private final static ModelHat STRAW_HAT = new ModelHat(1);
+    private final static ModelHat STRAW_HAT = new ModelHat(1.0f);
     @SideOnly(Side.CLIENT)
-    private final static ModelCylinder CYLINDER = new ModelCylinder(1);
+    private final static ModelCylinder CYLINDER = new ModelCylinder(1.0f);
     
     @Override
     public ModelBiped getCylinderModel() 
@@ -153,26 +135,4 @@ public class ClientProxy extends CommonProxy
     {
         return STRAW_HAT;
     }
-    
-    // -------------------------------------------------------------------------
-    // rendering stuff
-    // -------------------------------------------------------------------------
-    
-    @SideOnly(Side.CLIENT)
-    private final static Field LOC_FOLIAGE_PNG = ReflectionUtils.getFinalStaticField(FoliageColorReloadListener.class, "field_130079_a", "LOC_FOLIAGE_PNG");   
-    
-    @Override
-    public void setFoliage(ResourceLocation loc)
-    {
-        ReflectionUtils.setFieldValue(null, LOC_FOLIAGE_PNG, loc);
-    }
-    
-    @SideOnly(Side.CLIENT)
-    private final static Field LOC_GRASS_PNG = ReflectionUtils.getFinalStaticField(GrassColorReloadListener.class, "field_130078_a", "LOC_GRASS_PNG");   
-    
-    @Override
-    public void setGrass(ResourceLocation loc)
-    {
-        ReflectionUtils.setFieldValue(null, LOC_GRASS_PNG, loc);
-    }
 }

+ 0 - 13
src/main/java/me/km/CommonProxy.java

@@ -7,7 +7,6 @@ import net.minecraft.client.model.ModelBiped;
 import net.minecraft.client.renderer.entity.Render;
 import net.minecraft.entity.Entity;
 import net.minecraft.item.Item;
-import net.minecraft.util.ResourceLocation;
 import net.minecraftforge.common.MinecraftForge;
 import net.minecraftforge.fluids.IFluidBlock;
 
@@ -45,16 +44,4 @@ public class CommonProxy
     {
         return null;
     }
-    
-    // -------------------------------------------------------------------------
-    // rendering stuff
-    // -------------------------------------------------------------------------
-
-    public void setFoliage(ResourceLocation loc)
-    {
-    }
-    
-    public void setGrass(ResourceLocation loc)
-    {
-    }
 }

+ 1 - 2
src/main/java/me/km/DamageUtils.java

@@ -27,10 +27,9 @@ public class DamageUtils
     public static int getMagicDefense(EntityLivingBase liv)
     {
         int level = 0;
-        NBTTagCompound com;
         for(ItemStack stack : liv.getArmorInventoryList())
         {
-            com = stack.getTagCompound();
+            NBTTagCompound com = stack.getTagCompound();
             if(com != null && com.hasKey("magic"))
             {
                 level += com.getInteger("magic");

+ 24 - 116
src/main/java/me/km/KajetansMod.java

@@ -1,25 +1,19 @@
 package me.km;
 
 import me.kcm.command.ModServerCommandManager;
-import me.km.api.Module;
-import me.km.api.SimpleConfig;
-import me.km.api.Utils;
-import me.km.blockprotections.BlockProtectionBank;
-import me.km.chatmanager.ChatManager;
-import me.km.data.DataManager;
+import me.km.blockprotections.BlockProtection;
+import me.km.module.Module;
+import me.km.module.SimpleConfig;
+import me.km.utils.Utils;
 import me.km.databank.DataBank;
-import me.km.dimensions.ModWorldGeneration;
-import me.km.dimensions.WorldData;
-import me.km.jobsystem.JobAPI;
+import me.km.datatools.DataToolsEvents;
+import me.km.world.ModWorldGeneration;
 import me.km.networking.ModPacketHandler;
 import me.km.permissions.PermissionManager;
 import me.km.playerbank.PlayerManager;
 import me.km.plots.ProtectionBank;
 import me.km.scheduler.SnuviScheduler;
-import me.km.scoreboard.ScoreboardAPI;
-import me.km.skills.SkillManager;
 import me.km.snuviscript.ScriptModule;
-import me.km.snuviscript.ScriptBank;
 import net.minecraft.server.MinecraftServer;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.text.TextComponentString;
@@ -47,20 +41,11 @@ public class KajetansMod
     @SideOnly(Side.SERVER)
     public static SnuviScheduler scheduler;
     public static PlayerManager playerbank;
-    public static Module generalCommands;
-    public static ChatManager chatManager;
-    public static Module afkManager;
-    public static Module plots;
-    public static Module blocks;
+    public static ProtectionBank plots;
+    public static BlockProtection blocks;
     public static Module datatools;
-    public static WorldData worldManager;
-    public static Module environment;
+    public static Module world;
     public static ScriptModule scripts;
-    public static JobAPI jobs;
-    public static DataManager data;
-    public static SkillManager skills;
-    public static Module scrolls;
-    public static ScoreboardAPI scoreboard;
     
     @SideOnly(Side.SERVER)
     public static PermissionManager perms;
@@ -85,8 +70,6 @@ public class KajetansMod
         FluidRegistry.enableUniversalBucket();
     }
     
-    public static int counter = 0;
-    
     @Mod.EventHandler
     public void preInit(FMLPreInitializationEvent e) 
     {
@@ -129,7 +112,7 @@ public class KajetansMod
             return;
         }
         // configuration and error-dummy
-        error = new Module("ERROR", "ERROR", TextFormatting.RED);
+        error = new Module("ERROR", TextFormatting.RED);
         conf = new SimpleConfig(error, "", "config", true);
         
         debugMode = conf.getBoolean("debug", false);
@@ -147,7 +130,7 @@ public class KajetansMod
         }
         
         // Datenbankverbindung
-        databank = new DataBank("DataBank", "DataBank", TextFormatting.RED, conf.getString("user", "root"), conf.getString("password", ""));
+        databank = new DataBank("DataBank", TextFormatting.RED, conf.getString("user", "root"), conf.getString("password", ""));
         if(!databank.openDataBankConnection())
         {
             System.out.println("------------------------------------------------");
@@ -156,87 +139,35 @@ public class KajetansMod
         }
 
         // Scheduler
-        scheduler = new SnuviScheduler("Scheduler", "Scheduler", TextFormatting.GREEN);
+        scheduler = new SnuviScheduler("Scheduler", TextFormatting.GREEN);
         scheduler.registerEvents("me.km.scheduler");
         databank.startReconnecting(scheduler);
 
         // Spielerdatenbank
-        playerbank = new PlayerManager("PlayerBank", "PlayerBank", TextFormatting.RED, databank);
-        // databank is initialized in JobAPI in order to have a reference
-        playerbank.registerEvents("me.km.playerbank");
-        
-        // Grundlegende Commands
-        generalCommands = new Module("GeneralCommands", "Commands", TextFormatting.GOLD);
-        generalCommands.registerCommands(e, "me.km.commands");
-         
-        // Chatmanager
-        chatManager = new ChatManager("ChatManager", "Chat", TextFormatting.BLUE);
-        chatManager.registerCommands(e, "me.km.chatmanager");
-        chatManager.registerEvents("me.km.chatmanager");
-
-        // AFK-Manager
-        afkManager = new Module("AfkManager", "AFK", TextFormatting.GRAY);
-        afkManager.registerCommands(e, "me.km.afk");
-        afkManager.registerEvents("me.km.afk");
+        playerbank = new PlayerManager("PlayerBank", TextFormatting.RED, databank);
 
         // Plot-System
-        plots = new Module("Plots", "Plots", TextFormatting.GOLD);
-        plots.setDataBank(new ProtectionBank(plots, databank));
-        plots.registerCommands(e, "me.km.plots");          
-        plots.registerEvents("me.km.plots");
-
-        // Chests- und Co-Protections
-        blocks = new Module("BlockProtections", "Blocks", TextFormatting.BLUE);
-        blocks.setDataBank(new BlockProtectionBank(blocks, databank));
-        blocks.registerCommands(e, "me.km.blockprotections");          
-        blocks.registerEvents("me.km.blockprotections");
+        plots = new ProtectionBank();    
 
+        // block protections
+        blocks = new BlockProtection();
+        
         // DataTools
-        datatools = new Module("DataTools", "DataTools", TextFormatting.GRAY);
+        datatools = new Module("DataTools", TextFormatting.GRAY);
         datatools.registerCommands(e, "me.km.datatools");          
-        datatools.registerEvents("me.km.datatools");
+        datatools.registerEvent(new DataToolsEvents(datatools));
 
         // Worldmanager
-        worldManager = new WorldData("WorldManager", "Worlds", TextFormatting.RED);
-        worldManager.registerCommands(e, "me.km.dimensions");          
-        worldManager.registerEvents("me.km.dimensions");
+        world = new Module("Worlds", TextFormatting.RED);
+        world.registerCommands(e, "me.km.dimensions");          
+        world.registerEvents("me.km.dimensions");
 
         // Scriptsystem
-        scripts = new ScriptModule("Scripts", "Scripts", TextFormatting.LIGHT_PURPLE);
-        scripts.setDataBank(new ScriptBank(scripts, databank));
+        scripts = new ScriptModule("Scripts", TextFormatting.LIGHT_PURPLE);
         scripts.registerCommands(e, "me.km.snuviscript");          
-        scripts.registerEvents("me.km.snuviscript");
-
-        // Jobsystem
-        jobs = new JobAPI("JobSystem", "Jobs", TextFormatting.GREEN);
-        // databank is initialized in JobAPI in order to have a reference
-        jobs.registerCommands(e, "me.km.jobsystem");      
-        jobs.registerEvents("me.km.jobsystem"); 
-
-        // DataManager
-        data = new DataManager("DataManager", "Data", TextFormatting.GRAY);
-        data.registerEvents("me.km.data"); 
-
-        // Skills
-        skills = new SkillManager("SkillSystem", "Skills", TextFormatting.BLUE);
-        skills.registerCommands(e, "me.km.skills"); 
-        skills.registerEvents("me.km.skills");
-        skills.registerEvents("me.km.effects.passive");
-
-        // Scrollsystem
-        scrolls = new Module("Scrolls", "Scrolls", TextFormatting.BLUE);
-        scrolls.registerCommands(e, "me.km.scrolls"); 
-
-        // Environment
-        environment = new Module("Environment", "Environment", TextFormatting.GREEN);
-        environment.registerCommands(e, "me.km.environment");      
-        environment.registerEvents("me.km.environment");
-
-        // Scoreboard
-        scoreboard = new ScoreboardAPI("Scoreboard", "Scoreboard", TextFormatting.GREEN);
 
         // Permissions
-        perms = new PermissionManager("Permissions", "Perms", TextFormatting.DARK_PURPLE);
+        perms = new PermissionManager("Perms", TextFormatting.DARK_PURPLE);
         perms.registerEvents("me.km.permissions");
         setPermissionManager();
 
@@ -264,29 +195,6 @@ public class KajetansMod
         databank.closeDataBankConnection();
         scheduler.getWorker().stop();
     }
-
-    /*public static void main(String[] args)
-    {
-        // Erstellt alle Enums für die aktiven Effekte
-        PackageHelper.getClassesInIde("me.km.effects.active").stream()
-            .forEach(s -> 
-            {
-                StringBuilder en = new StringBuilder(s.substring(0, s.length() - 6));
-                int i = 1;
-                while(i < en.length())
-                {
-                    if(Character.isUpperCase(en.charAt(i)))
-                    {
-                        en.insert(i, "_");
-                        i++;
-                    } 
-                    i++;
-                }
-                String wusi = "                        (true, " + s + "),";
-                wusi = en.toString().toUpperCase() + wusi.substring(en.length());
-                System.out.println(wusi);
-            });
-    }*/ 
 }
 
 

+ 12 - 27
src/main/java/me/km/ObjectRegistry.java

@@ -6,6 +6,7 @@ import me.km.items.ModItems;
 import me.km.recipes.ModRecipes;
 import net.minecraft.block.Block;
 import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
 import net.minecraft.item.Item;
 import net.minecraft.item.crafting.IRecipe;
 import net.minecraftforge.event.RegistryEvent;
@@ -31,6 +32,16 @@ public class ObjectRegistry
                     missing.remap(Blocks.STONE);   
                 });
     }
+    
+    @SubscribeEvent
+    public static void onItemMissing(RegistryEvent.MissingMappings<Item> e) 
+    {
+        e.getMappings().stream()
+                .forEach((missing) -> 
+                {
+                    missing.remap(Items.APPLE);   
+                });
+    }
 
     @SubscribeEvent
     public static void onItemRegistry(RegistryEvent.Register<Item> e) 
@@ -42,32 +53,6 @@ public class ObjectRegistry
     @SubscribeEvent
     public static void onRecipeRegistry(RegistryEvent.Register<IRecipe> e) 
     {
-        /*if(FMLCommonHandler.instance().getSide() == Side.SERVER)
-        {
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("Registering recipes");*/
-            ModRecipes.init(e.getRegistry());
-        /*}
-        else
-        {
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("_______________________________________");
-            System.out.println("removing recipes");
-            // remove recipes
-            ForgeRegistry<IRecipe> recipeRegistry = (ForgeRegistry<IRecipe>) ForgeRegistries.RECIPES;
-            List<ResourceLocation> recipes = recipeRegistry.getKeys().stream().collect(Collectors.toList());
-            recipes.forEach(key -> recipeRegistry.remove(key));
-        }*/
+        ModRecipes.init(e.getRegistry());
     }
 }

+ 1 - 1
src/main/java/me/km/PackageHelper.java

@@ -48,7 +48,7 @@ public class PackageHelper
         return new ArrayList<>();
     }
     
-    public static URL getPath()
+    private static URL getPath()
     {
         try
         {

+ 0 - 37
src/main/java/me/km/afk/AfkListener.java

@@ -1,37 +0,0 @@
-package me.km.afk;
-
-import me.km.api.Module;
-import me.km.api.ModuleListener;
-import java.util.HashSet;
-import java.util.UUID;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class AfkListener extends ModuleListener
-{
-    private final HashSet<UUID> afk;
-    
-    public AfkListener(Module m) 
-    {
-        super(m);
-        afk = new HashSet<>();
-    }
-    
-    // -------------------------------------------------------------------------
-    // Afk abrufen und setzen
-    // -------------------------------------------------------------------------
-    
-    public boolean isAfk(EntityPlayer p)
-    {
-        return afk.contains(p.getUniqueID());
-    }
-    
-    public void setAfk(EntityPlayer p, boolean b)
-    {
-        if(b)
-        {
-            afk.add(p.getUniqueID());
-            return;
-        }
-        afk.remove(p.getUniqueID());
-    }
-}

+ 0 - 69
src/main/java/me/km/afk/CommandAFK.java

@@ -1,69 +0,0 @@
-package me.km.afk;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandAFK extends ModuleCommand
-{
-    public CommandAFK(Module m) 
-    {
-        super("afk", m);
-        super.setDescription("Schaltet den AFK-Zustand ein / aus");
-        super.setUsage("/afk [player]");
-        super.setPermission(Permissions.AFK);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        try
-        {
-            if(!KajetansMod.perms.hasPermission(cs, Permissions.AFK))
-            {
-                throw new IndexOutOfBoundsException();
-            }   
-            affectedPlayer = Utils.getPlayerByName(arg[0]); 
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            affectedPlayer = (EntityPlayer) cs;
-        }
-
-        AfkListener man = KajetansMod.afkManager.getEvent(AfkListener.class);
-        if(man.isAfk(affectedPlayer))
-        {
-            man.setAfk(affectedPlayer, false);
-            this.getModule().send(affectedPlayer, "Du bist nicht mehr AFK.");
-            if(!cs.equals(affectedPlayer))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " ist nicht mehr AFK.");
-            }
-            return true;
-        }
-        man.setAfk(affectedPlayer, true);
-        this.getModule().send(affectedPlayer, "Du bist nun AFK.");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " ist nun AFK.");
-        }
-        return true;
-    }
-}

+ 0 - 64
src/main/java/me/km/api/GlobalText.java

@@ -1,64 +0,0 @@
-package me.km.api;
-
-public class GlobalText 
-{
-    public static String cantFindPlayer(String name)
-    {
-        return "Der Spieler '" + name + "' wurde nicht gefunden.";
-    }
-    
-    public static String missingParameter()
-    {
-        return "Dem Command fehlt mindestens ein Parameter.";
-    }
-    
-    public static String onlyPlayer()
-    {
-        return "Dieser Command kann nur von einem Spieler ausgeführt werden.";
-    }
-    
-    public static String noNaturalNumber()
-    {
-        return "Die gegebene Zahl muss eine natürliche Zahl sein.";
-    }
-    
-    public static String noPositiveNaturalNumber()
-    {
-        return "Die gegebene Zahl muss eine positive, natürliche Zahl sein.";
-    }
-    
-    public static String noIntegerNumber()
-    {
-        return "Die gegebene Zahl muss eine ganze Zahl sein.";
-    }
-    
-    public static String noSkills()
-    {
-        return "Skills sind in dieser Welt deaktiviert.";
-    }
-    
-    public static String noScrolls()
-    {
-        return "Zauberschriftrollen sind in dieser Welt deaktiviert.";
-    }
-    
-    public static String shouldNotHappen()
-    {
-        return "Dieser Fehler sollte nie passieren.";
-    }
-    
-    public static String notImplementedYet()
-    {
-        return "Dieses Feature ist noch nicht implementiert.";
-    }
-    
-    public static String noPermission()
-    {
-        return "Du hast keine Rechte für diesen Command.";
-    }
-    
-    public static String Spacer()
-    {
-        return "§0-----------------------------------------------------";
-    }
-}

+ 0 - 100
src/main/java/me/km/api/MessageSender.java

@@ -1,100 +0,0 @@
-package me.km.api;
-
-import me.km.KajetansMod;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.text.ITextComponent;
-import net.minecraft.util.text.TextFormatting;
-import net.minecraft.util.text.TextComponentString;
-import net.minecraft.world.World;
-
-public class MessageSender 
-{
-    private final ITextComponent prefixes;
-    private final TextFormatting colors;
-    
-    public MessageSender(String name, TextFormatting color)
-    {
-        TextComponentString text = new TextComponentString(name);
-        text.getStyle().setColor(color);
-        prefixes = new TextComponentString("[").appendSibling(text).appendText("] ");
-        colors = color;
-    }
-
-    public void send(ICommandSender cs, String msg)
-    {
-        if(cs == null)
-        {
-            return;
-        }
-        cs.sendMessage(prefixes.createCopy().appendText(msg));
-    }
-
-    public void sendToPlayers(World w, double x, double y, double z, double radius, String msg)
-    {
-        ITextComponent s = prefixes.createCopy().appendText(msg);
-        Utils.getEntities(w, x, y, z, radius, EntityPlayer.class).forEach(p -> ((EntityPlayer) p).sendMessage(s));
-    }
-    
-    public void sendBroadcast(String msg)
-    {
-        KajetansMod.server.getPlayerList().sendMessage(prefixes.createCopy().appendText(msg));
-    }
-    
-    public void sendListElement(ICommandSender cs, String msg)
-    {
-        if(cs == null)
-        {
-            return;
-        }
-        TextComponentString text = new TextComponentString("");
-        TextComponentString text2 = new TextComponentString(" - ");
-        text2.getStyle().setColor(colors);
-        text.appendSibling(text2);
-        cs.sendMessage(text.appendText(msg));
-    } 
-    
-    public void sendHelpListElement(ICommandSender cs, String msg, String msg2)
-    {
-        if(cs == null)
-        {
-            return;
-        }
-        TextComponentString text = new TextComponentString("");
-        TextComponentString text2 = new TextComponentString(" - " + msg + " ");
-        text2.getStyle().setColor(colors);
-        text.appendSibling(text2);
-        cs.sendMessage(text.appendText(msg2));
-    }
-    
-    public void sendWarning(ICommandSender cs, String msg)
-    {
-        if(cs == null)
-        {
-            return;
-        }
-        TextComponentString text = new TextComponentString(msg);
-        text.getStyle().setColor(TextFormatting.RED);
-        cs.sendMessage(prefixes.createCopy().appendSibling(text));
-    }
-   
-    public void sendToConsole(String msg)
-    {
-        send(KajetansMod.server, msg);
-    }
-    
-    public void sendListElementToConsole(String msg)
-    {
-        sendListElement(KajetansMod.server, msg);
-    }
-    
-    public void sendHelpListElementToConsole(String msg, String msg2)
-    {
-        sendHelpListElement(KajetansMod.server, msg, msg2);
-    }
-    
-    public void sendWarningToConsole(String msg)
-    {
-        sendWarning(KajetansMod.server, msg);
-    }
-}

+ 0 - 127
src/main/java/me/km/api/Module.java

@@ -1,127 +0,0 @@
-package me.km.api;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import me.km.PackageHelper;
-import me.km.databank.SimpleDataBank;
-import net.minecraft.util.text.TextFormatting;
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
-import net.minecraftforge.fml.common.eventhandler.EventBus;
-
-public class Module extends MessageSender
-{
-    private final HashMap<String, ModuleCommand> commands;
-    private final String mname;
-    private final HashMap<Class, ModuleListener> events;
-    private SimpleDataBank bank;
-    
-    public Module(String mname, String prefix, TextFormatting color)
-    {
-        super(prefix, color);
-        commands = new HashMap<>();
-        this.mname = mname;
-        events = new HashMap<>();
-        bank = null;
-        
-        super.sendToConsole("Das Modul " + color + mname + TextFormatting.RESET + " wurde geladen.");
-    }
-    
-    //--------------------------------------------------------------------------
-    // Allgemeine Rückgaben
-    //--------------------------------------------------------------------------
-    
-    public String getName()
-    {
-        return mname;
-    }
-    
-    //--------------------------------------------------------------------------
-    // DataBank
-    //--------------------------------------------------------------------------
-    
-    public void setDataBank(SimpleDataBank bank)
-    {
-        this.bank = bank;
-        this.sendToConsole("Die Datenbank wurde geladen.");
-    }
-    
-    @SuppressWarnings("unchecked")
-    public <T extends SimpleDataBank> T getDataBank(Class<T> c)
-    {
-        return (T) bank;
-    }  
-    
-    //--------------------------------------------------------------------------
-    // Command-Methoden
-    //--------------------------------------------------------------------------
-    
-    public void registerCommand(FMLServerStartingEvent e, ModuleCommand command)
-    {
-        e.registerServerCommand(command);
-        if(commands.put(command.getName(), command) != null) 
-        {
-            this.sendToConsole("Der Command '" + command.getName() + "' wurde ein weiteres Mal geladen.");
-        }
-    }
-    
-    @SuppressWarnings("unchecked")
-    public void registerCommands(FMLServerStartingEvent e, String packageName)
-    {
-        PackageHelper.getClasses(packageName).stream().filter(c -> ModuleCommand.class.isAssignableFrom(c)).forEach((Class c) -> 
-        {
-            try 
-            {
-                ModuleCommand command = (ModuleCommand) c.getDeclaredConstructor(Module.class).newInstance(this);
-                registerCommand(e, command);
-            }
-            catch(ClassCastException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex)
-            { 
-                this.sendToConsole("Die Klasse '" + c + "' wurde nicht geladen.");
-            }
-        });
-        this.sendToConsole("Alle Commands wurden geladen.");
-    }
-    
-    public ModuleCommand getCommand(String name)
-    {
-        return commands.get(name);
-    }
-    
-    @SuppressWarnings("unchecked")
-    public <T extends ModuleCommand> T getCommand(Class<T> c)
-    {   
-        return (T) commands.get(c.getSimpleName().substring(7).toLowerCase());
-    }
-    
-    //--------------------------------------------------------------------------
-    // Event-Methoden
-    //--------------------------------------------------------------------------
-    
-    @SuppressWarnings("unchecked")
-    public void registerEvents(String packageName)
-    {
-        EventBus bus = MinecraftForge.EVENT_BUS;
-        PackageHelper.getClasses(packageName).stream().filter(c -> ModuleListener.class.isAssignableFrom(c)).forEach((Class c) -> 
-        {
-            try 
-            {   
-                ModuleListener l = (ModuleListener) c.getDeclaredConstructor(Module.class).newInstance(this);
-                events.put(c, l);
-                bus.register(l);
-            }
-            catch(NoSuchMethodException | ClassCastException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex)
-            {
-                this.sendToConsole("Fehler bei " + c);
-                this.sendToConsole(ex.toString());
-            }
-        });
-        this.sendToConsole("Alle Events wurden geladen.");
-    }
-    
-    @SuppressWarnings("unchecked")
-    public <T extends ModuleListener> T getEvent(Class<T> c)
-    {
-        return (T) events.get(c);
-    }
-}

+ 0 - 16
src/main/java/me/km/api/ModuleListener.java

@@ -1,16 +0,0 @@
-package me.km.api;
-
-public abstract class ModuleListener
-{
-    private final Module m;
-    
-    public ModuleListener(Module m) 
-    {
-        this.m = m;
-    }
-    
-    public Module getModule()
-    {
-        return m;
-    }
-}

+ 0 - 107
src/main/java/me/km/api/SimpleConfig.java

@@ -1,107 +0,0 @@
-package me.km.api;
-
-import java.io.File;
-import me.hammerle.snuviscript.code.Script;
-import me.hammerle.snuviscript.config.SnuviConfig;
-import me.km.dimensions.ModDimensions;
-import me.km.exception.IllegalItemStackStringException;
-import me.km.utils.ItemStackUtils;
-import net.minecraft.item.ItemStack;
-
-public class SimpleConfig extends SnuviConfig
-{                   
-    public SimpleConfig(Module m, String path, String name, boolean load)
-    {    
-        super((String message, Exception ex, String function, String scriptname, Script sc, int line) -> 
-        {
-            m.sendToConsole("error in config '" + name + "'");
-            if(message != null)
-            {
-                m.sendListElementToConsole(message);
-            }
-            if(ex != null)
-            {
-                m.sendListElementToConsole(ex.getClass().getSimpleName());
-            }
-            if(function != null)
-            {
-                m.sendHelpListElementToConsole("function", function);
-            }
-            if(line != -1)
-            {
-                m.sendHelpListElementToConsole("line", function);
-            }
-        }, path, name);
-        
-        if(load && exists())
-        {
-            load();
-        }
-    }   
-    
-    public SimpleConfig(Module m, Script sc, String path, String name, boolean load)
-    {
-        super(sc, path, name);
-        if(load && exists())
-        {
-            load();
-        }
-    }
-    
-    public static File[] getFiles(String path)
-    {
-        return new File("./" + path).listFiles();
-    }
-    
-    // -----------------------------------------------------------------------------------
-    // get
-    // -----------------------------------------------------------------------------------
-    
-    public Location getLocation(String key)
-    {
-        String s = getString(key + ".world");
-        if(s == null)
-        {
-            return null;
-        }
-        return new Location(ModDimensions.getWorldFromName(s), 
-                getDouble(key + ".x", 0), getDouble(key + ".y", 0), getDouble(key + ".z", 0),
-                getFloat(key + ".yaw", 0), getFloat(key + ".pitch", 0));
-    }
-    
-    public ItemStack getItemStack(String key)
-    {
-        Object s = conf.get(key);
-        if(s == null)
-        {
-            return ItemStack.EMPTY;
-        }
-        try
-        {
-            return ItemStackUtils.getStackFromNbtString(s.toString());
-        }
-        catch(IllegalItemStackStringException ex)
-        {
-            return ItemStack.EMPTY;
-        }
-    }
-    
-    // -----------------------------------------------------------------------------------
-    // Add Data
-    // -----------------------------------------------------------------------------------
-      
-    public void setLocation(String key, Location l)
-    {
-        set(key + ".world", l.getWorld().getWorldInfo().getWorldName());
-        set(key + ".x", l.getX());
-        set(key + ".y", l.getY());
-        set(key + ".z", l.getZ());
-        set(key + ".yaw", l.getYaw());
-        set(key + ".pitch", l.getPitch());
-    }
-    
-    public void setItemStack(String key, ItemStack stack)
-    {
-        set(key, ItemStackUtils.getNbtString(stack));
-    }
-}

+ 17 - 41
src/main/java/me/km/blockprotections/BlockProtection.java

@@ -1,9 +1,8 @@
 package me.km.blockprotections;
 
 import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.Module;
-import me.km.api.ModuleListener;
+import me.km.module.Module;
+import me.km.utils.Utils;
 import me.km.permissions.Permissions;
 import net.minecraft.block.Block;
 import net.minecraft.block.BlockContainer;
@@ -13,58 +12,46 @@ import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.init.Blocks;
 import net.minecraft.util.EnumHand;
 import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.text.TextFormatting;
 import net.minecraft.world.World;
 import net.minecraftforge.event.entity.player.PlayerInteractEvent;
 import net.minecraftforge.event.world.BlockEvent;
 import net.minecraftforge.fml.common.eventhandler.EventPriority;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 
-public class BlockProtection extends ModuleListener
+public class BlockProtection extends Module
 {
     private final BlockProtectionBank bank;
     
-    public BlockProtection(Module m) 
+    public BlockProtection() 
     {
-        super(m);
-        bank = KajetansMod.blocks.getDataBank(BlockProtectionBank.class);
+        super("Blocks", TextFormatting.BLUE);
+        bank = new BlockProtectionBank();
+        registerEvent(this);
     }
     
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void onBlockPlace(BlockEvent.PlaceEvent e)
     {
-        if(!KajetansMod.worldManager.getWorldPreferences(e.getWorld()).blockProtection)
-        {
-            return;
-        }
         Block b = e.getPlacedBlock().getBlock();
-        if(!Utils.shouldBeProtected(b))
-        {
-            return;
-        }     
         EntityPlayer p = e.getPlayer();
         World w = e.getWorld();
         
-        // Deny placing chests near other protected chests
-        if(b == Blocks.CHEST || b == Blocks.TRAPPED_CHEST)
+        if(b == Blocks.CHEST || b == Blocks.TRAPPED_CHEST) // Deny placing chests near other protected chests
         {
             BlockPos otherChest = Utils.getSameNearbyBlock(w, e.getPos(), b);
-            if(otherChest != null && !bank.hasAccess(otherChest, w, p.getGameProfile(), true) && !KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
+            if(otherChest != null && !bank.hasAccess(otherChest, w, p) && !KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
             {
-                this.getModule().send(p, "Du darfst diesen Block hier nicht setzen");
                 e.setCanceled(true);
-                return;
             }        
         } 
-        
-        // Deny placing of hoppers under blocks
-        if(b == Blocks.HOPPER)
+        else if(b == Blocks.HOPPER) // Deny placing of hoppers under blocks
         {
             BlockPos pos = e.getPos().add(0, 1, 0);
             if(w.getBlockState(pos).getBlock() instanceof BlockContainer)
             {
-                if(!bank.hasAccess(pos, w, p, true) && !KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
+                if(!bank.hasAccess(pos, w, p) && !KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
                 {
-                    this.getModule().send(p, "Du darfst diesen Block hier nicht setzen");
                     e.setCanceled(true);
                 }               
             }            
@@ -74,10 +61,6 @@ public class BlockProtection extends ModuleListener
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void onBlockBreak(BlockEvent.BreakEvent e)
     {
-        if(!KajetansMod.worldManager.getWorldPreferences(e.getWorld()).blockProtection)
-        {
-            return;
-        }
         EntityPlayer p = e.getPlayer();
         IBlockState state = e.getState();
         if(Utils.shouldBeProtected(state.getBlock()))
@@ -88,24 +71,19 @@ public class BlockProtection extends ModuleListener
                 pos = pos.add(0, -1, 0);
             } 
             World w = e.getWorld();
-            if(!bank.doesExist(pos, w))
+            if(bank.hasAccess(pos, w, p) || KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
             {
-                return;
-            }       
-            if(bank.hasAccess(pos, w, p, false) || KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
-            {
-                bank.removeBlock(pos, w, p);
+                bank.remove(pos, w);
                 return;
             }   
             e.setCanceled(true);
-            this.getModule().send(p, "Du hast keinen Zugriff auf diesen Block.");
         }             
     }
     
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void onContainerOpen(PlayerInteractEvent.RightClickBlock e)
     {
-        if(e.getHand() != EnumHand.MAIN_HAND || !KajetansMod.worldManager.getWorldPreferences(e.getWorld()).blockProtection)
+        if(e.getHand() != EnumHand.MAIN_HAND)
         {
             return;
         }
@@ -120,11 +98,9 @@ public class BlockProtection extends ModuleListener
         {
             pos = pos.add(0, -1, 0);
         }
-        if(bank.hasAccess(pos, e.getWorld(), p, true) || KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
+        if(!bank.hasAccess(pos, e.getWorld(), p) && !KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS))
         {
-            return;
+            e.setCanceled(true);   
         }  
-        this.getModule().send(p, "Du hast keinen Zugriff auf diesen Block.");
-        e.setCanceled(true);   
     }
 }

+ 164 - 171
src/main/java/me/km/blockprotections/BlockProtectionBank.java

@@ -1,245 +1,238 @@
 package me.km.blockprotections;
 
-import com.mojang.authlib.GameProfile;
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.playerbank.PlayerBank;
-import me.km.databank.SimpleDataBank;
 import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-import me.km.databank.DataBank;
-import me.km.dimensions.ModDimensions;
+import me.km.databank.IStatement;
+import me.km.world.ModDimensions;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.World;
 
-public class BlockProtectionBank extends SimpleDataBank
+public class BlockProtectionBank
 {  
-    public BlockProtectionBank(Module m, DataBank c) 
+    public BlockProtectionBank() 
     {
-        super(m, c);
-        
-        // BlockProtectionBank - Coords und ID
-        if(!this.doesTableExist("block"))
-        {
-            this.getModule().sendToConsole("Die Block-Protection-Bank wurde nicht gefunden, erstelle ...");
-            if(this.update("CREATE TABLE IF NOT EXISTS block ("
+        KajetansMod.databank.execute("CREATE TABLE IF NOT EXISTS block ("
                     + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
                     + "x int(11) NOT NULL, "
                     + "y int(11) NOT NULL, "
                     + "z int(11) NOT NULL, "
                     + "world_name varchar(20) NOT NULL, "
-                    + "UNIQUE KEY uniq_block_pos (world_name,x,y,z));", false))
-            {
-                this.getModule().sendToConsole("Die Block-Protection-Bank wurde erstellt.");
-            }
-        }
-        else
-        {
-            this.getModule().sendToConsole("Die Block-Protection-Bank wurde gefunden.");
-        }
-        
+                    + "UNIQUE KEY uniq_block_pos (world_name,x,y,z));");
         
-        // BlockProtectionDataBank - Coords und ID
-        if(!this.doesTableExist("block_grant"))
-        {
-            this.getModule().sendToConsole("Die Block-Protection-Data-Bank wurde nicht gefunden, erstelle ...");
-            if(this.update("CREATE TABLE block_grant ("
+        KajetansMod.databank.execute("CREATE TABLE IF NOT EXISTS block_grant ("
                     + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
                     + "block_id int(11) NOT NULL, "
                     + "player_id int(11) NOT NULL, "
                     + "INDEX block_id (block_id), "
                     + "UNIQUE KEY (block_id, player_id), "
-                    + "CONSTRAINT block_grant_ibfk_1 FOREIGN KEY (block_id) REFERENCES block (id) ON DELETE CASCADE);", false))
-            {
-                this.getModule().sendToConsole("Die Block-Protection-Data-Bank wurde erstellt.");
-            }
-        }
-        else
-        {
-            this.getModule().sendToConsole("Die Block-Protection-Data-Bank wurde gefunden.");
-        }
+                    + "CONSTRAINT block_grant_ibfk_1 FOREIGN KEY (block_id) REFERENCES block (id) ON DELETE CASCADE);");
     }  
     
-    //--------------------------------------------------------------------------
-    // Allgemeine Texte
-    //--------------------------------------------------------------------------
+    private final IStatement addBlock = KajetansMod.databank.createStatement(
+            "INSERT IGNORE INTO block (x, y, z, world_name) VALUES (?, ?, ?, ?);");
     
-    private void printError(EntityPlayer p)
-    {
-        this.getModule().sendWarning(p, "Es ist ein Fehler aufgetreten.");
-    }
+    private final IStatement addBlockGrant = KajetansMod.databank.createStatement(
+            "INSERT IGNORE INTO block_grant (block_id, player_id) VALUES (LAST_INSERT_ID(), ?);");
 
-    //--------------------------------------------------------------------------
-    // Block-Methoden
-    //--------------------------------------------------------------------------
-    
-    public void addBlock(BlockPos pos, World w, EntityPlayer p, String pname)
+    public void add(int x, int y, int z, String worldName, int playerId)
     {
-        if(doesExist(pos, w))
+        try
         {
-            this.getModule().send(p, "Der Block ist bereits gesichert.");
-            return;
+            addBlock.validate();
+            addBlock.setInt(1, x);
+            addBlock.setInt(2, y);
+            addBlock.setInt(3, z);
+            addBlock.setString(4, worldName);
+            addBlock.executeUpdate();
+            
+            addBlockGrant.validate();
+            addBlockGrant.setInt(1, playerId);
+            addBlockGrant.executeUpdate();
         }
-        Integer id;
-        pname = makeStringSafe(pname);
-        if(pname != null)
+        catch(SQLException ex)
         {
-            id = KajetansMod.playerbank.getDataBank(PlayerBank.class).getIdByName(pname);
-            if(id == null)
-            {
-                this.getModule().send(p, GlobalText.cantFindPlayer(pname));
-                return;  
-            }
+            ex.printStackTrace();
         }
-        else
+    }
+    
+    private final IStatement deleteBlock = KajetansMod.databank.createStatement(
+            "DELETE FROM block WHERE x=? AND y=? AND z=? AND world_name=?;");
+    
+    public void remove(int x, int y, int z, String worldName)
+    {
+        try
         {
-            id = KajetansMod.playerbank.getDataBank(PlayerBank.class).getIdByUUID(p.getUniqueID().toString());
-            if(id == null)
-            {
-                this.getModule().send(p, GlobalText.cantFindPlayer(pname));
-                return;  
-            }
-        }      
-
-        if(this.update("INSERT INTO block (x,y,z,world_name) "
-            + "VALUES (" + pos.getX() + "," + pos.getY() + "," + pos.getZ() + ",'" + ModDimensions.getWorldName(w) + "');", false) &&
-           this.update("INSERT INTO block_grant (block_id,player_id) VALUES (LAST_INSERT_ID(), " + id + ");", false))
+            deleteBlock.validate();
+            deleteBlock.setInt(1, x);
+            deleteBlock.setInt(2, y);
+            deleteBlock.setInt(3, z);
+            deleteBlock.setString(4, worldName);
+            deleteBlock.executeUpdate();
+        }
+        catch(SQLException ex)
         {
-            this.getModule().send(p, "Der Block wurde gesichert.");
-            return;
+            ex.printStackTrace();
         }
-        printError(p);
     }
     
-    public void removeBlock(BlockPos pos, World w, EntityPlayer p)
+    public void remove(BlockPos pos, World w)
     {
-        if(this.update("DELETE FROM block WHERE x=" + pos.getX() + 
-                " AND y=" + pos.getY() + " AND z=" + pos.getZ() + 
-                " AND world_name='" + ModDimensions.getWorldName(w) + "';", false))
-        {
-            this.getModule().send(p, "Die Block-Sicherung wurde gelöscht.");
-            return;
-        }
-        printError(p); 
+        remove(pos.getX(), pos.getY(), pos.getZ(), ModDimensions.getWorldName(w));
     }
     
-    public void addPlayer(BlockPos pos, World w, GameProfile p, EntityPlayer executor)
+    private final IStatement addPlayer = KajetansMod.databank.createStatement(
+            "INSERT IGNORE INTO block_grant (block_id, player_id) SELECT id, ? FROM block WHERE world_name=? AND x=? AND y=? AND z=?;");
+    
+    public boolean addPlayer(int x, int y, int z, String worldName, int playerId)
     {
-        if(hasAccess(pos, w, p, false))
+        if(hasAccess(x, y, z, worldName, playerId))
         {
-            this.getModule().send(executor, "Der Spieler '" + p.getName() + "' ist bereits vorhanden.");
-            return;
+            return false;
         }
-        Integer id = KajetansMod.playerbank.getDataBank(PlayerBank.class).getIdByUUID(p.getId().toString());
-        if(id == null)
+        try
         {
-            this.getModule().send(executor, GlobalText.cantFindPlayer(p.getName()));
-            return;
+            addPlayer.validate();
+            addPlayer.setInt(1, playerId);
+            addPlayer.setString(2, worldName);
+            addPlayer.setInt(3, x);
+            addPlayer.setInt(4, y);
+            addPlayer.setInt(5, z);
+            addPlayer.executeUpdate();
+            return true;
         }
-        if(this.update("INSERT INTO block_grant (block_id,player_id) "
-                + "SELECT id, " + id
-                + " FROM block WHERE world_name='" + ModDimensions.getWorldName(w) + "' AND x=" + pos.getX() + " AND y=" + pos.getY()
-                + " AND z=" + pos.getZ() + ";", false))
+        catch(SQLException ex)
         {
-            this.getModule().send(executor, "Der Spieler '" + p.getName() + "' wurde hinzugefügt.");
-            return;
+            ex.printStackTrace();
+            return false;
         }
-        printError(executor);
     }
     
-    public void removePlayer(BlockPos pos, World w, GameProfile p, EntityPlayer executor)
+    private final IStatement removePlayer = KajetansMod.databank.createStatement(
+            "DELETE block_grant FROM block_grant LEFT JOIN block ON block.id = block_grant.block_id " +
+            "WHERE block_grant.player_id = ? AND block.world_name=? AND block.x=? AND block.y=? AND block.z=?;");
+    
+    public boolean removePlayer(int x, int y, int z, String worldName, int playerId)
     {
-        if(!hasAccess(pos, w, p, false))
+        if(!hasAccess(x, y, z, worldName, playerId))
         {
-            this.getModule().send(executor, "Der Spieler '" + p.getName() + "' ist nicht vorhanden.");
-            return;
+            return false;
         }
-        Integer id = KajetansMod.playerbank.getDataBank(PlayerBank.class).getIdByUUID(p.getId().toString());
-        if(id == null)
+        try
         {
-            this.getModule().send(executor, GlobalText.cantFindPlayer(p.getName()));
-            return;
+            removePlayer.validate();
+            removePlayer.setInt(1, playerId);
+            removePlayer.setString(2, worldName);
+            removePlayer.setInt(3, x);
+            removePlayer.setInt(4, y);
+            removePlayer.setInt(5, z);
+            removePlayer.executeUpdate();
+            return true;
         }
-        if(this.update(
-            "DELETE block_grant FROM block_grant " +
-            "LEFT JOIN block ON block.id = block_grant.block_id " +
-            "WHERE block_grant.player_id = " + id + " AND " +
-            "block.world_name='" + ModDimensions.getWorldName(w) + "' AND block.x=" + pos.getX() + 
-            " AND block.y=" + pos.getY() + " AND block.z=" + pos.getZ() + ";", false))
+        catch(SQLException ex)
         {
-            this.getModule().send(executor, "Der Spieler '" + p.getName() + "' wurde entfernt.");
-            return;
+            ex.printStackTrace();
+            return false;
         }
-        printError(executor);
     }
     
-    public boolean hasAccess(BlockPos pos, World w, GameProfile p, boolean check)
+    private final IStatement hasAccess = KajetansMod.databank.createStatement(
+            "Select id from block_grant WHERE id = ? AND player_id = ?;");
+    
+    public boolean hasAccess(int x, int y, int z, String worldName, int playerId)
     {
-        if(check && !doesExist(pos, w))
+        int id = getId(x, y, z, worldName);
+        if(id == -1)
         {
             return true;
         }
-        return this.getFirst(
-            "Select block_grant.id from block_grant " +
-            "LEFT JOIN players ON players.id = block_grant.player_id LEFT JOIN block ON block.id = block_grant.block_id " +
-            "WHERE players.uuid = '" + p.getId().toString() + "' AND " +
-            "block.world_name='" + ModDimensions.getWorldName(w) + "' AND block.x=" + pos.getX() +
-            " AND block.y=" + pos.getY() + " AND block.z=" + pos.getZ() + ";", Integer.class) != null; 
+        try
+        {
+            hasAccess.validate();
+            hasAccess.setInt(1, id);
+            hasAccess.setInt(2, playerId);
+            try(ResultSet rs = hasAccess.executeQuery())
+            {
+                return rs.next();
+            }
+            catch(SQLException ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+        catch(SQLException ex)
+        {
+            ex.printStackTrace();
+        }
+        return false;
     }
     
-    public boolean hasAccess(BlockPos pos, World w, EntityPlayer p, boolean check)
+    public boolean hasAccess(BlockPos pos, World w, EntityPlayer p)
     {
-        return hasAccess(pos, w, p.getGameProfile(), check);
+        return hasAccess(pos.getX(), pos.getY(), pos.getZ(), ModDimensions.getWorldName(w), KajetansMod.playerbank.getPlayerId(p));
     }
     
-    public boolean doesExist(BlockPos pos, World w)
-    {
-        return this.getFirst(
-            "SELECT id FROM block WHERE world_name='" + ModDimensions.getWorldName(w) + 
-            "' AND x=" + pos.getX() + " AND y=" + pos.getY() + 
-            " AND z=" + pos.getZ() + ";", Integer.class) != null;
-    }
+    private final IStatement getId = KajetansMod.databank.createStatement(
+            "SELECT id FROM block WHERE world_name=? AND x=? AND y=? AND z=?;");
     
-    public void printInfo(BlockPos pos, World w, EntityPlayer p)
+    public int getId(int x, int y, int z, String worldName)
     {
-        Module m = this.getModule();
-        if(!doesExist(pos, w))
-        {
-            m.send(p, "Dieser Block ist nicht gesichert.");
-            return;
-        }
-        ArrayList<Object> list = this.getFirstColumn(
-            "Select block_grant.player_id from block_grant " +
-            "LEFT JOIN block ON block.id = block_grant.block_id " +
-            "WHERE block.world_name='" + ModDimensions.getWorldName(w) + "' AND block.x=" + pos.getX() +
-            " AND block.y=" + pos.getY() + " AND block.z=" + pos.getZ() + ";"); 
-        if(list == null)
-        {
-            printError(p);
-            return;
+        try
+        {
+            getId.validate();
+            getId.setString(1, worldName);
+            getId.setInt(2, x);
+            getId.setInt(3, y);
+            getId.setInt(4, z);
+            try(ResultSet rs = getId.executeQuery())
+            {
+                rs.next();
+                return rs.getInt(1);
+            }
+            catch(SQLException ex)
+            {
+                ex.printStackTrace();
+            }
         }
-        if(list.isEmpty())
+        catch(SQLException ex)
         {
-            m.send(p, "Dieser Block ist gesichert, gehört aber niemanden.");
-            return;
+            ex.printStackTrace();
         }
-        m.send(p, "Dieser Block gehört den folgenden Spielern:");
-        PlayerBank pb = KajetansMod.playerbank.getDataBank(PlayerBank.class);
-        list.stream().map(id -> pb.getNameById((int) id)).filter(name -> name != null).forEach(name ->
-        {
-            m.sendListElement(p, name);
-        });
-    }   
+        return -1;
+    }
+    
+    private final IStatement getPlayerIds = KajetansMod.databank.createStatement(
+            "SELECT player_id FROM block LEFT JOIN block_grant ON block_grant.id = block.id WHERE world_name=? AND x=? AND y=? AND z=?;");
     
-    private String makeStringSafe(String s)
+    public ArrayList<Integer> getAllIds(int x, int y, int z, String worldName)
     {
-        if(s == null)
+        ArrayList<Integer> list = new ArrayList<>();
+        try
+        {
+            getPlayerIds.validate();
+            getPlayerIds.setString(1, worldName);
+            getPlayerIds.setInt(2, x);
+            getPlayerIds.setInt(3, y);
+            getPlayerIds.setInt(4, z);
+            try(ResultSet rs = getPlayerIds.executeQuery())
+            {
+                while(rs.next())
+                {
+                    list.add(rs.getInt(1));
+                }
+                return list;
+            }
+            catch(SQLException ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+        catch(SQLException ex)
         {
-            return null;
-        }    
-        return s.replace("'", "").replace("\"", "");
-    }
+            ex.printStackTrace();
+        }
+        return list;
+    } 
 }

+ 0 - 203
src/main/java/me/km/blockprotections/CommandBlock.java

@@ -1,203 +0,0 @@
-package me.km.blockprotections;
-
-import com.mojang.authlib.GameProfile;
-import java.util.ArrayList;
-import java.util.List;
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import me.km.scheduler.SnuviScheduler;
-import net.minecraft.block.Block;
-import net.minecraft.block.BlockDoor;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.init.Blocks;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class CommandBlock extends ModuleCommand
-{
-    private final BlockProtectionBank bank;
-    private int counter;
-    private int index;
-    private List<BlockPos> locs;
-    private final ArrayList<Block> blocks;
-    private boolean checker;
-    
-    public CommandBlock(Module m) 
-    {
-        super("block", m);
-        super.setDescription("Zeigt alles für die Block-Verwaltung");
-        super.setUsage("/block für die Hilfe");
-        super.setPermission(Permissions.BLOCK);
-        super.addAlias("blocks");
-        super.addAlias("pro");
-        super.addAlias("protect");
-        
-        bank = KajetansMod.blocks.getDataBank(BlockProtectionBank.class);
-        locs = new ArrayList<>();
-        blocks = new ArrayList<>();
-    }
-    
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg)   
-    {
-        if(!(cs instanceof EntityPlayerMP))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        Module m = this.getModule();
-        EntityPlayerMP p = (EntityPlayerMP) cs;
-        World w = p.getEntityWorld();
-        if(!KajetansMod.worldManager.getWorldPreferences(w).blockProtection && !KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_BYPASS))
-        {
-            m.send(cs, "Du darfst hier keine Blöcke schützen.");
-            return true;
-        }
-        if(arg.length > 0)
-        {
-            BlockPos pos = Utils.getTargetBlock(p);  
-            IBlockState state = w.getBlockState(pos);
-            Block b = state.getBlock();
-            if(!Utils.shouldBeProtected(b) && !KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_ALL))
-            {
-                m.send(cs, "Du kannst diesen Block nicht bearbeiten.");
-                m.send(cs, "Du bist auf folgenden Block gerichtet: " + b.toString());
-                return true;
-            }                  
-            if(Utils.getStateValue(state, BlockDoor.HALF) == BlockDoor.EnumDoorHalf.UPPER)
-            {
-                pos = pos.add(0, -1, 0);
-            } 
-            switch(arg[0])
-            {
-                case "protect":  
-                {
-                    String name = null;
-                    if(arg.length >= 2 && KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_OTHER))
-                    {
-                        name = arg[1];
-                    }
-                    bank.addBlock(pos, w, p, name);
-                    if(b != Blocks.CHEST && b != Blocks.TRAPPED_CHEST)
-                    {
-                        return true;
-                    }
-                    BlockPos otherChest = Utils.getSameNearbyBlock(w, pos, b);
-                    if(otherChest != null)
-                    {
-                        bank.addBlock(otherChest, w, p, name); 
-                    }
-                    return true;
-                }
-                case "remove":
-                {
-                    if(!bank.doesExist(pos, w))
-                    {
-                        this.getModule().send(p, "Der Block ist nicht gesichert.");
-                        return true;
-                    }
-                    if(!bank.hasAccess(pos, w, p, false) && !KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_BYPASS))
-                    {
-                        m.send(cs, "Du hast keinen Zugriff auf diesen Block.");
-                        return true;
-                    }
-                    bank.removeBlock(pos, w, p);
-                    if(b != Blocks.CHEST && b != Blocks.TRAPPED_CHEST)
-                    {
-                        return true;
-                    }
-                    BlockPos otherChest = Utils.getSameNearbyBlock(w, pos, b);
-                    if(otherChest != null)
-                    {
-                        bank.removeBlock(otherChest, w, p); 
-                    }
-                    return true;
-                }
-                case "info":
-                {
-                    bank.printInfo(pos, w, p);
-                    return true;
-                }
-                case "share":
-                {
-                    if(arg.length >= 2)
-                    {
-                        if(!bank.doesExist(pos, w))
-                        {
-                            this.getModule().send(p, "Der Block ist nicht gesichert.");
-                            return true;
-                        }
-                        if(!bank.hasAccess(pos, w, p, false) && !KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_BYPASS))
-                        {
-                            m.send(cs, "Du hast keinen Zugriff auf diesen Block.");
-                            return true;
-                        }
-                        GameProfile player = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[1]);
-                        if(player == null)
-                        {
-                            m.send(cs, GlobalText.cantFindPlayer(arg[1]));
-                            return true;
-                        }
-                        bank.addPlayer(pos, w, player, p);
-                        if(b != Blocks.CHEST && b != Blocks.TRAPPED_CHEST)
-                        {
-                            return true;
-                        }
-                        BlockPos otherChest = Utils.getSameNearbyBlock(w, pos, b);
-                        if(otherChest != null)
-                        {
-                            bank.addPlayer(otherChest, w, player, p); 
-                        }
-                        return true;
-                    }
-                }
-                case "kick":
-                {
-                    if(arg.length >= 2)
-                    {
-                        if(!bank.doesExist(pos, w))
-                        {
-                            this.getModule().send(p, "Der Block ist nicht gesichert.");
-                            return true;
-                        }
-                        if(!bank.hasAccess(pos, w, p, true) && !KajetansMod.perms.hasPermission(cs, Permissions.BLOCK_BYPASS))
-                        {
-                            m.send(cs, "Du hast keinen Zugriff auf diesen Block.");
-                            return true;
-                        }
-                        GameProfile player = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[1]);
-                        if(player == null)
-                        {
-                            m.send(cs, GlobalText.cantFindPlayer(arg[1]));
-                            return true;
-                        }
-                        bank.removePlayer(pos, w, player, p);
-                        if(b != Blocks.CHEST && b != Blocks.TRAPPED_CHEST)
-                        {
-                            return true;
-                        }
-                        BlockPos otherChest = Utils.getSameNearbyBlock(w, pos, b);
-                        if(otherChest != null)
-                        {
-                            bank.removePlayer(otherChest, w, player, p); 
-                        }
-                        return true;
-                    }
-                }
-            }                    
-        }
-        m.send(cs, "/block ...");
-        m.sendHelpListElement(cs, "protect [player]", "Erstellt eine Block-Protection");
-        m.sendHelpListElement(cs, "remove", "Löscht eine Block-Protection");
-        m.sendHelpListElement(cs, "info", "Gibt Information über den Block");
-        m.sendHelpListElement(cs, "share <player>", "Teilt eine Block-Protection mit einem Spieler");
-        m.sendHelpListElement(cs, "kick <player>", "Kickt einen Spieler von einer Block-Protection");
-        return true;        
-    }
-}

+ 0 - 47
src/main/java/me/km/blockprotections/SemiProtections.java

@@ -1,47 +0,0 @@
-package me.km.blockprotections;
-
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleListener;
-import me.km.permissions.Permissions;
-import me.km.plots.ProtectionBank;
-import net.minecraft.block.BlockCrops;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraftforge.event.world.BlockEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-
-public class SemiProtections extends ModuleListener
-{    
-    private final ProtectionBank bank;
-    
-    public SemiProtections(Module m)
-    {
-        super(m);
-        bank = KajetansMod.plots.getDataBank(ProtectionBank.class);
-    }
-    
-    @SubscribeEvent
-    public void onBlockBreak(BlockEvent.BreakEvent e)
-    {
-        EntityPlayer p = e.getPlayer();
-        if(KajetansMod.perms.hasPermission(p, Permissions.BLOCK_BYPASS) && p.isCreative())
-        {
-            return;
-        }
-        IBlockState b = e.getState();
-        if(b.getBlock() instanceof BlockCrops)
-        {
-            if(!bank.hasTag(e.getWorld(), e.getPos(), "farm"))
-            {
-                return;
-            }
-            e.setCanceled(true); 
-            if(b.getValue(BlockCrops.AGE) == 7)
-            {
-                b.getBlock().dropBlockAsItem(e.getWorld(), e.getPos(), b, 0);
-            }
-            e.getWorld().setBlockState(e.getPos(), b.withProperty(BlockCrops.AGE, 0));
-        }
-    }
-}

+ 0 - 45
src/main/java/me/km/chatmanager/ChatListener.java

@@ -1,45 +0,0 @@
-package me.km.chatmanager;
-
-import me.kcm.events.PlayerTabListNameEvent;
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleListener;
-import net.minecraft.util.text.TextComponentString;
-import net.minecraftforge.event.ServerChatEvent;
-import net.minecraftforge.event.entity.player.PlayerEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-
-public class ChatListener extends ModuleListener
-{
-    private final ChatManager manager;
-    
-    public ChatListener(Module m) 
-    {
-        super(m);
-        manager = (ChatManager) m;
-    }
-    
-    @SubscribeEvent
-    public void onChatEvent(ServerChatEvent e)
-    {    
-        e.setComponent(new TextComponentString(
-                        KajetansMod.chatManager.getFullName(e.getPlayer()) + "§1 | §r"  + 
-                                ChatManager.colorMessage(e.getMessage(), e.getPlayer())));
-    }
-    
-    @SubscribeEvent
-    public void onGetPlayerName(PlayerEvent.NameFormat e)
-    {
-        String s = manager.getNickname(e.getEntityPlayer());
-        if(s != null)
-        {
-            e.setDisplayname(s);
-        }
-    }
-    
-    @SubscribeEvent
-    public void onGetPlayerName(PlayerTabListNameEvent e)
-    {
-        e.setName(new TextComponentString(KajetansMod.chatManager.getFullName(e.getEntityPlayer())));
-    }
-}

+ 0 - 186
src/main/java/me/km/chatmanager/ChatManager.java

@@ -1,186 +0,0 @@
-package me.km.chatmanager;
-
-import me.km.api.Module;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import me.km.KajetansMod;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.text.TextFormatting;
-
-public class ChatManager extends Module
-{    
-    private final HashMap<Integer, ArrayList<Rank>> ranks;
-    private final HashMap<UUID, String> fakeRank;
-    private final HashMap<UUID, String> nickname;
-    private final String fallback;
-    private final HashMap<UUID, HashSet<String>> playerRanks;
-
-    public ChatManager(String mname, String prefix, TextFormatting color) 
-    {
-        super(mname, prefix, color);
-        ranks = new HashMap<>();
-        fakeRank = new HashMap<>(); 
-        nickname = new HashMap<>(); 
-        fallback = "§8Θ";
-        playerRanks = new HashMap<>();
-    }
-
-    // -----------------------------------------------------------------------------------
-    // Rank-Handling
-    // -----------------------------------------------------------------------------------
-
-    /** Registers a rank by its permission, group and name. The idea is that ranks in the 
-     * same group overwrite themselves by picking the first match in the list.
-     *
-     * @param name the name of the rank to identify it
-     * @param group the id of the rank group
-     * @param text the text, which will be shown for the rank
-     */
-    public void registerRank(String name, int group, String text)
-    {
-        ArrayList<Rank> list = ranks.get(group);
-        if(list == null)
-        {
-            list = new ArrayList<>();
-            ranks.put(group, list);
-        }
-        list.add(new Rank(name, text));
-    }
-    
-    /** Registers a rank for a players uuid
-     *
-     * @param uuid a uuid of a player
-     * @param rank the rank, which should be registered
-     */
-    public void registerPlayerRank(UUID uuid, String rank)
-    {
-        HashSet<String> set = playerRanks.get(uuid);
-        if(set == null)
-        {
-            set = new HashSet<>();
-            playerRanks.put(uuid, set);
-        }
-        set.add(rank);
-    }
-    
-    /** Gets all texts of the players ranks
-     *
-     * @param p a player
-     * @return rank texts as list, the list will never be empty due to fallback
-     */
-    public ArrayList<String> getRanks(EntityPlayer p)
-    {
-        HashSet<String> pRanks = playerRanks.get(p.getUniqueID());
-        if(pRanks != null)
-        {
-            ArrayList<String> list = ranks.values().stream()
-                    .map(l ->
-                    {
-                        for(Rank r : l)
-                        {
-                            if(pRanks.contains(r.getName()))
-                            {
-                                return r.getText();
-                            }
-                        }
-                        return null;
-                    })
-                    .filter(s -> s != null)
-                    .collect(Collectors.toCollection(ArrayList::new));
-            if(list.isEmpty())
-            {
-                list.add(fallback);        
-            }
-            return list;
-        }
-        else
-        {
-            ArrayList<String> list = new ArrayList<>();
-            list.add(fallback);
-            return list;
-        }
-    }
-    
-    /** Removes all ranks and their player registry from the cache
-     *
-     */
-    public void clearRanks()
-    {
-        ranks.clear();
-        playerRanks.clear();
-    }
-    
-    /** Gets the players display name and its ranks
-     *
-     * @param p a player
-     * @return players display name and ranks collected with specific format
-     */
-    public String getFullName(EntityPlayer p)
-    {
-        String fake = fakeRank.get(p.getUniqueID());
-        if(fake != null)
-        {
-            return fake + " " + p.getDisplayNameString();
-        }
-        return getRanks(p).stream().collect(Collectors.joining("§r][", "[", "§r] " + p.getDisplayNameString()));
-    }
-    
-    // -------------------------------------------------------------------------
-    // Fakeranks
-    // -------------------------------------------------------------------------
-    
-    public void addFakeRank(EntityPlayer p, String rank)
-    {
-        fakeRank.put(p.getUniqueID(), rank);
-    }
-    
-    public String getFakeRank(EntityPlayer p)
-    {
-        return fakeRank.get(p.getUniqueID());
-    }
-
-    public void removeFakeRank(EntityPlayer p)
-    {
-        fakeRank.remove(p.getUniqueID());
-    }
-    
-    // -------------------------------------------------------------------------
-    // nicknames
-    // -------------------------------------------------------------------------
-    
-    public void setNickname(EntityPlayer p, String name)
-    {
-        nickname.put(p.getUniqueID(), name);
-    }
-    
-    public String getNickname(EntityPlayer p)
-    {
-        return nickname.get(p.getUniqueID());
-    }
-
-    public void removeNickname(EntityPlayer p)
-    {
-        nickname.remove(p.getUniqueID());
-    }
-    
-    // -------------------------------------------------------------------------
-    // Text-Coloring-Helper
-    // -------------------------------------------------------------------------
-    
-    public static String colorMessage(String text, ICommandSender cs) 
-    {
-        text = text.replace("&k", "");
-        if(KajetansMod.perms.hasPermission(cs, Permissions.USE_COLOR))
-        {
-            text = text.replace("&", "§");
-            return text;
-        }
-        text = text.replaceAll("&.", "");
-        return text;
-    }
-}

+ 0 - 35
src/main/java/me/km/chatmanager/CommandColor.java

@@ -1,35 +0,0 @@
-package me.km.chatmanager;
-
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandColor extends ModuleCommand
-{
-    public CommandColor(Module m) 
-    {
-        super("color", m);
-        super.setDescription("Zeigt dir die möglichen Farben");
-        super.setUsage("/color");
-        super.setPermission(Permissions.COLOR);
-        super.addAlias("colors");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        Module m = this.getModule();
-        m.send(cs, "Verfügbare Farbcodes:");
-        m.send(cs, "  §0&0  §1&1  §2&2  §3&3  §4&4  §5&5  §6&6  §7&7");
-        m.send(cs, "  §8&8  §9&9  §a&a  §b&b  §c&c  §d&d  §e&e  §f&f");
-        m.send(cs, "  §g&g  §i&i  §p&p  §s&s  §u&u  §w&w  §y&y");
-        m.send(cs, "  §h&h  §j&j  §q&q  §t&t  §v&v  §x&x  §z&z");
-        m.send(cs, "Sonstiges:");
-        m.send(cs, "  §l&l (fett)");
-        m.send(cs, "  §m&m (durchgestrichen)");
-        m.send(cs, "  §n&n (unterstrichen)");
-        m.send(cs, "  §o&o (kursiv)");
-        return true;
-    }
-}

+ 0 - 69
src/main/java/me/km/chatmanager/CommandFakeRank.java

@@ -1,69 +0,0 @@
-package me.km.chatmanager;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandFakeRank extends ModuleCommand
-{
-    public CommandFakeRank(Module m) 
-    {
-        super("fakerank", m);
-        super.setDescription("Gibt einem Spieler einen falschen Rang");
-        super.setUsage("/fakerank <rank/clear> [player]");
-        super.setPermission(Permissions.FAKERANK);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[1]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            affectedPlayer = (EntityPlayer) cs;
-        }
-        
-        if(arg[0].equals("clear"))
-        {
-            KajetansMod.chatManager.removeFakeRank(affectedPlayer);
-            this.getModule().send(affectedPlayer, "Du hast keinen falschen Rang mehr.");
-            if(!cs.equals(affectedPlayer))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " hat keinen falschen Rang mehr.");
-            }
-            return true;
-        }
-        String rank = ChatManager.colorMessage(arg[0], cs);
-        KajetansMod.chatManager.addFakeRank(affectedPlayer, rank);
-        this.getModule().send(affectedPlayer, "Du hast nun den falschen Rang '" + rank + "§r'.");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " hat nun den falschen Rang '" + rank + "§r'.");
-        }
-        return true;
-    }
-}

+ 0 - 69
src/main/java/me/km/chatmanager/CommandNickName.java

@@ -1,69 +0,0 @@
-package me.km.chatmanager;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public class CommandNickName extends ModuleCommand
-{
-    public CommandNickName(Module m) 
-    {
-        super("nickname", m);
-        super.setDescription("Gibt einem Spieler einen Nickname");
-        super.setUsage("/nickname <nick/clear> [player]");
-        super.setPermission(Permissions.NICKNAME);
-        super.addAlias("nick");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayerMP affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[1]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayerMP))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            affectedPlayer = (EntityPlayerMP) cs;
-        }
-        
-        if(arg[0].equals("clear") || arg[0].equals("off"))
-        {
-            KajetansMod.chatManager.removeNickname(affectedPlayer);
-            this.getModule().send(affectedPlayer, "Du hast keinen Nicknamen mehr.");
-            if(!cs.equals(affectedPlayer))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " hat keinen Nicknamen mehr.");
-            }
-            return true;
-        }
-        KajetansMod.chatManager.setNickname(affectedPlayer, arg[0]);
-        this.getModule().send(affectedPlayer, "Du hast nun den Nicknamen '" + arg[0] + "'.");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " hat nun den Nicknamen '" + arg[0] + "'.");
-        }
-        return true;
-    }
-}

+ 0 - 29
src/main/java/me/km/chatmanager/Rank.java

@@ -1,29 +0,0 @@
-package me.km.chatmanager;
-
-public class Rank 
-{
-    private final String name;
-    private final String text;
-    
-    public Rank(String name, String text)
-    {
-        this.name = name;
-        this.text = text;
-    }
-    
-    public String getName()
-    {
-        return name;
-    }
-    
-    public String getText()
-    {
-        return text;
-    }
-
-    @Override
-    public String toString() 
-    {
-        return "[name: " + name + ", text: " + text + "]";
-    }
-}

+ 0 - 51
src/main/java/me/km/commands/CommandAddUser.java

@@ -1,51 +0,0 @@
-package me.km.commands;
-
-import com.mojang.authlib.GameProfile;
-import java.util.UUID;
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandAddUser extends ModuleCommand
-{
-    public CommandAddUser(Module m) 
-    {
-        super("adduser", m);
-        super.setDescription("Fügt einen Spieler der Datenbank hinzu");
-        super.setUsage("/adduser <uuid>");
-        super.setPermission(Permissions.ADD_USER);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        GameProfile op;
-        try
-        {
-            op = KajetansMod.server.getPlayerProfileCache().getProfileByUUID(UUID.fromString(arg[0]));
-        } 
-        catch(IllegalArgumentException ex)
-        {
-            this.getModule().send(cs, "Das ist keine gültige UUID.");
-            return true;
-        }
-        if(op == null)
-        {
-            this.getModule().send(cs, "Das ist kein gültiger Spieler");
-            return true;
-        }
-        if(KajetansMod.playerbank.getDataBank().add(op))
-        {
-            this.getModule().send(cs, op.getName() + " wurde hinzugefügt.");
-            return true;
-        }
-        this.getModule().send(cs, op.getName() + " ist schon in der Datenbank.");
-        return true;
-    }
-}

+ 0 - 64
src/main/java/me/km/commands/CommandAnswer.java

@@ -1,64 +0,0 @@
-package me.km.commands;
-
-import java.util.HashMap;
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.chatmanager.ChatManager;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandAnswer extends ModuleCommand
-{
-    public CommandAnswer(Module m) 
-    {
-        super("answer", m);
-        super.setDescription("Schreibt dem letzten Spieler eine Privatnachricht");
-        super.setUsage("/answer <message>");
-        super.setPermission(Permissions.MSG);
-        super.addAlias("r");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        HashMap<String, String> answer = KajetansMod.generalCommands.getCommand(CommandMsg.class).answer;
-        String s = answer.get(cs.getName());
-        if(s == null)
-        {
-            this.getModule().send(cs, "Du hast niemanden, dem du antworten könntest.");
-            return true;
-        }
-        ICommandSender previous;
-        if(s.equals("CONSOLE"))
-        {
-            previous = KajetansMod.server;
-        }
-        else
-        {
-            try
-            {
-                previous = Utils.getPlayerByName(s);            
-            }
-            catch(PlayerNotFoundException ex)
-            {
-                this.getModule().send(cs, "Du hast niemanden, dem du antworten könntest.");
-                return true;
-            }
-        }
-        
-        String message = ChatManager.colorMessage(Utils.connectSpaces(arg, 0), cs);
-        cs.sendMessage(new TextComponentString("§6[ -> §c" + previous.getName()+ "§6] §r" + message));
-        previous.sendMessage(new TextComponentString("§6[§c" + cs.getName()+ "§6] §r" + message));
-        answer.put(cs.getName(), previous.getName());
-        answer.put(previous.getName(), cs.getName());
-        return true;  
-    }
-}

+ 0 - 41
src/main/java/me/km/commands/CommandBack.java

@@ -1,41 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandBack extends ModuleCommand
-{
-    public CommandBack(Module m) 
-    {
-        super("back", m);
-        super.setDescription("Teleportiert dich zu deiner letzten Position");
-        super.setUsage("/back");
-        super.setPermission(Permissions.BACK);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;        
-        Location l = KajetansMod.playerbank.getLastLocation(p);
-        if(l != null)
-        {
-            Utils.teleportEntity(p, l);
-            return true;
-        }
-        this.getModule().send(cs, "Es gibt noch keinen Ort, wo du zurückkehren könntest.");
-        return true;
-    }
-}

+ 0 - 50
src/main/java/me/km/commands/CommandBan.java

@@ -1,50 +0,0 @@
-package me.km.commands;
-
-import com.mojang.authlib.GameProfile;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.KajetansMod;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.management.UserListBansEntry;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandBan extends ModuleCommand
-{
-    public CommandBan(Module m) 
-    {
-        super("ban", m);
-        super.setDescription("Bannt einen Spiele dauerhaft");
-        super.setUsage("/ban <name> <reason>");
-        super.setPermission(Permissions.BAN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length <= 1)
-        {
-            return false;
-        }
-        GameProfile affectedPlayer = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[0]);
-        if(affectedPlayer == null)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        String message = Utils.connectSpaces(arg, 1);
-        this.getModule().sendBroadcast("§4" + affectedPlayer.getName() + " §cwurde von §4" + cs.getName() + "§c gebannt, weil: §4" + message);    
-        
-        UserListBansEntry bans = new UserListBansEntry(affectedPlayer, null, cs.getName(), null, message);
-        KajetansMod.server.getPlayerList().getBannedPlayers().addEntry(bans);
-        EntityPlayerMP p = KajetansMod.server.getPlayerList().getPlayerByUUID(affectedPlayer.getId());
-        if(p != null)
-        {
-            p.connection.disconnect(new TextComponentString("§4Du §cwurdest von §4" + cs.getName() + "§c gebannt, weil: §4" + message));
-        }
-        return true;
-    }
-}

+ 0 - 68
src/main/java/me/km/commands/CommandBed.java

@@ -1,68 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Location;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.BlockPos;
-
-public class CommandBed extends ModuleCommand
-{
-    public CommandBed(Module m) 
-    {
-        super("bed", m);
-        super.setDescription("Teleportiert einen Spieler zu einem Bett");
-        super.setUsage("/bed [player]");
-        super.setPermission(Permissions.BED);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        
-        if(arg.length == 0 || !KajetansMod.perms.hasPermission(cs, Permissions.BED_OTHER))
-        {
-            BlockPos pos = p.getBedLocation(p.dimension);
-            if(pos == null)
-            {
-                this.getModule().send(cs, "Du hast keinen Bettspawn gesetzt.");
-                return true;
-            }
-            Utils.teleportEntity(p, new Location(p.getEntityWorld(), pos));
-            this.getModule().send(cs, "Du wurdest zu deinem Bett teleportiert.");
-            return true;
-        }
-
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        } 
-        BlockPos pos = p.getBedLocation(p.dimension);
-        if(pos == null)
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " hat keinen Bettspawn gesetzt.");
-            return true;
-        }
-        Utils.teleportEntity(p, new Location(p.getEntityWorld(), pos));
-        this.getModule().send(cs, "Du wurdest zum Bett von " + affectedPlayer.getName() + " teleportiert.");
-        return true;
-    }
-}

+ 0 - 93
src/main/java/me/km/commands/CommandBook.java

@@ -1,93 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.chatmanager.ChatManager;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-
-public class CommandBook extends ModuleCommand
-{
-    public CommandBook(Module m) 
-    {
-        super("book", m);
-        super.setDescription("Diverse Befehle für Bücher");
-        super.setUsage("/book für die Hilfe");
-        super.setPermission(Permissions.BOOK);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        Module m = this.getModule();
-        EntityPlayer p = (EntityPlayer) cs;
-        
-        if(arg.length >= 1)
-        {
-            ItemStack stack = p.getHeldItemMainhand();
-            if(stack.getItem() != Items.WRITTEN_BOOK)
-            {
-                m.send(cs, "Du hast kein signiertes Buch in der Hand.");
-                return true;
-            }
-            NBTTagCompound com = stack.getTagCompound();
-            if(com == null)
-            {
-                m.send(cs, GlobalText.shouldNotHappen());
-                return true;
-            }
-            try
-            {
-                switch(arg[0])
-                {
-                    case "open":
-                    {
-                        ItemStack newItem = new ItemStack(Items.WRITABLE_BOOK);
-                        NBTTagCompound pages = newItem.getTagCompound();
-                        if(pages == null)
-                        {
-                            pages = new NBTTagCompound();
-                        }
-                        pages.setTag("pages", com.getTagList("pages", 8).copy());
-                        newItem.setTagCompound(pages);
-                        p.entityDropItem(newItem, 0);
-                        return true;
-                    }
-                    case "author":
-                    {       
-                        com.setString("author", ChatManager.colorMessage(Utils.connectSpaces(arg, 1), p));
-                        m.send(cs, "Der neue Autor wurde gesetzt.");
-                        return true;
-                    }
-                    case "title":
-                    {       
-                        com.setString("title", ChatManager.colorMessage(Utils.connectSpaces(arg, 1), p));
-                        m.send(cs, "Der neue Autor wurde gesetzt.");
-                        return true;
-                    }
-                }
-            }
-            catch(Exception ex)
-            {
-                m.send(cs, "Unerwarteter Fehler: " + ex + " - " + ex.getMessage());
-            }
-        }
-        
-        m.send(cs, "/book ...");
-        m.sendHelpListElement(cs, "open", "Öffnet dein Buch erneut");
-        m.sendHelpListElement(cs, "author <name>", "Setzt den Autor des Buches");    
-        m.sendHelpListElement(cs, "title <name>", "Setzt den Titel des Buches");    
-        return true;
-    }
-}

+ 0 - 52
src/main/java/me/km/commands/CommandCoords.java

@@ -1,52 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.util.text.TextComponentString;
-import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
-
-public class CommandCoords extends ModuleCommand
-{
-    public CommandCoords(Module m) 
-    {
-        super("coords", m);
-        super.setDescription("Ändert den Typ eines Spawners");
-        super.setUsage("/coords");
-        super.setPermission(Permissions.COORDS);
-        super.addAlias("coord");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        World w = cs.getEntityWorld();
-        BlockPos pos = Utils.getTargetBlock(p);
-        if(w.isAirBlock(pos))
-        {
-            this.getModule().send(cs, "Du musst auf einen Block gerichtet sein.");
-            return true;
-        }
-        Module m = this.getModule();
-        cs.sendMessage(new TextComponentString(GlobalText.Spacer()));
-        m.send(cs, "Block: " + w.getBlockState(pos).getBlock());
-        m.send(cs, "Welt: " + w.getWorldInfo().getWorldName());
-        m.send(cs, "Dimension: " + p.dimension);
-        m.send(cs, "Dimension: " + DimensionManager.getProviderType(p.dimension).getName());
-        m.send(cs, "Koordinaten: " + pos.getX() + " | " + pos.getY() + " | " + pos.getZ());
-        m.send(cs, "Material-Data: " + w.getBlockState(pos));
-        return true;
-    }
-}

+ 0 - 41
src/main/java/me/km/commands/CommandDelHome.java

@@ -1,41 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandDelHome extends ModuleCommand
-{
-    public CommandDelHome(Module m) 
-    {
-        super("delhome", m);
-        super.setDescription("Löscht einen Home");
-        super.setUsage("/delhome <name>");
-        super.setPermission(Permissions.DEL_HOME);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        if(new SimpleConfig(this.getModule(), "home/" + ((EntityPlayer) cs).getUniqueID(), arg[0], false).delete())
-        {
-            this.getModule().send(cs, "Der Home " + arg[0] + " wurde gelöscht.");
-            return true;
-        }
-        this.getModule().send(cs, "Der Home " + arg[0] + " existiert nicht.");
-        return true;
-    }
-}

+ 0 - 34
src/main/java/me/km/commands/CommandDelWarp.java

@@ -1,34 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandDelWarp extends ModuleCommand
-{
-    public CommandDelWarp(Module m) 
-    {
-        super("delwarp", m);
-        super.setDescription("Löscht einen Warp");
-        super.setUsage("/delwarp <warpname>");
-        super.setPermission(Permissions.DEL_WARP);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        if(new SimpleConfig(this.getModule(), "warp", arg[0], false).delete())
-        {
-            this.getModule().send(cs, "Der Warp " + arg[0] + " wurde gelöscht.");
-            return true;
-        }
-        this.getModule().send(cs, "Der Warp " + arg[0] + " existiert nicht.");
-        return true;
-    }
-}

+ 0 - 67
src/main/java/me/km/commands/CommandEnchant.java

@@ -1,67 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import java.util.Arrays;
-import java.util.stream.Collectors;
-import me.km.api.ModuleTabCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.enchantment.Enchantment;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-public class CommandEnchant extends ModuleTabCommand
-{
-    public CommandEnchant(Module m) 
-    {
-        super("enchant", m, Enchantment.REGISTRY.getKeys().stream().map(r -> r.getResourcePath()).collect(Collectors.toList()), 0);  
-        super.setDescription("Erzeugt Custom-Enchants");
-        super.setUsage("/enchant <enchant> <level>");
-        super.setPermission(Permissions.ENCHANT);       
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        ItemStack hand = p.getHeldItemMainhand();
-        if(hand == ItemStack.EMPTY)
-        {
-            this.getModule().send(cs, "Du musst ein Item in der Hand halten.");
-            return true;
-        }
-        if(arg.length < 2)
-        {
-            return false;
-        }
-        
-        Enchantment ench = Enchantment.getEnchantmentByLocation(arg[0]);
-        if(ench == null)
-        {
-            this.getModule().send(cs, "Das gegebene Enchantment existiert nicht.");
-            return true;
-        }       
-        try
-        {
-            int i = Integer.parseInt(arg[1]);
-            if(i < 1)
-            {
-                throw new NumberFormatException();
-            } 
-            hand.addEnchantment(ench, i);
-            this.getModule().send(cs, "Das Enchantment wurde hinzugefügt.");
-            return true;
-        }
-        catch(NumberFormatException ex)
-        {
-            this.getModule().send(cs, GlobalText.noPositiveNaturalNumber());            
-        }
-        return true;
-    }
-}

+ 0 - 45
src/main/java/me/km/commands/CommandEnderChest.java

@@ -1,45 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandEnderChest extends ModuleCommand
-{
-    public CommandEnderChest(Module m) 
-    {
-        super("enderchest", m);
-        super.setDescription("Zeigt dir die Enderchest eines Spielers");
-        super.setUsage("/enderchest [player]");
-        super.setPermission(Permissions.ENDERCHEST);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        try
-        {
-            p.displayGUIChest(Utils.getPlayerByName(arg[0]).getInventoryEnderChest());
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            p.displayGUIChest(p.getInventoryEnderChest());
-        }
-        return true;
-    }
-}

+ 0 - 185
src/main/java/me/km/commands/CommandExp.java

@@ -1,185 +0,0 @@
-package me.km.commands;
-
-import me.km.permissions.Permissions;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandExp extends ModuleCommand
-{
-    public CommandExp(Module m) 
-    {
-        super("exp", m);
-        super.setDescription("Befehle um die EXP eines Spielers zu verändern");
-        super.setUsage("/exp für die Hilfe");
-        super.setPermission(Permissions.EXP);
-        super.addAlias("xp");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        Module m = this.getModule();
-        if(arg.length >= 1)
-        {
-            switch(arg[0])
-            {
-                case "show":
-                {
-                    EntityPlayer p;
-                    try
-                    {
-                        p = Utils.getPlayerByName(arg[1]);    
-                        m.send(cs, p.getName() + " hat " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ").");
-                    }
-                    catch(PlayerNotFoundException ex)
-                    {
-                        m.send(cs, GlobalText.cantFindPlayer(arg[1]));
-                        return true;
-                    }
-                    catch(IndexOutOfBoundsException ex)
-                    {
-                        if(!(cs instanceof EntityPlayer))
-                        {
-                            m.send(cs, GlobalText.missingParameter());
-                            return true;
-                        }     
-                        p = (EntityPlayer) cs;
-                        m.send(cs, "Du hast " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ").");
-                    }
-                    return true;
-                }
-                case "set":
-                {       
-                    if(arg.length >= 2)
-                    {
-                        EntityPlayer p;
-                        try
-                        {
-                            p = Utils.getPlayerByName(arg[2]);    
-                            try
-                            {         
-                                int i = Integer.parseInt(arg[1]);
-                                if(i < 0)
-                                {
-                                    throw new NumberFormatException();
-                                }
-                                p.experienceLevel = 0;
-                                p.experience = 0;
-                                p.experienceTotal = 0;
-                                p.addExperience(i);
-                                m.send(cs, p.getName() + " hat nun " + arg[1] +  " XP.");
-                                m.send(p, "Deine XP wurden auf " + arg[1] +  " gesetzt.");
-                            }
-                            catch(NumberFormatException ex)
-                            {
-                                m.send(cs, GlobalText.noNaturalNumber());
-                                return true;
-                            } 
-                        }
-                        catch(PlayerNotFoundException ex)
-                        {
-                            m.send(cs, GlobalText.cantFindPlayer(arg[2]));
-                            return true;
-                        }
-                        catch(IndexOutOfBoundsException ex)
-                        {
-                            if(!(cs instanceof EntityPlayer))
-                            {
-                                m.send(cs, GlobalText.missingParameter());
-                                return true;
-                            }     
-                            p = (EntityPlayer) cs;
-                            try
-                            {         
-                                int i = Integer.parseInt(arg[1]);
-                                if(i < 0)
-                                {
-                                    throw new NumberFormatException();
-                                }
-                                p.experienceLevel = 0;
-                                p.experience = 0;
-                                p.experienceTotal = 0;
-                                p.addExperience(i);     
-                                m.send(p, "Deine XP wurden auf " + arg[1] +  " gesetzt.");
-                            }
-                            catch(NumberFormatException ex2)
-                            {
-                                m.send(cs, GlobalText.noNaturalNumber());
-                                return true;
-                            }
-                        }
-                        return true;
-                    }
-                }
-                case "give":
-                {       
-                    if(arg.length >= 2)
-                    {
-                        EntityPlayer p;
-                        try
-                        {
-                            p = Utils.getPlayerByName(arg[2]);    
-                            try
-                            {         
-                                int i = Integer.parseInt(arg[1]);
-                                if(i < 0)
-                                {
-                                    throw new NumberFormatException();
-                                }
-                                p.addExperience(i);   
-                                m.send(cs, p.getName() + " wurden " + arg[1] +  " XP gegeben.");
-                                m.send(p, "Dir wurden " + arg[1] + " XP gegeben.");
-                            }
-                            catch(NumberFormatException ex)
-                            {
-                                m.send(cs, GlobalText.noNaturalNumber());
-                                return true;
-                            } 
-                        }
-                        catch(PlayerNotFoundException ex)
-                        {
-                            m.send(cs, GlobalText.cantFindPlayer(arg[2]));
-                            return true;
-                        }
-                        catch(IndexOutOfBoundsException ex)
-                        {
-                            if(!(cs instanceof EntityPlayer))
-                            {
-                                m.send(cs, GlobalText.missingParameter());
-                                return true;
-                            }     
-                            p = (EntityPlayer) cs;
-                            try
-                            {         
-                                int i = Integer.parseInt(arg[1]);
-                                if(i < 0)
-                                {
-                                    throw new NumberFormatException();
-                                }
-                                p.addExperience(i);    
-                                m.send(p, "Dir wurden " + arg[1] + " XP gegeben.");
-                            }
-                            catch(NumberFormatException ex2)
-                            {
-                                m.send(cs, GlobalText.noNaturalNumber());
-                                return true;
-                            }
-                        }
-                        return true;
-                    }
-                }
-            }
-        }
-        
-        m.send(cs, "/exp ...");
-        m.sendHelpListElement(cs, "show [player]", "Zeigt die EXP eines Spielers");
-        m.sendHelpListElement(cs, "set <amount> [player]", "Setzt die EXP eines Spielers");    
-        m.sendHelpListElement(cs, "give <amount> [player]", "Gibt dem Spieler EXP");    
-        return true;
-    }
-}

+ 0 - 51
src/main/java/me/km/commands/CommandFeed.java

@@ -1,51 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandFeed extends ModuleCommand
-{
-    public CommandFeed(Module m) 
-    {
-        super("feed", m);
-        super.setDescription("Sättigt den Hunger eines Spielers");
-        super.setUsage("/feed [player]");
-        super.setPermission(Permissions.FEED);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        Module m = this.getModule();
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-            m.send(cs, "Der Hunger von " + affectedPlayer.getName() + " wurde gesättigt.");
-            m.send(affectedPlayer, "Dein Hunger wurde gesättigt.");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            m.send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                m.send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-            m.send(affectedPlayer, "Dein Hunger wurde gesättigt.");
-        }
-        affectedPlayer.getFoodStats().addStats(50, 1);
-        return true;
-    }
-}

+ 0 - 83
src/main/java/me/km/commands/CommandFly.java

@@ -1,83 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public class CommandFly extends ModuleCommand
-{
-    public CommandFly(Module m) 
-    {
-        super("fly", m);
-        super.setDescription("Lässt einen Spieler fliegen");
-        super.setUsage("/fly [player] [on|off]");
-        super.setPermission(Permissions.FLY);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayerMP affectedPlayer;
-        try
-        {
-            if(arg.length >= 1 && !KajetansMod.perms.hasPermission(cs, Permissions.FLY_OTHER))
-            {
-                this.getModule().send(cs, "Du darfst nur deinen eigenen Fly setzen.");
-                return true;
-            }
-            affectedPlayer = Utils.getPlayerByName(arg[0]);      
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayerMP))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayerMP) cs;
-        }
-
-        boolean fly = !affectedPlayer.capabilities.allowFlying;
-        if(arg.length >= 2)
-        {
-            if(arg[1].equals("on"))
-            {
-                fly = true;
-            }
-            else if(arg[1].equals("off"))
-            {
-                fly = false;
-            }
-        }
-
-        affectedPlayer.capabilities.allowFlying = fly;
-        affectedPlayer.capabilities.isFlying = fly;
-        affectedPlayer.sendPlayerAbilities();
-        if(fly)
-        {
-            this.getModule().send(affectedPlayer, "Du kannst nun fliegen.");
-            if(!cs.equals(affectedPlayer))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " kann nun fliegen.");
-            }
-            return true;
-        }
-        this.getModule().send(affectedPlayer, "Du kannst nicht mehr fliegen.");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " kann nicht mehr fliegen.");
-        }
-        return true;
-    }
-}

+ 0 - 98
src/main/java/me/km/commands/CommandGameMode.java

@@ -1,98 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.world.GameType;
-
-public class CommandGameMode extends ModuleCommand
-{
-    public CommandGameMode(Module m) 
-    {
-        super("gamemode", m);
-        super.setDescription("Ändert den GameMode eines Spielers");
-        super.setUsage("/gamemode <mode> [player]");
-        super.setPermission(Permissions.GAMEMODE);
-        super.addAlias("gm");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        
-        EntityPlayer affectedPlayer;
-        try
-        {
-            if(arg.length >= 2 && !KajetansMod.perms.hasPermission(cs, Permissions.GAMEMODE_OTHER))
-            {
-                this.getModule().send(cs, "Du darfst nur deinen eigenen GameMode setzen.");
-                return true;
-            }
-            affectedPlayer = Utils.getPlayerByName(arg[1]);      
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-        }
-
-        String mode;
-        switch (arg[0].toLowerCase()) 
-        {
-            case "survival":
-            case "s":
-            case "0":  
-                affectedPlayer.setGameType(GameType.SURVIVAL);
-                mode = "Survival";
-                break;
-            case "creative":
-            case "c":        
-            case "1":  
-                affectedPlayer.setGameType(GameType.CREATIVE);
-                mode = "Creative";
-                break;
-            case "adventure":         
-            case "a":         
-            case "2":  
-                affectedPlayer.setGameType(GameType.ADVENTURE);
-                mode = "Adventure";
-                break;
-            case "spectator":         
-            case "w":         
-            case "3":  
-                affectedPlayer.setGameType(GameType.SPECTATOR);
-                mode = "Spectator";
-                break;  
-            default:
-                affectedPlayer.setGameType(GameType.CREATIVE);
-                mode = "Creative";
-                break;
-        }
-
-        this.getModule().send(affectedPlayer, "Du hast nun Gamemode " + mode + ".");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " hat nun Gamemode " + mode + ".");
-        }
-        return true;
-    }
-}

+ 0 - 66
src/main/java/me/km/commands/CommandGod.java

@@ -1,66 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.playerbank.PlayerBank;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandGod extends ModuleCommand
-{
-    public CommandGod(Module m) 
-    {
-        super("god", m);
-        super.setDescription("Setzt einen Spieler auf God-Mode");
-        super.setUsage("/god [player]");
-        super.setPermission(Permissions.GOD);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-        }
-        
-        PlayerBank pb = KajetansMod.playerbank.getDataBank();
-        if(pb.getTag(affectedPlayer, "god") == 1)
-        {
-            pb.setTag(affectedPlayer, "god", 0);
-            this.getModule().send(affectedPlayer, "Du bist nicht mehr unsterblich.");
-            if(!affectedPlayer.equals(cs))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " ist nicht mehr unsterblich.");
-            }
-            return true;
-        }
-        pb.setTag(affectedPlayer, "god", 1);
-        this.getModule().send(affectedPlayer, "Du bist nun unsterblich.");
-        if(!affectedPlayer.equals(cs))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " ist nun unsterblich.");
-        }
-        return true;
-    }
-}

+ 0 - 56
src/main/java/me/km/commands/CommandGrow.java

@@ -1,56 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.block.BlockCrops;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class CommandGrow extends ModuleCommand
-{
-    public CommandGrow(Module m) 
-    {
-        super("grow", m);
-        super.setDescription("Lässt die Pflanzen in deiner Umgebung wachsen");
-        super.setUsage("/grow");
-        super.setPermission(Permissions.GROW);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        World w = p.world;
-        BlockPos pos = p.getPosition();
-        BlockPos relative;
-        IBlockState state;
-        for(int x = -3; x < 4; x++)
-        {
-            for(int y = -3; y < 4; y++)
-            {
-                for(int z = -3; z < 4; z++)
-                {
-                    relative = pos.add(x, y, z);
-                    state = w.getBlockState(relative);
-                    if(state.getBlock() instanceof BlockCrops)
-                    {
-                        w.setBlockState(relative, state.withProperty(BlockCrops.AGE, 7));                
-                    }                      
-                }
-            }
-        }
-        this.getModule().send(cs, "Die Pflanzen in deiner Umgebung sind gewachsen.");
-        return true;
-    }
-}

+ 0 - 47
src/main/java/me/km/commands/CommandHat.java

@@ -1,47 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Items;
-import net.minecraft.inventory.EntityEquipmentSlot;
-import net.minecraft.item.ItemStack;
-
-public class CommandHat extends ModuleCommand
-{
-    public CommandHat(Module m) 
-    {
-        super("hat", m);
-        super.setDescription("Setzt dir einen Hut auf");
-        super.setUsage("/hat");
-        super.setPermission(Permissions.HAT);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        ItemStack stack = p.getHeldItemMainhand();
-        if(stack == null || stack.getItem() == Items.AIR)
-        {
-            this.getModule().send(cs, "Du musst ein Item in der Hand halten.");
-            return true;
-        }
-        if(p.getItemStackFromSlot(EntityEquipmentSlot.HEAD) == ItemStack.EMPTY)
-        {
-            p.setItemStackToSlot(EntityEquipmentSlot.HEAD, stack);
-            this.getModule().send(cs, "Du trägst nun einen Hut.");
-            return true;
-        }        
-        this.getModule().send(cs, "Du trägst bereits einen Hut.");
-        return true;
-    }
-}

+ 0 - 53
src/main/java/me/km/commands/CommandHeal.java

@@ -1,53 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.potion.PotionEffect;
-
-public class CommandHeal extends ModuleCommand
-{
-    public CommandHeal(Module m) 
-    {
-        super("heal", m);
-        super.setDescription("Heilt einen Spieler");
-        super.setUsage("/heal [player]");
-        super.setPermission(Permissions.HEAL);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        Module m = this.getModule();
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-            m.send(cs, affectedPlayer.getName() + " wurde geheilt.");
-            m.send(affectedPlayer, "Du wurdest geheilt.");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            m.send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                m.send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-            m.send(affectedPlayer, "Du wurdest geheilt.");
-        }
-        affectedPlayer.setHealth(affectedPlayer.getMaxHealth());
-        affectedPlayer.clearActivePotions();
-        return true;
-    }
-}

+ 0 - 95
src/main/java/me/km/commands/CommandHome.java

@@ -1,95 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import java.io.File;
-import java.util.Arrays;
-import me.km.api.Location;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandHome extends ModuleCommand
-{
-    public CommandHome(Module m) 
-    {
-        super("home", m);
-        super.setDescription("Teleportiert einen Spieler zu einem Home-Punkt");
-        super.setUsage("/home [name / player:name]");
-        super.setPermission(Permissions.HOME);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        
-        String playeruuid = p.getUniqueID().toString();
-        String homename = "";
-        
-        if(arg.length >= 1)
-        {
-            homename = arg[0];          
-            if(arg[0].contains(":") && KajetansMod.perms.hasPermission(cs, Permissions.HOME_OTHER))
-            {               
-                String[] split = homename.split(":");
-                String uuid = KajetansMod.playerbank.getDataBank().getUUID(split[0]);
-                if(uuid != null && split.length >= 2)
-                {
-                    homename = split[1];
-                    playeruuid = uuid;
-                }         
-                else if(split.length == 1 && uuid != null)
-                {
-                    homename = "";
-                    playeruuid = uuid;
-                }
-            }    
-        }
-
-        Module m = this.getModule();
-        File[] homes = SimpleConfig.getFiles("home/" + playeruuid);
-        if(homes == null || homes.length == 0)
-        {
-            String name = KajetansMod.playerbank.getDataBank().getName(playeruuid);
-            if(name.equals(p.getName()))
-            {
-                m.send(cs, "Du hast keine Homepunkte gesetzt.");
-                return true;
-            }
-            m.send(cs, name + " hat keine Homepunkte gesetzt.");      
-            return true;
-        }
-        if(arg.length == 0 || homename.equals(""))
-        {
-            m.send(cs, "Folgende Homepunkte stehen zur Verfügung:");      
-            Arrays.stream(homes).forEach(h -> {m.sendListElement(cs, h.getName().replaceAll(".snuvic", ""));});
-            return true;
-        }
-                  
-        SimpleConfig sc = new SimpleConfig(this.getModule(), "home/" + playeruuid, homename, true);
-        Location l = sc.getLocation("home");
-        if(l == null)
-        {
-            m.send(cs, "Der Homepunkt wurde nicht gefunden.");   
-            return true;
-        }   
-        if(l.getWorld() == null)
-        {
-            m.send(cs, "Die Welt des Homepunktes wurde nicht gefunden.");    
-            return true;
-        }    
-        Utils.teleportEntity(p, l);
-        m.send(cs, "Du wurdest zum Home-Punkt " + homename + " teleportiert.");  
-        return true;
-    }
-}

+ 0 - 45
src/main/java/me/km/commands/CommandInvSee.java

@@ -1,45 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public class CommandInvSee extends ModuleCommand
-{
-    public CommandInvSee(Module m) 
-    {
-        super("invsee", m);
-        super.setDescription("Zeigt dir den Inventar eines Spielers");
-        super.setUsage("/invsee <player>");
-        super.setPermission(Permissions.INVSEE);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayerMP))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayerMP p = (EntityPlayerMP) cs;
-        try
-        {
-            p.displayGUIChest(Utils.getPlayerByName(arg[0]).inventory);
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-        }
-        return true;
-    }
-}

+ 0 - 48
src/main/java/me/km/commands/CommandItemInfo.java

@@ -1,48 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.utils.NBTUtils;
-import me.km.permissions.Permissions;
-import me.km.utils.ItemStackUtils;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandItemInfo extends ModuleCommand
-{
-    public CommandItemInfo(Module m) 
-    {
-        super("iteminfo", m);
-        super.setDescription("Gibt Information über ein Item aus");
-        super.setUsage("/iteminfo");
-        super.setPermission(Permissions.ITEMINFO);
-        super.addAlias("itemdb");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayerMP))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        Module m = this.getModule();
-        EntityPlayerMP p = (EntityPlayerMP) cs;
-        ItemStack stack = p.getHeldItemMainhand();
-        if(stack == null || stack == ItemStack.EMPTY)
-        {
-            m.send(cs, "Du musst ein Item in der Hand halten.");
-            return true;
-        }
-        cs.sendMessage(new TextComponentString(GlobalText.Spacer()));
-        m.send(cs, "DV: §6" + stack.getItemDamage());
-        m.send(cs, "Meta: §6" + stack.getMetadata());
-        m.send(cs, "Item: §6" + stack.getItem());
-        NBTUtils.sendCopyableText(p, ItemStackUtils.getNbtString(stack).replace("\"", "'"));
-        return true;
-    }
-}

+ 0 - 45
src/main/java/me/km/commands/CommandKick.java

@@ -1,45 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandKick extends ModuleCommand
-{
-    public CommandKick(Module m) 
-    {
-        super("kick", m);
-        super.setDescription("Kickt einen Spieler");
-        super.setUsage("/kick <name> <reason>");
-        super.setPermission(Permissions.KICK);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length <= 1)
-        {
-            return false;
-        }
-        EntityPlayerMP affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }                      
-        String message = Utils.connectSpaces(arg, 1);
-        this.getModule().sendBroadcast("§4" + affectedPlayer.getName() + " §cwurde von §4" + cs.getName() + "§c gekickt, weil: §4" + message);  
-        affectedPlayer.connection.disconnect(new TextComponentString("§4Du §cwurdest von §4" + cs.getName() + "§c gekickt, weil: §4" + message));
-        return true;
-    }
-}

+ 0 - 52
src/main/java/me/km/commands/CommandKill.java

@@ -1,52 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandKill extends ModuleCommand
-{
-    public CommandKill(Module m) 
-    {
-        super("kill", m);
-        super.setDescription("Tötet einen Spieler");
-        super.setUsage("/kill [player]");
-        super.setPermission(Permissions.KILL);
-        super.addAlias("suicide");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0 || !KajetansMod.perms.hasPermission(cs, Permissions.KILL_OTHER))
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            EntityPlayer p = (EntityPlayer) cs;
-            p.onKillCommand();
-            this.getModule().send(cs, "Du hast dich selbst getötet.");
-            return true;
-        }
-        try
-        {
-            EntityPlayer affectedPlayer = Utils.getPlayerByName(arg[0]);   
-            affectedPlayer.onKillCommand();
-            this.getModule().send(cs, "Du hast " + affectedPlayer.getName() + " getötet.");
-            this.getModule().send(affectedPlayer, cs.getName() + " hat dich getötet.");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-        }
-        return true;
-    }
-}

+ 0 - 40
src/main/java/me/km/commands/CommandLag.java

@@ -1,40 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandLag extends ModuleCommand
-{
-    public CommandLag(Module m) 
-    {
-        super("lag", m);
-        super.setDescription("Testet den Server auf Lags");
-        super.setUsage("/lag");
-        super.setPermission(Permissions.LAG);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        Module m = this.getModule();
-        m.send(cs, "Der Lagtest wird durchgeführt:");
-        long time = System.currentTimeMillis();
-        KajetansMod.scheduler.scheduleTask(() -> 
-        {
-            long diff = System.currentTimeMillis() - time;
-            m.sendListElement(cs, "5000 Millisekunden sind nach dem Scheduler vergangen");
-            m.sendListElement(cs, diff + " Millisekunden sind tatsächlich vergangen");
-            String s = String.valueOf((((double) diff / 50d) - 100d));
-            if(s.length() > 6)
-            {
-                s = s.substring(0, 5);
-            }
-            m.sendListElement(cs, "Dies entspricht einer Abweichung von " + s + "%");
-        }, 100);              
-        return true;
-    }
-    
-}

+ 0 - 87
src/main/java/me/km/commands/CommandLastSeen.java

@@ -1,87 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.playerbank.PlayerBank;
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import me.km.permissions.Permissions;
-import me.km.table.Table;
-import net.minecraft.command.ICommandSender;
-
-public class CommandLastSeen extends ModuleCommand
-{
-    public CommandLastSeen(Module m) 
-    {
-        super("lastseen", m);
-        super.setDescription("Zeigt an welche Spieler zuletzt online waren");
-        super.setUsage("/lastseen [amount]");
-        super.setPermission(Permissions.LASTSEEN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        File[] files = new File("./world/playerdata/").listFiles();
-        String helper;
-        String name;
-        long longhelper;
-        Table table = new Table(2);
-        
-        PlayerBank pb = KajetansMod.playerbank.getDataBank();
-        for(File output : files)
-        {
-            helper = output.getName();
-            if(!helper.endsWith(".dat"))
-            {
-                continue;
-            }
-            longhelper = output.lastModified(); 
-            helper = helper.substring(0, helper.length() - 4);
-            name = pb.getName(helper);
-            if(name == null)
-            {
-                name = helper;
-            }
-            table.addRow(new Object[] {longhelper, name});
-        }
-        
-        table.sort();
-        table.reverse();
-        SimpleDateFormat ft = new SimpleDateFormat ("dd.MM.yyyy '§rum§7' HH:mm:ss");
-        
-        Module m = this.getModule();
-        int limit = 10;   
-        if(arg.length >= 1)
-        {
-            try
-            {
-                limit = Integer.parseInt(arg[0]);
-                if(limit < 1)
-                {
-                    throw new NumberFormatException();
-                }
-            }
-            catch(NumberFormatException ex)
-            {
-                m.send(cs, GlobalText.noPositiveNaturalNumber());
-                return true;
-            }
-        }
-        
-        if(table.getSize() < limit)
-        {
-            limit = table.getSize();
-        }
-        
-        m.send(cs, "Zuletzt waren folgende Spieler online:");
-        for(int i = 0; i < limit; i++)
-        {
-            m.sendListElement(cs, "§7" + table.getElement(i, 1) + "§r am §7" + ft.format(new Date((long) table.getElement(i, 0))));
-        }
-        return true;
-    }
-}

+ 0 - 33
src/main/java/me/km/commands/CommandLightUpdate.java

@@ -1,33 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandLightUpdate extends ModuleCommand
-{
-    public CommandLightUpdate(Module m) 
-    {
-        super("lightupdate", m);
-        super.setDescription("Entfernt Lichtbugs");
-        super.setUsage("/lightupdate");
-        super.setPermission(Permissions.LIGHTUPDATE);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        this.getModule().send(cs, GlobalText.notImplementedYet());
-        return true;
-    }
-    
-}

+ 0 - 50
src/main/java/me/km/commands/CommandList.java

@@ -1,50 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.chatmanager.ChatManager;
-import java.util.List;
-import java.util.stream.Collectors;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandList extends ModuleCommand
-{
-    public CommandList(Module m) 
-    {
-        super("list", m);
-        super.setDescription("Zeigt die online Spieler an");
-        super.setUsage("/list");
-        super.setPermission(Permissions.LIST);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        Module m = this.getModule();
-        List<EntityPlayerMP> players = KajetansMod.server.getPlayerList().getPlayers();
-        int number = players.size();
-        int max = KajetansMod.server.getMaxPlayers();      
-        switch(number) 
-        {
-            case 1:    
-                m.send(cs, "Es ist §7einer§r von maximal §7" + max + "§r Spielern online:");
-                break;
-            case 0:
-                m.send(cs, "Es sind §70§r von maximal §7" + max + "§r Spielern online.");
-                return true;
-            default:
-                m.send(cs, "Es sind §7" + number + "§r von maximal §7" + max + "§r Spielern online:");
-                break;
-        }
-        ChatManager man = KajetansMod.chatManager;
-        if(number > 0)
-        {
-            cs.sendMessage(new TextComponentString(players.stream().map(p -> man.getFullName(p)).collect(Collectors.joining("§7, §r"))));
-        }
-        return true;
-    }
-}

+ 0 - 28
src/main/java/me/km/commands/CommandMemory.java

@@ -1,28 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandMemory extends ModuleCommand
-{
-    public CommandMemory(Module m) 
-    {
-        super("memory", m);
-        super.setDescription("Gibt RAM Information aus");
-        super.setUsage("/memory");
-        super.setPermission(Permissions.MEMORY);
-        super.addAlias("mem");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        Runtime runtime = Runtime.getRuntime();
-        long allocatedMemory = runtime.totalMemory() / 1048576;
-        long usedMemory = allocatedMemory - (runtime.freeMemory() / 1048576);
-        this.getModule().send(cs, "RAM-Belegung: " + usedMemory + " / " + allocatedMemory + " MB");
-        return true;
-    }
-}

+ 0 - 41
src/main/java/me/km/commands/CommandMore.java

@@ -1,41 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-
-public class CommandMore extends ModuleCommand
-{
-    public CommandMore(Module m) 
-    {
-        super("more", m);
-        super.setDescription("Stackt die Hand auf 64");
-        super.setUsage("/more");
-        super.setPermission(Permissions.MORE);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        ItemStack stack = p.getHeldItemMainhand();
-        if(stack == null || stack.getItem() == Items.AIR)
-        {
-            this.getModule().send(cs, "Du musst ein Item in der Hand halten.");
-            return true;
-        }
-        stack.setCount(64);
-        this.getModule().send(cs, "Das Item wurde auf 64 gestackt.");
-        return true;
-    }
-}

+ 0 - 53
src/main/java/me/km/commands/CommandMsg.java

@@ -1,53 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import java.util.HashMap;
-import me.km.api.Utils;
-import me.km.chatmanager.ChatManager;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandMsg extends ModuleCommand
-{
-    protected final HashMap<String, String> answer; 
-    
-    public CommandMsg(Module m) 
-    {
-        super("msg", m);
-        super.setDescription("Schreibt dem Spieler eine Privatnachricht");
-        super.setUsage("/msg <player> <message> oder /r <message>");
-        super.setPermission(Permissions.MSG);
-        super.addAlias("tell");
-        answer = new HashMap<>();
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length <= 1)
-        {
-            return false;
-        }
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        String message = ChatManager.colorMessage(Utils.connectSpaces(arg, 1), cs);
-        cs.sendMessage(new TextComponentString("§6[ -> §c" + affectedPlayer.getName() + "§6] §r" + message));
-        affectedPlayer.sendMessage(new TextComponentString("§6[§c" + cs.getName()+ "§6] §r" + message));
-        answer.put(cs.getName(), affectedPlayer.getName());
-        answer.put(affectedPlayer.getName(), cs.getName());
-        return true;
-    }
-}

+ 0 - 40
src/main/java/me/km/commands/CommandPosition.java

@@ -1,40 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.BlockPos;
-
-public class CommandPosition extends ModuleCommand
-{
-    public CommandPosition(Module m) 
-    {
-        super("position", m);
-        super.setDescription("Zeigt deine Position an");
-        super.setUsage("/position");
-        super.setPermission(Permissions.POSITION);
-        super.addAlias("pos");
-        super.addAlias("whereami");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        Module m = this.getModule();
-        m.send(cs, "Welt: " + p.getEntityWorld().getWorldInfo().getWorldName());
-        BlockPos l = p.getPosition();
-        m.send(cs, "Koordinaten: " + l.getX() + " | " + l.getY() + " | " + l.getZ());
-        m.send(cs, "Yaw: " + p.rotationYaw);
-        m.send(cs, "Pitch: " + p.rotationPitch);
-        return true;
-    }
-}

+ 0 - 72
src/main/java/me/km/commands/CommandPotion.java

@@ -1,72 +0,0 @@
-package me.km.commands;
-
-import java.util.ArrayList;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import java.util.stream.Collectors;
-import me.km.api.ModuleTabCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-import net.minecraft.potion.Potion;
-import net.minecraft.potion.PotionEffect;
-import net.minecraft.potion.PotionUtils;
-
-public class CommandPotion extends ModuleTabCommand
-{
-    public CommandPotion(Module m) 
-    {
-        super("potion", m, Potion.REGISTRY.getKeys().stream().map(r -> r.getResourcePath()).collect(Collectors.toList()), 0); 
-        super.setDescription("Erzeugt Custom-Potions");
-        super.setUsage("/potion [effect] [duration] [amplifier]");
-        super.setPermission(Permissions.POTION);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        ItemStack hand = p.getHeldItemMainhand();
-        if(hand.getItem() != Items.SPLASH_POTION &&
-           hand.getItem() != Items.POTIONITEM &&
-           hand.getItem() != Items.LINGERING_POTION)
-        {
-            this.getModule().send(cs, "Du musst einen Trank in der Hand halten.");
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-
-        try
-        {
-            ArrayList<PotionEffect> list = new ArrayList<>();
-            list.add(new PotionEffect(Potion.getPotionFromResourceLocation(arg[0]), Integer.parseInt(arg[1]), Integer.parseInt(arg[2])));
-            PotionUtils.appendEffects(hand, list);
-            this.getModule().send(cs, "Der Effekt wurde hinzugefügt.");
-        }
-        catch(NumberFormatException ex)
-        {
-            this.getModule().send(cs, GlobalText.noIntegerNumber());
-            return true;
-        }
-        catch(NullPointerException ex)
-        {
-            this.getModule().send(cs, "Der gegebene Potion-Effect existiert nicht.");
-            return true;
-        }
-        catch(ArrayIndexOutOfBoundsException ex)
-        {
-            return false;
-        }
-        return true;
-    }
-}

+ 0 - 70
src/main/java/me/km/commands/CommandPvP.java

@@ -1,70 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import me.km.playerbank.PlayerManager;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandPvP extends ModuleCommand
-{
-    public CommandPvP(Module m) 
-    {
-        super("pvp", m);
-        super.setDescription("Schaltet deine PVP-Einstellungen");
-        super.setUsage("/pvp [player]");
-        super.setPermission(Permissions.PVP);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        try
-        {
-            if(!KajetansMod.perms.hasPermission(cs, Permissions.PVP_OTHER))
-            {
-                throw new IndexOutOfBoundsException();
-            }
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-        }
-        
-        PlayerManager pb = KajetansMod.playerbank;
-        if(pb.getPvpStatus(affectedPlayer))
-        {
-            pb.setPvpStatus(affectedPlayer, false);
-            this.getModule().send(affectedPlayer, "Du hast PVP nun aus.");
-            if(!affectedPlayer.equals(cs))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " hat PVP nun aus.");
-            }
-            return true;
-        }
-        pb.setPvpStatus(affectedPlayer, true);
-        this.getModule().send(affectedPlayer, "Du hast PVP nun an.");
-        if(!affectedPlayer.equals(cs))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " hat PVP nun an.");
-        }
-        return true;
-    }
-}

+ 0 - 42
src/main/java/me/km/commands/CommandRepair.java

@@ -1,42 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-public class CommandRepair extends ModuleCommand
-{
-    public CommandRepair(Module m) 
-    {
-        super("repair", m);
-        super.setDescription("Repariert ein Item");
-        super.setUsage("/repair");
-        super.setPermission(Permissions.REPAIR);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        ItemStack stack = ((EntityPlayer) cs).getHeldItemMainhand();
-        if(stack == null || stack == ItemStack.EMPTY)
-        {
-            this.getModule().send(cs, "Du musst ein Item in der Hand halten.");
-            return true;
-        }
-        if(stack.getItemDamage() != 0)
-        {
-            stack.setItemDamage(0);
-        }
-        this.getModule().send(cs, "Das Item wurde repariert.");
-        return true;
-    }
-}

+ 0 - 28
src/main/java/me/km/commands/CommandSay.java

@@ -1,28 +0,0 @@
-package me.km.commands;
-
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandSay extends ModuleCommand
-{
-    public CommandSay(Module m) 
-    {
-        super("say", m);
-        super.setDescription("Lässt den Server sprechen");
-        super.setUsage("/say");
-        super.setPermission(Permissions.SAY);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        KajetansMod.server.getPlayerList().sendMessage(
-                new TextComponentString("[§cServer§r] " + Utils.connectSpaces(arg, 0)));
-        return true;
-    }
-}

+ 0 - 58
src/main/java/me/km/commands/CommandSeen.java

@@ -1,58 +0,0 @@
-package me.km.commands;
-
-import java.io.File;
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSeen extends ModuleCommand
-{
-    public CommandSeen(Module m) 
-    {
-        super("seen", m);
-        super.setDescription("Zeigt wann ein Spieler zuletzt online war");
-        super.setUsage("/seen <player>");
-        super.setPermission(Permissions.SEEN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        try
-        {
-            EntityPlayer p = Utils.getPlayerByName(arg[0]);  
-            this.getModule().send(cs, p.getName() + " ist gerade online.");
-            return true;
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            String uuid = KajetansMod.playerbank.getDataBank().getUUID(arg[0]);
-            if(uuid == null)
-            {
-                this.getModule().send(cs, arg[0] + " war noch nie auf dem Server.");
-                return true;
-            }
-            File f = new File("./world/playerdata/" + uuid + ".dat"); 
-            if(!f.exists())
-            {
-                this.getModule().send(cs, "Die Spielerdaten wurden nicht gefunden.");
-                return true;
-            }
-            Date date = new Date(f.lastModified());
-            SimpleDateFormat ft = new SimpleDateFormat ("dd.MM.yyyy 'um' HH:mm:ss");
-            this.getModule().send(cs, arg[0] + " war zuletzt am " + ft.format(date) + " online.");
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            return false;
-        }
-    }
-}

+ 0 - 42
src/main/java/me/km/commands/CommandSetBed.java

@@ -1,42 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.util.math.BlockPos;
-
-public class CommandSetBed extends ModuleCommand
-{
-    public CommandSetBed(Module m) 
-    {
-        super("setbed", m);
-        super.setDescription("Setzt deinen Bettspawn");
-        super.setUsage("/setbed");
-        super.setPermission(Permissions.SET_BED);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        BlockPos pos = Utils.getTargetBlock(p);
-        if(p.world.getBlockState(pos).getBlock() != Blocks.BED)
-        {
-            this.getModule().send(cs, "Du musst auf ein Bett gerichtet sein.");
-            return true;
-        }
-        p.setSpawnChunk(pos, true, p.world.provider.getDimension());
-        this.getModule().send(cs, "Dein Bett-Spawn wurde gesetzt.");
-        return true;
-    }
-}

+ 0 - 55
src/main/java/me/km/commands/CommandSetHome.java

@@ -1,55 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSetHome extends ModuleCommand
-{
-    public CommandSetHome(Module m) 
-    {
-        super("sethome", m);
-        super.setDescription("Erstellt einen neuen Home");
-        super.setUsage("/sethome <name>");
-        super.setPermission(Permissions.SET_HOME);
-    }
-
-    public boolean addHome(String name, String uuid, Location l)
-    {
-        SimpleConfig sc = new SimpleConfig(this.getModule(), "home/" + uuid, name, false);
-        if(sc.exists())
-        {
-            return false;
-        }
-        sc.setLocation("home", l);
-        sc.save();
-        return true;
-    }
-    
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayer p = ((EntityPlayer) cs);
-        if(addHome(arg[0], p.getUniqueID().toString(), new Location(p)))
-        {
-            this.getModule().send(cs, "Der Home " + arg[0] + " wurde erstellt.");
-            return true;
-        }
-        this.getModule().send(cs, "Der Home " + arg[0] + " existiert bereits.");
-        return true;
-    }
-}

+ 0 - 34
src/main/java/me/km/commands/CommandSetSpawn.java

@@ -1,34 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSetSpawn extends ModuleCommand
-{
-    public CommandSetSpawn(Module m) 
-    {
-        super("setspawn", m);
-        super.setDescription("Setzt den Spawn neu an deiner Position");
-        super.setUsage("/setspawn");
-        super.setPermission(Permissions.SET_SPAWN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        this.getModule().send(cs, "Der neue Spawn wurde gesetzt.");
-        EntityPlayer p = (EntityPlayer) cs;
-        Utils.setSpawn(p.world, p.getPositionVector(), p.rotationYaw, p.rotationPitch);
-        return true;
-    }
-}

+ 0 - 55
src/main/java/me/km/commands/CommandSetWarp.java

@@ -1,55 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSetWarp extends ModuleCommand
-{
-    public CommandSetWarp(Module m) 
-    {
-        super("setwarp", m);
-        super.setDescription("Erstellt einen neuen Warp");
-        super.setUsage("/setwarp <warpname>");
-        super.setPermission(Permissions.SET_WARP);
-    }
-
-    public boolean addWarp(String name, Location l)
-    {
-        SimpleConfig sc = new SimpleConfig(this.getModule(), "warp", name, false);
-        if(sc.exists())
-        {
-            return false;
-        }
-        sc.setLocation("warp", l);
-        sc.save();
-        return true;
-    }
-    
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        if(addWarp(arg[0], new Location((EntityPlayer) cs)))
-        {
-            this.getModule().send(cs, "Der Warp " + arg[0] + " wurde erstellt.");
-            return true;
-        }
-        this.getModule().send(cs, "Der Warp " + arg[0] + " existiert bereits.");
-        return true;
-    }
-}

+ 0 - 76
src/main/java/me/km/commands/CommandSign.java

@@ -1,76 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.chatmanager.ChatManager;
-import me.km.permissions.Permissions;
-import me.km.utils.SpecialBlockUtils;
-import net.minecraft.block.Block;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.tileentity.TileEntitySign;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class CommandSign extends ModuleCommand
-{
-    public CommandSign(Module m) 
-    {
-        super("sign", m);
-        super.setDescription("Editiert ein Schild");
-        super.setUsage("/sign <1-4> [text]");
-        super.setPermission(Permissions.SIGN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        World w = p.getEntityWorld();
-        BlockPos pos = Utils.getTargetBlock(p, 20, true);
-        Block b = w.getBlockState(pos).getBlock();
-        if(b == Blocks.STANDING_SIGN || b == Blocks.WALL_SIGN)
-        {
-            TileEntitySign sign = (TileEntitySign) w.getTileEntity(pos);
-            if(sign == null)
-            {
-                this.getModule().send(cs, GlobalText.shouldNotHappen());
-                return true;
-            }
-            
-            int line;
-            try
-            {        
-                line = Integer.parseInt(arg[0]) - 1;
-                if(line > 3 || line < 0)
-                {
-                    throw new java.lang.NumberFormatException();
-                }
-            }
-            catch(java.lang.NumberFormatException ex)
-            {
-                this.getModule().send(cs, "Du musst eine Zahl von 1 bis 4 eingeben.");
-                return true;
-            }
-
-            String newText = Utils.connectSpaces(arg, 1); 
-            newText = ChatManager.colorMessage(newText, p);    
-            SpecialBlockUtils.setSignLine(sign, line, newText);
-            return true;
-        } 
-        this.getModule().send(cs, "Du bist nicht auf ein Schild gerichtet.");          
-        return true;
-    }
-}

+ 0 - 35
src/main/java/me/km/commands/CommandSilent.java

@@ -1,35 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-
-public class CommandSilent extends ModuleCommand
-{
-    public boolean silentjoin;
-    
-    public CommandSilent(Module m) 
-    {
-        super("silent", m);
-        super.setDescription("Stellt den Silent-Join an oder aus");
-        super.setUsage("/silent");
-        super.setPermission(Permissions.SILENT);
-        
-        silentjoin = false;
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(silentjoin)
-        {
-            silentjoin = false;
-            this.getModule().send(cs, "Silent Join ist nun aus.");
-            return true;
-        }
-        silentjoin = true;
-        this.getModule().send(cs, "Silent Join ist nun an.");
-        return true;
-    }
-}

+ 0 - 39
src/main/java/me/km/commands/CommandSkull.java

@@ -1,39 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.block.Block;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSkull extends ModuleCommand
-{
-    public CommandSkull(Module m) 
-    {
-        super("skull", m);
-        super.setDescription("Gibt dir den Kopf eines Spielers");
-        super.setUsage("/skull <owner>");
-        super.setPermission(Permissions.SKULL);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        Block.spawnAsEntity(p.getEntityWorld(), p.getPosition(), Utils.getPlayerHead(arg[0]));
-        this.getModule().send(cs, "Dir wurde ein Kopf von " + arg[0] + " gegeben.");
-        return true;
-    }
-}

+ 0 - 60
src/main/java/me/km/commands/CommandSpawn.java

@@ -1,60 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSpawn extends ModuleCommand
-{
-    public CommandSpawn(Module m) 
-    {
-        super("spawn", m);
-        super.setDescription("Teleportiert einen Spieler zum Spawn.");
-        super.setUsage("/spawn [player]");
-        super.setPermission(Permissions.SPAWN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);    
-            this.getModule().send(affectedPlayer, "Du wurdest zum Spawn teleportiert.");
-            this.getModule().send(cs, affectedPlayer.getName() + " wurde zum Spawn teleportiert.");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-            this.getModule().send(affectedPlayer, "Du wurdest zum Spawn teleportiert.");
-        }
-        Location l = Utils.getSpawn();
-        if(l == null)
-        {
-            this.getModule().send(affectedPlayer, "Es wurde kein Spawn gesetzt.");
-        }
-        else if(l.getWorld() == null)
-        {
-            this.getModule().send(affectedPlayer, "Die Welt des Spawns existiert nicht.");
-        }
-        Utils.teleportEntity(affectedPlayer, l);
-        return true;
-    }
-}

+ 0 - 63
src/main/java/me/km/commands/CommandSpawner.java

@@ -1,63 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityList;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.tileentity.TileEntityMobSpawner;
-import net.minecraft.util.math.BlockPos;
-
-public class CommandSpawner extends ModuleCommand
-{
-    public CommandSpawner(Module m) 
-    {
-        super("spawner", m);
-        super.setDescription("Ändert den Typ eines Spawners");
-        super.setUsage("/spawner <mob>");
-        super.setPermission(Permissions.SPAWN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        Class<? extends Entity> c;
-        try
-        {
-            c = (Class<? extends Entity>) Class.forName(arg[0]);
-        }
-        catch(ClassNotFoundException | ClassCastException ex)
-        {
-            this.getModule().send(cs, "Dieser Typ existiert nicht.");
-            return true;
-        }
-        
-        EntityPlayer p = (EntityPlayer) cs;
-        BlockPos pos = Utils.getTargetBlock(p);
-        TileEntity tile = p.world.getTileEntity(pos);
-        if(!(tile instanceof TileEntityMobSpawner))
-        {
-            this.getModule().send(cs, "Du musst auf einen Spawner gerichtet sein.");
-            return true;
-        }
-        TileEntityMobSpawner spawner = (TileEntityMobSpawner) tile;
-        spawner.getSpawnerBaseLogic().setEntityId(EntityList.getKey(c));
-        String s = c.getSimpleName();
-        this.getModule().send(cs, "Der Spawner spawnt nun den Typ §6" + s.substring(0, s.length() - 6) + "§r.");
-        return true;
-    }
-}

+ 0 - 80
src/main/java/me/km/commands/CommandSpeed.java

@@ -1,80 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import me.km.utils.ReflectionUtils;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandSpeed extends ModuleCommand
-{
-    public CommandSpeed(Module m) 
-    {
-        super("speed", m);
-        super.setDescription("Setzt das Tempo eines Spielers");
-        super.setUsage("/speed <1-10> [player]");
-        super.setPermission(Permissions.SPEED);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        
-        int i;
-        try
-        {
-            i = Integer.parseInt(arg[0]);
-            if(i < 1)
-            {
-                throw new NumberFormatException();
-            }
-        }
-        catch(NumberFormatException ex)
-        {
-            this.getModule().send(cs, GlobalText.noPositiveNaturalNumber());
-            return true;
-        }        
-        if(i > 10)
-        {
-            i = 10;
-        }     
-        float f = i / 20f;
-        
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[1]);  
-            ReflectionUtils.setFlySpeed(affectedPlayer.capabilities, f);
-            ReflectionUtils.setWalkSpeed(affectedPlayer.capabilities, f * 2);
-            this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + ".");
-            this.getModule().send(cs, affectedPlayer.getName() + " hat nun Tempo " + i + ".");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-            ReflectionUtils.setFlySpeed(affectedPlayer.capabilities, f);
-            ReflectionUtils.setWalkSpeed(affectedPlayer.capabilities, f * 2);
-            this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + ".");
-        } 
-        affectedPlayer.sendPlayerAbilities();
-        return true;
-    }
-}

+ 0 - 127
src/main/java/me/km/commands/CommandSummon.java

@@ -1,127 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.CommandException;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityList;
-import net.minecraft.entity.EntityLiving;
-import net.minecraft.entity.effect.EntityLightningBolt;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.nbt.JsonToNBT;
-import net.minecraft.nbt.NBTException;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.ResourceLocation;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.util.text.ITextComponent;
-import net.minecraft.world.World;
-import net.minecraft.world.chunk.storage.AnvilChunkLoader;
-
-public class CommandSummon extends ModuleCommand
-{
-    public CommandSummon(Module m) 
-    {
-        super("summon", m);
-        super.setDescription("Spawnt ein Mob / Mobs");
-        super.setUsage("/summon <type> [amount] [data]");
-        super.setPermission(Permissions.SUMMON);
-        super.addAlias("spawnmob");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        int counter = 1;
-        if(arg.length >= 2)
-        {
-            try
-            {
-                counter = Integer.parseInt(arg[1]);
-            }
-            catch(NumberFormatException ex)
-            {
-            }
-        }
-        BlockPos target = Utils.getTargetBlock(p).add(0, 1, 0);
-
-        String s = arg[0];
-        double d0 = target.getX();
-        double d1 = target.getY();
-        double d2 = target.getZ();
-
-        World world = p.getEntityWorld();
-
-        try
-        {
-            if (!world.isBlockLoaded(target))
-            {
-                this.getModule().send(cs, "Der Spawnpunkt ist außerhalb der Welt.");
-                return true;
-            }
-            else if (EntityList.LIGHTNING_BOLT.equals(new ResourceLocation(s)))
-            {
-                world.addWeatherEffect(new EntityLightningBolt(world, d0, d1, d2, false));
-            }
-            else
-            {
-                NBTTagCompound nbttagcompound = new NBTTagCompound();
-                boolean flag = false;
-
-                if (arg.length >= 3)
-                {
-                    ITextComponent itextcomponent = getChatComponentFromNthArg(cs, arg, 2);
-                    try
-                    {
-                        nbttagcompound = JsonToNBT.getTagFromJson(itextcomponent.getUnformattedText());
-                        flag = true;
-                    }
-                    catch (NBTException nbtexception)
-                    {
-                        this.getModule().send(cs, "Der Tag ist ungültig.");
-                        return true;
-                    }
-                }
-
-                nbttagcompound.setString("id", s);
-                for(int i = 0; i < counter; i++)
-                {
-                    Entity entity = AnvilChunkLoader.readWorldEntityPos(nbttagcompound, world, d0, d1, d2, true);
-
-                    if (entity == null)
-                    {
-                        this.getModule().send(cs, "Die Entity lässt sich nicht spawnen.");
-                        return true;
-                    }
-                    else
-                    {
-                        entity.setLocationAndAngles(d0, d1, d2, entity.rotationYaw, entity.rotationPitch);
-
-                        if (!flag && entity instanceof EntityLiving)
-                        {
-                            ((EntityLiving) entity).onInitialSpawn(world.getDifficultyForLocation(new BlockPos(entity)), null);
-                        }
-                    }
-                }
-            }
-        }
-        catch(CommandException ex)
-        {
-            this.getModule().send(cs, "Die Parameter konnten nicht gelesen werden.");
-        }
-        return true;
-    }
-}

+ 0 - 73
src/main/java/me/km/commands/CommandTeleport.java

@@ -1,73 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandTeleport extends ModuleCommand
-{
-    public CommandTeleport(Module m) 
-    {
-        super("tp", m);
-        super.setDescription("Teleportiert einen Spieler zu einem anderen");
-        super.setUsage("/tp [player] <to-player>");
-        super.setPermission(Permissions.TELEPORT);
-        super.addAlias("teleport");
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }       
-        EntityPlayer affectedPlayer2;
-        try
-        {
-            affectedPlayer2 = Utils.getPlayerByName(arg[1]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            Utils.teleportEntity((EntityPlayer) cs, affectedPlayer);
-            this.getModule().send(cs, "Du wurdest zu " + affectedPlayer.getName() + " teleportiert.");
-            if(!((EntityPlayer) cs).isSpectator())
-            {
-                this.getModule().send(affectedPlayer, cs.getName() + " hat sich zu dir teleportiert.");
-            }
-            return true;
-        }
-        Utils.teleportEntity(affectedPlayer, affectedPlayer2);
-        this.getModule().send(affectedPlayer, "Du wurdest zu " + affectedPlayer2.getName() + " teleportiert.");
-        if(!affectedPlayer.isSpectator())
-        {
-            this.getModule().send(affectedPlayer2, affectedPlayer.getName() + " hat sich zu dir teleportiert.");
-        }
-        return true;
-    }
-}

+ 0 - 56
src/main/java/me/km/commands/CommandTeleportAccept.java

@@ -1,56 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import java.util.HashMap;
-import java.util.UUID;
-import me.km.KajetansMod;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-public class CommandTeleportAccept extends ModuleCommand
-{
-    public HashMap<UUID, UUID> tpaccept;
-    
-    public CommandTeleportAccept(Module m) 
-    {
-        super("teleportaccept", m);
-        super.setDescription("Akzeptiert eine Teleportanfrage");
-        super.setUsage("/teleportaccept");
-        super.setPermission(Permissions.TELEPORT_ACCEPT);
-        super.addAlias("tpa");
-        
-        tpaccept = new HashMap<>();
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayer p = (EntityPlayer) cs;
-        if(!tpaccept.containsKey(p.getUniqueID()))
-        {
-            this.getModule().send(cs, "Du hast keine ausstehenden Teleportanfragen.");
-            return true;
-        }
-        EntityPlayer affectedPlayer = KajetansMod.server.getPlayerList().getPlayerByUUID(tpaccept.get(p.getUniqueID()));
-        if(affectedPlayer == null)
-        {
-            this.getModule().send(cs, "Der Spieler ist nicht mehr online.");
-            tpaccept.remove(p.getUniqueID());
-            return true;
-        }            
-        tpaccept.remove(p.getUniqueID());
-        Utils.teleportEntity(affectedPlayer, p);
-        this.getModule().send(affectedPlayer, "Du wurdest zu " + p.getName() + " teleportiert.");
-        this.getModule().send(p, affectedPlayer.getName() + " hat sich zu dir teleportiert.");
-        return true;
-    }
-}

+ 0 - 81
src/main/java/me/km/commands/CommandTempBan.java

@@ -1,81 +0,0 @@
-package me.km.commands;
-
-import com.mojang.authlib.GameProfile;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import java.util.Date;
-import me.km.KajetansMod;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.management.UserListBansEntry;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandTempBan extends ModuleCommand
-{
-    public CommandTempBan(Module m) 
-    {
-        super("tempban", m);
-        super.setDescription("Bannt einen Spiele temporär");
-        super.setUsage("/tempban <name> <days> <hours> <minutes> <reason>");
-        super.setPermission(Permissions.TEMP_BAN);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length <= 4)
-        {
-            return false;
-        }
-        Date date = new Date(System.currentTimeMillis());
-        try
-        {
-            long days = Integer.parseInt(arg[1]) * 86400000l;
-            long hours = Integer.parseInt(arg[2]) * 3600000l;
-            long minutes = Integer.parseInt(arg[3]) * 60000l;
-            if(days < 0 || hours < 0 || minutes < 0)
-            {
-                throw new NumberFormatException();
-            }
-            date.setTime(date.getTime() + days + hours + minutes);
-        }
-        catch(NumberFormatException ex)
-        {
-            this.getModule().send(cs, GlobalText.noNaturalNumber());
-            return true;
-        }    
-        GameProfile affectedPlayer = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[0]);
-        if(affectedPlayer == null)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        String time = arg[1] + " Tage, " + arg[2] + " Stunden und " + arg[3] + " Minuten";
-        if(arg[1].equals("1"))
-        {
-            time = time.replace("Tage", "Tag");
-        }
-        if(arg[2].equals("1"))
-        {
-            time = time.replace("Stunden", "Stunde");
-        }
-        if(arg[3].equals("1"))
-        {
-            time = time.replace("Minuten", "Minute");
-        }
-        String message = Utils.connectSpaces(arg, 4);
-        this.getModule().sendBroadcast("§4" + affectedPlayer.getName() + " §cwurde von §4" + cs.getName() + "§c für " + time + " gebannt, weil: §4" + message);    
-        
-        UserListBansEntry bans = new UserListBansEntry(affectedPlayer, null, cs.getName(), date, message);
-        KajetansMod.server.getPlayerList().getBannedPlayers().addEntry(bans);
-        EntityPlayerMP p = KajetansMod.server.getPlayerList().getPlayerByUUID(affectedPlayer.getId());
-        if(p != null)
-        {
-            p.connection.disconnect(new TextComponentString("§4Du §cwurdest von §4" + cs.getName() + "§c für " + time + " gebannt, weil: §4" + message));
-        }
-        return true;
-    }
-}

+ 0 - 77
src/main/java/me/km/commands/CommandTest.java

@@ -1,77 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public class CommandTest extends ModuleCommand
-{
-    public CommandTest(Module m) 
-    {
-        super("test", m);
-        super.setDescription("Für Tests");
-        super.setUsage("/test");
-        super.setPermission(Permissions.TEST);
-    }   
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayerMP))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        EntityPlayerMP p = (EntityPlayerMP) cs;
-        /*if(!p.world.isRemote)
-        {
-            ItemStack stack = p.getHeldItemMainhand();
-            if(arg.length >= 1 && stack.hasCapability(ChestKeyProvider.CHEST_KEY_CAP, null))
-            {
-                IChestKey key = stack.getCapability(ChestKeyProvider.CHEST_KEY_CAP, null);
-                if(key == null)
-                {
-                    p.sendMessage(new TextComponentString("NEIN"));
-                    // will never happen
-                    return true;
-                }
-                switch(arg[0])
-                {
-                    case "key":
-                    {
-                        if(arg.length >= 2)
-                        {
-                            key.setKey(arg[1]);
-                            this.getModule().send(cs, "Schlüssel geändert auf '" + arg[1] + "'");
-                        }
-                        else
-                        {
-                            this.getModule().send(cs, "'" + key.getKey() + "'");
-                        }
-                        break;
-                    }
-                    case "copy":
-                    {
-                        key.setCopy(!key.isCopy());
-                        this.getModule().send(cs, "Copy-Status ist nun '" + key.isCopy() + "'");
-                        break;
-                    }
-                    case "1":
-                    {
-                        SPacketSetSlot packet = new SPacketSetSlot(p.currentWindowId, p.inventory.currentItem, stack);
-                        p.connection.sendPacket(packet);
-                        break;
-                    }
-                }
-            }
-            else
-            {
-                p.sendMessage(new TextComponentString("NO CAPS"));
-            }
-        }*/
-        return true;
-    }
-}

+ 0 - 65
src/main/java/me/km/commands/CommandTime.java

@@ -1,65 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.world.World;
-
-public class CommandTime extends ModuleCommand
-{
-    public CommandTime(Module m) 
-    {
-        super("time", m);
-        super.setDescription("Setzt die Tageszeit in einer Welt");
-        super.setUsage("/time <day|night|ticks_as_number>");
-        super.setPermission(Permissions.TIME);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(!(cs instanceof EntityPlayer))
-        {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
-            return true;
-        }
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        
-        World w = ((EntityPlayer) cs).getEntityWorld();
-        if(arg[0].equals("day"))
-        {
-            w.setWorldTime(0);
-            this.getModule().send(cs, "Die Tageszeit wurde auf 0 gesetzt.");
-            return true;
-        }
-        else if(arg[0].equals("night"))
-        {
-            w.setWorldTime(14000);
-            this.getModule().send(cs, "Die Tageszeit wurde auf 14000 gesetzt.");
-            return true;
-        }
-        try
-        {
-            int time = Integer.parseInt(arg[0]);
-            if(time < 0)
-            {
-                this.getModule().send(cs, GlobalText.noNaturalNumber());
-                return true;
-            }
-            w.setWorldTime(time);
-            this.getModule().send(cs, "Die Tageszeit wurde auf " + arg[0] + " gesetzt.");
-            return true;
-        }
-        catch(Exception ex)
-        {
-            this.getModule().send(cs, GlobalText.noNaturalNumber());
-            return true;
-        }
-    }
-}

+ 0 - 58
src/main/java/me/km/commands/CommandTop.java

@@ -1,58 +0,0 @@
-package me.km.commands;
-
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.exception.PlayerNotFoundException;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.Vec3d;
-import net.minecraft.world.World;
-
-public class CommandTop extends ModuleCommand
-{
-    public CommandTop(Module m) 
-    {
-        super("top", m);
-        super.setDescription("Teleportiert einen Spieler nach oben");
-        super.setUsage("/top [player]");
-        super.setPermission(Permissions.TOP);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[0]); 
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-        }
-        World w = affectedPlayer.getEntityWorld();
-        Vec3d v = affectedPlayer.getPositionVector();
-        v = v.addVector(0, w.getHeight((int) v.x, (int) v.z) - v.y, 0);
-        Utils.teleportEntity(affectedPlayer, new Location(w, v));
-        this.getModule().send(cs, "Du wurdest nach oben teleportiert.");
-        if(!cs.equals(affectedPlayer))
-        {
-            this.getModule().send(cs, affectedPlayer.getName() + " wurde nach oben teleportiert.");
-        }
-        return true;
-    }
-}

+ 0 - 84
src/main/java/me/km/commands/CommandTpPos.java

@@ -1,84 +0,0 @@
-package me.km.commands;
-
-import me.km.permissions.Permissions;
-import me.km.api.Utils;
-import me.km.api.GlobalText;
-import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.dimensions.ModDimensions;
-import me.km.exception.PlayerNotFoundException;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.math.Vec3d;
-import net.minecraft.world.World;
-
-public class CommandTpPos extends ModuleCommand
-{
-    public CommandTpPos(Module m) 
-    {
-        super("tppos", m);
-        super.setDescription("Teleportiert einen Spieler zu Koordinaten");
-        super.setUsage("/tppos <x> <y> <z> [world] [player]");
-        super.setPermission(Permissions.TP_POS);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 3)
-        {
-            return false;
-        }
-        EntityPlayer affectedPlayer;  
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[4]);                   
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[4]));
-            return true;
-        }   
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }
-            affectedPlayer = (EntityPlayer) cs;
-        } 
-        
-        try
-        {
-            World w;
-            if(arg.length >= 4)
-            {
-                w = ModDimensions.getWorldFromName(arg[3]);
-                if(w == null)
-                {
-                    this.getModule().send(cs, "Die Welt '" + arg[3] + "' wurde nicht gefunden.");
-                }
-            }
-            else
-            {
-                w = affectedPlayer.getEntityWorld();
-            }
-            Vec3d v = new Vec3d(Double.parseDouble(arg[0]), Double.parseDouble(arg[1]), Double.parseDouble(arg[2]));
-            Utils.teleportEntity(affectedPlayer, new Location(w, v));
-            String s = " zu " + v.x + ", " + v.y + ", " + v.z + " teleportiert.";
-            this.getModule().send(affectedPlayer, "Du wurdest" + s);
-            if(!cs.equals(affectedPlayer))
-            {
-                this.getModule().send(cs, affectedPlayer.getName() + " wurde" + s);
-            }
-            return true;
-        }
-        catch(Exception ex)
-        {
-            this.getModule().send(cs, GlobalText.noIntegerNumber());
-            return true;
-        }  
-    }
-}

+ 0 - 54
src/main/java/me/km/commands/CommandUser.java

@@ -1,54 +0,0 @@
-package me.km.commands;
-
-import com.mojang.authlib.GameProfile;
-import me.km.KajetansMod;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.management.PlayerList;
-import net.minecraft.util.text.TextComponentString;
-
-public class CommandUser extends ModuleCommand
-{
-    public CommandUser(Module m) 
-    {
-        super("user", m);
-        super.setDescription("Gibt Informationen über einen Spieler");
-        super.setUsage("/user <name>");
-        super.setPermission(Permissions.USER);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            return false;
-        }
-        
-        Module m = this.getModule();
-        GameProfile op = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[0]);
-        if(op == null)
-        {
-            m.send(cs, GlobalText.cantFindPlayer(arg[0]));
-            return true;
-        }
-        
-        cs.sendMessage(new TextComponentString(GlobalText.Spacer()));
-        m.send(cs, op.getName());
-        m.sendHelpListElement(cs, "UUID", op.getId().toString());
-        PlayerList list = KajetansMod.server.getPlayerList();
-        m.sendHelpListElement(cs, "Gebannt", String.valueOf(list.getBannedPlayers().isBanned(op)));
-        m.sendHelpListElement(cs, "Whitelisted", String.valueOf(list.getWhitelistedPlayers().isWhitelisted(op)));
-        EntityPlayerMP p = list.getPlayerByUUID(op.getId());
-        if(p != null)
-        {
-            m.sendHelpListElement(cs, "IP", p.connection.netManager.getRemoteAddress().toString());
-        }
-        return true;
-    }
-}

+ 0 - 89
src/main/java/me/km/commands/CommandWarp.java

@@ -1,89 +0,0 @@
-package me.km.commands;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.SimpleConfig;
-import me.km.api.Utils;
-import me.km.exception.PlayerNotFoundException;
-import java.util.List;
-import java.util.stream.Collectors;
-import me.km.api.Location;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-
-
-public class CommandWarp extends ModuleCommand
-{
-    public CommandWarp(Module m) 
-    {
-        super("warp", m);
-        super.setDescription("Teleportiert einen Spieler zum Warp");
-        super.setUsage("/warp <warpname> [player]");
-        super.setPermission(Permissions.WARP);
-        super.addAlias("warps");
-    }
-
-    public List<String> getWarps()
-    {
-        File[] files = SimpleConfig.getFiles("warp");
-        if(files == null)
-        {
-            return new ArrayList<>();
-        }
-        return Arrays.stream(files).map(w -> w.getName().substring(0, w.getName().length() - 7)).collect(Collectors.toList());
-    }
-    
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length < 1)
-        {
-            this.getModule().send(cs, "Die folgenden Warps stehen zur Verfügung:");
-            this.getModule().send(cs, String.join("§7, §r", getWarps()));   
-            return true;
-        }
-        
-        Location l = Utils.getWarp(this.getModule(), arg[0]);
-        if(l == null)
-        {
-            this.getModule().send(cs, "Der Warp existiert nicht.");
-            return true;
-        }
-        else if(l.getWorld() == null)
-        {
-            this.getModule().send(cs, "Die Welt des Warps existiert nicht.");
-            return true;
-        }
-        
-        EntityPlayer affectedPlayer;
-        try
-        {
-            affectedPlayer = Utils.getPlayerByName(arg[1]);  
-            Utils.teleportEntity(affectedPlayer, l);
-            this.getModule().send(affectedPlayer, "Du wurdest zum Warp " + arg[0] + " teleportiert.");
-            this.getModule().send(cs, affectedPlayer.getName() + " wurde zum Warp " + arg[0] + " teleportiert.");
-        }
-        catch(PlayerNotFoundException ex)
-        {
-            this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
-            return true;
-        }
-        catch(IndexOutOfBoundsException ex)
-        {
-            if(!(cs instanceof EntityPlayer))
-            {
-                this.getModule().send(cs, GlobalText.missingParameter());
-                return true;
-            }     
-            affectedPlayer = (EntityPlayer) cs;
-            Utils.teleportEntity(affectedPlayer, l);
-            this.getModule().send(cs, "Du wurdest zum Warp " + arg[0] + " teleportiert.");
-        }
-        return true;
-    }
-}

+ 0 - 109
src/main/java/me/km/commands/CommandWeather.java

@@ -1,109 +0,0 @@
-package me.km.commands;
-
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.dimensions.ModDimensions;
-import me.km.permissions.Permissions;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.world.World;
-import net.minecraft.world.storage.WorldInfo;
-
-public class CommandWeather extends ModuleCommand
-{
-    public CommandWeather(Module m) 
-    {
-        super("weather", m);
-        super.setDescription("Setzt das Wetter in einer Welt");
-        super.setUsage("/weather <clear|rain|thunder> [world] [ticks]");
-        super.setPermission(Permissions.WEATHER);
-    }
-
-    @Override
-    public boolean execute(ICommandSender cs, String[] arg) 
-    {
-        if(arg.length == 0)
-        {
-            return false;
-        }
-        World w;
-        if(arg.length >= 2)
-        {
-            w = ModDimensions.getWorldFromName(arg[1]);
-            if(w == null)
-            {
-                this.getModule().send(cs, "Die Welt '" + arg[1] + "' wurde nicht gefunden.");
-                return true;
-            }
-        }
-        else if(cs instanceof EntityPlayer)
-        {
-            w = ((EntityPlayer) cs).getEntityWorld();
-        }
-        else
-        {
-            this.getModule().send(cs, GlobalText.missingParameter());
-            return true;
-        }
-        
-        int time;
-        if(arg.length >= 3)
-        {
-            try
-            {
-                time = Integer.parseInt(arg[2]);
-                if(time < 0)
-                {
-                    this.getModule().send(cs, GlobalText.noNaturalNumber());
-                    return true;
-                }
-            }
-            catch(Exception ex)
-            {
-                this.getModule().send(cs, GlobalText.noNaturalNumber());
-                return true;
-            }
-        }
-        else
-        {
-            time = 24000;
-        }
-        
-        WorldInfo wi = w.getWorldInfo();
-        switch(arg[0].toLowerCase())
-        {
-            case "clear":
-            {
-                wi.setCleanWeatherTime(time);
-                wi.setRainTime(0);
-                wi.setThunderTime(0);
-                wi.setRaining(false);
-                wi.setThundering(false);
-                this.getModule().send(cs, "Das Wetter ist wieder klar.");
-                return true;
-            }
-            case "rain":
-            {
-                wi.setCleanWeatherTime(0);
-                wi.setRainTime(time);
-                wi.setThunderTime(time);
-                wi.setRaining(true);
-                wi.setThundering(false);
-                this.getModule().send(cs, "Es regnet nun für " + time + " Ticks.");
-                return true;
-            }
-            case "thunder":
-            {
-                wi.setCleanWeatherTime(0);
-                wi.setRainTime(time);
-                wi.setThunderTime(time);
-                wi.setRaining(true);
-                wi.setThundering(true);
-                this.getModule().send(cs, "Es gewittert nun für " + time + " Ticks.");
-                return true;
-            }
-        }
-        return false;
-    }
-}

+ 0 - 65
src/main/java/me/km/data/DataManager.java

@@ -1,65 +0,0 @@
-package me.km.data;
-
-import java.util.HashMap;
-import me.km.api.Module;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.util.text.TextFormatting;
-
-public class DataManager extends Module
-{
-    private final EntityData fallback;
-    private final HashMap<Integer, EntityData> entityData;
-    
-    public DataManager(String mname, String prefix, TextFormatting color) 
-    {
-        super(mname, prefix, color);
-        entityData = new HashMap<>();
-        fallback = new EntityData(null);
-    }
-    
-    public EntityData get(Entity ent)
-    {
-        if(ent == null)
-        {
-            return fallback;
-        }
-        return entityData.getOrDefault(ent.getEntityId(), fallback);
-    }
-    
-    public EntityData getOrCreate(Entity ent)
-    {
-        EntityData data = entityData.getOrDefault(ent.getEntityId(), null);
-        if(data == null)
-        {
-            return add(ent);
-        }
-        return data;
-    }
-    
-    public EntityData add(Entity ent)
-    {
-        EntityData data = new EntityData(ent);
-        entityData.put(ent.getEntityId(), data);
-        return data;
-    }
-    
-    public void onEntityDeath(Entity ent)
-    {
-        EntityData data = entityData.get(ent.getEntityId());
-        if(data != null && data.onEntityDeath())
-        {
-            entityData.remove(ent.getEntityId());
-        }
-    }
-    
-    public void onPlayerLogOut(EntityPlayer p)
-    {
-        entityData.remove(p.getEntityId());
-    }
-    
-    public void tick()
-    {
-        entityData.values().forEach(data -> data.tick());
-    }
-}

+ 0 - 849
src/main/java/me/km/data/EntityData.java

@@ -1,849 +0,0 @@
-package me.km.data;
-
-import java.util.HashMap;
-import me.km.api.Location;
-import me.km.networking.ModPacketHandler;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public class EntityData 
-{
-    private Entity ent;
-    private boolean isLiving;
-    private boolean isPlayer;
-    
-    public EntityData(Entity ent)
-    {
-        this.ent = ent;
-        this.isLiving = ent instanceof EntityLivingBase;
-        this.isPlayer = ent instanceof EntityPlayerMP;
-    }
-
-    public boolean onEntityDeath()
-    {
-        return true;
-    }
-
-    public void tick()
-    {
-        tickLessHeal();
-        tickAttackBoost();
-        tickArmorBoost();
-        tickMagicArmorBoost();
-        tickReflection();
-        tickArmorBypass();
-        tickCallBack();
-        tickDoomed();
-        tickPoisonBlade();
-        tickArrowImmunity();
-        tickFallImmunity();
-        tickSilence();
-        tickShadow();
-        tickCooldown();
-        tickGravity();
-        tickIgnorance();
-        tickGoldBonus();
-        tickAquaAffinity();
-    }
-    
-    public boolean isPlayerData()
-    {
-        return isPlayer;
-    }
-    
-    public boolean isLivingData()
-    {
-        return isLiving;
-    }
-    
-    private void sendStatus(boolean add, byte id, String text)
-    {
-        if(isPlayer)
-        {
-            if(add)
-            {
-                ModPacketHandler.addStatus((EntityPlayerMP) ent, id, text);
-            }
-            else
-            {
-                ModPacketHandler.removeStatus((EntityPlayerMP) ent, id);
-            }
-        }
-    }
-    
-    private void sendTimedStatus(boolean add, byte id, int time, String text)
-    {
-        if(isPlayer)
-        {
-            if(add)
-            {
-                ModPacketHandler.addTimedStatus((EntityPlayerMP) ent, id, text, time);
-            }
-            else
-            {
-                ModPacketHandler.removeStatus((EntityPlayerMP) ent, id);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // this is used for cooldown
-    // -------------------------------------------------------------------------
-    
-    private HashMap<String, Integer> cooldowns = new HashMap<>();
-    
-    public void addCoolDown(String name, int time)
-    {
-        cooldowns.put(name, time);
-    }
-    
-    public boolean hasCooldown(String name)
-    {
-        return cooldowns.get(name) != null;
-    }
-    
-    public void tickCooldown()
-    {
-        cooldowns.entrySet().removeIf(e -> 
-        {
-            int i = e.getValue() - 1;
-            if(i <= 0)
-            {
-                return true;
-            }
-            e.setValue(i);
-            return false;
-        });
-    }
-
-    // -------------------------------------------------------------------------
-    // this is used for teleportation on hit
-    // -------------------------------------------------------------------------
-    
-    private Entity teleportEnt = null;
-    
-    public void setHitTeleport(Entity goal)
-    {
-        teleportEnt = goal;
-    }
-    
-    public boolean hasTeleportEntity()
-    {
-        return teleportEnt != null;
-    }
-    
-    public Entity getTeleportEntity()
-    {
-        return teleportEnt;
-    }
-    
-    // -------------------------------------------------------------------------
-    // rapid fire storage
-    // -------------------------------------------------------------------------
-    
-    private EntityLivingBase healEntOnHit = null;
-    
-    public void setOnHitHealEntity(EntityLivingBase goal)
-    {
-        healEntOnHit = goal;
-    }
-    
-    public boolean hasOnHitHealEntity()
-    {
-        return healEntOnHit != null;
-    }
-    
-    public EntityLivingBase getOnHitHealEntity()
-    {
-        return healEntOnHit;
-    }
-    
-    // -------------------------------------------------------------------------
-    // heal by dealed damage
-    // -------------------------------------------------------------------------
-    
-    private EntityLivingBase healByDamage = null;
-    
-    public void setHealByDamageEntity(EntityLivingBase goal)
-    {
-        healByDamage = goal;
-    }
-    
-    public boolean hasHealByDamageEntity()
-    {
-        return healByDamage != null;
-    }
-    
-    public EntityLivingBase getHealByDamageEntity()
-    {
-        return healByDamage;
-    }
-    
-    // -------------------------------------------------------------------------
-    // this is used for cluster bombs
-    // -------------------------------------------------------------------------
-    
-    private int clusterPower = 0;
-    
-    public void setClusterBomb(int power)
-    {
-        clusterPower = power;
-    }
-    
-    public int getClusterPower()
-    {
-        return clusterPower;
-    }
-    
-    // -------------------------------------------------------------------------
-    // grappling hook
-    // -------------------------------------------------------------------------
-    
-    private boolean arrowHook = false;
-    
-    public void setArrowHook(boolean hook)
-    {
-        arrowHook = hook;
-        sendStatus(hasArrowHook(), (byte) 1, "§a#entitydata.grapplingHook");
-    }
-    
-    public boolean hasArrowHook()
-    {
-        return arrowHook;
-    }
-    
-    // -------------------------------------------------------------------------
-    // shadow hit
-    // -------------------------------------------------------------------------
-    
-    private boolean shadowHit = false;
-    
-    public void setShadowHit(boolean hit)
-    {
-        shadowHit = hit;
-        sendStatus(hasShadowHit(), (byte) 2, "§a#entitydata.shadowHit");
-    }
-    
-    public boolean hasShadowHit()
-    {
-        return shadowHit;
-    }
-    
-    // -------------------------------------------------------------------------
-    // smoke bomb
-    // -------------------------------------------------------------------------
-    
-    private boolean smokeBomb = false;
-    
-    public void setSmokeBomb(boolean bomb)
-    {
-        smokeBomb = bomb;
-    }
-    
-    public boolean isSmokeBomb()
-    {
-        return smokeBomb;
-    }
-    
-    // -------------------------------------------------------------------------
-    // power attack
-    // -------------------------------------------------------------------------
-    
-    private float powerAttack = 0;
-    
-    public void setPowerAttack(float power)
-    {
-        this.powerAttack = power;
-        sendStatus(hasPowerAttack(), (byte) 3, "§a+" + Math.round(power * 100 - 100) + "% #entitydata.powerAttack");
-    }
-
-    public float getPowerAttack()
-    {
-        return powerAttack;
-    }
-    
-    public boolean hasPowerAttack()
-    {
-        return powerAttack > 0;
-    }
-    
-    // -------------------------------------------------------------------------
-    // impact punch
-    // -------------------------------------------------------------------------
-    
-    private float impactPunch = 0;
-    
-    public void setImpactPunch(float power)
-    {
-        this.impactPunch = power;
-        sendStatus(hasImpactPunch(), (byte) 4, "§a+" + Math.round(power * 100 - 100) + "% #entitydata.impactPunch");
-    }
-
-    public float getImpactPunch()
-    {
-        return impactPunch;
-    }
-    
-    public boolean hasImpactPunch()
-    {
-        return impactPunch > 0;
-    }
-    
-    // -------------------------------------------------------------------------
-    // less heal
-    // -------------------------------------------------------------------------
-    
-    private int lessHealTime = 0;
-    private float lessHeal = 0;
-    
-    public void setLessHeal(int time, float lessHeal)
-    {
-        this.lessHealTime = time;
-        this.lessHeal = lessHeal;
-        sendTimedStatus(hasImpactPunch(), (byte) 5, time, "§c-" + Math.round(100 - lessHeal * 100) + "% #entitydata.lessHeal");
-    }
-
-    public float getLessHeal()
-    {
-        return lessHeal;
-    }
-    
-    public boolean hasLessHeal()
-    {
-        return lessHeal > 0;
-    }
-    
-    private void tickLessHeal()
-    {
-        if(lessHealTime != Integer.MAX_VALUE && lessHealTime > 0)
-        {
-            lessHealTime--;
-            if(lessHealTime <= 0)
-            {
-                setLessHeal(0, 0);
-            }
-        }
-    }
-
-    // -------------------------------------------------------------------------
-    // attack boost
-    // -------------------------------------------------------------------------
-    
-    private int attackBoostTime = 0;
-    private float attackBoost = 0;
-    
-    public void setAttackBoost(int time, float attackBoost)
-    {
-        this.attackBoostTime = time;
-        this.attackBoost = attackBoost;
-        sendTimedStatus(hasAttackBoost(), (byte) 6, time, "§a+" + Math.round(attackBoost * 100 - 100) + "% #entitydata.attackBoost");
-    }
-
-    public float getAttackBoost()
-    {
-        return attackBoost;
-    }
-    
-    public boolean hasAttackBoost()
-    {
-        return attackBoost > 0;
-    }
-    
-    private void tickAttackBoost()
-    {
-        if(attackBoostTime != Integer.MAX_VALUE && attackBoostTime > 0)
-        {
-            attackBoostTime--;
-            if(attackBoostTime <= 0)
-            {
-                setAttackBoost(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // armor boost
-    // -------------------------------------------------------------------------
-    
-    private int armorBoostTime = 0;
-    private float armorBoost = 0;
-    
-    public void setArmorBoost(int time, float armorBoost)
-    {
-        this.armorBoostTime = time;
-        this.armorBoost = armorBoost;
-        sendTimedStatus(hasArmorBoost(), (byte) 7, time, "§a+" + Math.round(armorBoost * 100 - 100) + "% #entitydata.armorBoost");
-    }
-
-    public float getArmorBoost()
-    {
-        return armorBoost;
-    }
-    
-    public boolean hasArmorBoost()
-    {
-        return armorBoost > 0;
-    }
-    
-    private void tickArmorBoost()
-    {
-        if(armorBoostTime != Integer.MAX_VALUE && armorBoostTime > 0)
-        {
-            armorBoostTime--;
-            if(armorBoostTime <= 0)
-            {
-                setArmorBoost(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // magic armor boost
-    // -------------------------------------------------------------------------
-    
-    private int magicArmorBoostTime = 0;
-    private float magicArmorBoost = 0;
-    
-    public void setMagicArmorBoost(int time, float magicArmorBoost)
-    {
-        this.magicArmorBoostTime = time;
-        this.magicArmorBoost = magicArmorBoost;
-        sendTimedStatus(hasMagicArmorBoost(), (byte) 8, time, "§a+" + Math.round(magicArmorBoost * 100 - 100) + "% #entitydata.magicArmorBoost");
-    }
-
-    public float getMagicArmorBoost()
-    {
-        return magicArmorBoost;
-    }
-    
-    public boolean hasMagicArmorBoost()
-    {
-        return magicArmorBoost > 0;
-    }
-    
-    private void tickMagicArmorBoost()
-    {
-        if(magicArmorBoostTime != Integer.MAX_VALUE && magicArmorBoostTime > 0)
-        {
-            magicArmorBoostTime--;
-            if(magicArmorBoostTime <= 0)
-            {
-                setMagicArmorBoost(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // physical reflect
-    // -------------------------------------------------------------------------
-    
-    private int reflectionTime = 0;
-    private float reflection = 0;
-    
-    public void setReflection(int time, float reflection)
-    {
-        this.reflectionTime = time;
-        this.reflection = reflection;
-        sendTimedStatus(hasReflection(), (byte) 9, time, "§a+" + Math.round(reflection * 100) + "% #entitydata.reflection");
-    }
-
-    public float getReflection()
-    {
-        return reflection;
-    }
-    
-    public boolean hasReflection()
-    {
-        return reflection > 0;
-    }
-    
-    private void tickReflection()
-    {
-        if(reflectionTime != Integer.MAX_VALUE && reflectionTime > 0)
-        {
-            reflectionTime--;
-            if(reflectionTime <= 0)
-            {
-                setReflection(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // armor bypass on attacked entity
-    // -------------------------------------------------------------------------
-    
-    private int armorBypassTime = 0;
-    private float armorBypass = 0;
-    
-    public void setArmorBypass(int time, float armorBypass)
-    {
-        this.armorBypassTime = time;
-        this.armorBypass = armorBypass;
-        sendTimedStatus(hasArmorBypass(), (byte) 10, time, "§a+" + Math.round(armorBypass * 100) + "% #entitydata.armorBypass");
-    }
-
-    public float getArmorBypass()
-    {
-        return armorBypass;
-    }
-    
-    public boolean hasArmorBypass()
-    {
-        return armorBypass > 0;
-    }
-    
-    private void tickArmorBypass()
-    {
-        if(armorBypassTime != Integer.MAX_VALUE && armorBypassTime > 0)
-        {
-            armorBypassTime--;
-            if(armorBypassTime <= 0)
-            {
-                setArmorBypass(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // location call back
-    // -------------------------------------------------------------------------
-    
-    private Location callBack = null;
-    private int callBackTime = 0;
-    
-    public void setCallBack(int time, Location loc)
-    {
-        this.callBackTime = time;
-        this.callBack = loc;
-        sendTimedStatus(time > 0, (byte) 11, time, "§a#entitydata.callback");
-    }
-
-    public Location getCallBack()
-    {
-        return callBack;
-    }
-    
-    private void tickCallBack()
-    {
-        if(callBackTime != Integer.MAX_VALUE && callBackTime > 0)
-        {
-            callBackTime--;
-            if(callBackTime <= 0)
-            {
-                setCallBack(0, null);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // doomed
-    // -------------------------------------------------------------------------
-    
-    private int doomedTime = 0;
-    
-    public void setDoomed(int time)
-    {
-        this.doomedTime = time;
-        sendTimedStatus(isDoomed(), (byte) 12, time, "§c#entitydata.doomed");
-    }
-    
-    public boolean isDoomed()
-    {
-        return doomedTime > 0;
-    }
-
-    private void tickDoomed()
-    {
-        if(doomedTime != Integer.MAX_VALUE && doomedTime > 0)
-        {
-            doomedTime--;
-            if(doomedTime <= 0)
-            {
-                setDoomed(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // poison blade
-    // -------------------------------------------------------------------------
-    
-    private int poisonBladeTime = 0;
-    
-    public void setPoisonBlade(int time)
-    {
-        this.poisonBladeTime = time;
-        sendTimedStatus(hasPoisonBlade(), (byte) 13, time, "§a#entitydata.poisonBlade");
-    }
-    
-    public boolean hasPoisonBlade()
-    {
-        return poisonBladeTime > 0;
-    }
-
-    private void tickPoisonBlade()
-    {
-        if(poisonBladeTime != Integer.MAX_VALUE && poisonBladeTime > 0)
-        {
-            poisonBladeTime--;
-            if(poisonBladeTime <= 0)
-            {
-                setPoisonBlade(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // arrow immunity
-    // -------------------------------------------------------------------------
-    
-    private int arrowImmunityTime = 0;
-    
-    public void setArrowImmunity(int time)
-    {
-        this.arrowImmunityTime = time;
-        sendTimedStatus(hasArrowImmunity(), (byte) 14, time, "§a#entitydata.arrowImmunity");
-    }
-    
-    public boolean hasArrowImmunity()
-    {
-        return arrowImmunityTime > 0;
-    }
-
-    private void tickArrowImmunity()
-    {
-        if(arrowImmunityTime != Integer.MAX_VALUE && arrowImmunityTime > 0)
-        {
-            arrowImmunityTime--;
-            if(arrowImmunityTime <= 0)
-            {
-                setArrowImmunity(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // fall immunity
-    // -------------------------------------------------------------------------
-    
-    private int fallImmunityTime = 0;
-    
-    public void setFallImmunity(int time)
-    {
-        this.fallImmunityTime = time;
-        sendTimedStatus(hasFallImmunity(), (byte) 15, time, "§a#entitydata.fallImmunity");
-    }
-    
-    public boolean hasFallImmunity()
-    {
-        return fallImmunityTime > 0;
-    }
-
-    private void tickFallImmunity()
-    {
-        if(fallImmunityTime != Integer.MAX_VALUE && fallImmunityTime > 0)
-        {
-            fallImmunityTime--;
-            if(fallImmunityTime <= 0)
-            {
-                setFallImmunity(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // silence
-    // -------------------------------------------------------------------------
-    
-    private int silenceTime = 0;
-    
-    public void setSilenceTime(int time)
-    {
-        if(hasIgnorance())
-        {
-            return;
-        }
-        this.silenceTime = time;
-        sendTimedStatus(isSilenced(), (byte) 16, time, "§c#entitydata.silence");
-    }
-    
-    public boolean isSilenced()
-    {
-        return silenceTime > 0;
-    }
-
-    private void tickSilence()
-    {
-        if(silenceTime != Integer.MAX_VALUE && silenceTime > 0)
-        {
-            silenceTime--;
-            if(silenceTime <= 0)
-            {
-                setSilenceTime(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // shadow
-    // -------------------------------------------------------------------------
-    
-    private int shadowTime = 0;
-    
-    public void setShadow(int time)
-    {
-        this.shadowTime = time;
-        sendTimedStatus(isShadow(), (byte) 17, time, "§a#entitydata.shadow");
-    }
-    
-    public boolean isShadow()
-    {
-        return shadowTime > 0;
-    }
-
-    private void tickShadow()
-    {
-        if(shadowTime != Integer.MAX_VALUE && shadowTime > 0)
-        {
-            shadowTime--;
-            if(shadowTime <= 0)
-            {
-                setShadow(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // gravity
-    // -------------------------------------------------------------------------
-    
-    private int gravityTime = 0;
-    
-    public void setGravity(int time)
-    {
-        this.gravityTime = time;
-        if(time == 0)
-        {
-            ent.setNoGravity(false);
-        }
-        else
-        {
-            ent.setNoGravity(true);
-        }
-        sendTimedStatus(time > 0, (byte) 18, time, "§a#entitydata.gravity");
-    }
-    
-    public boolean hasGravity()
-    {
-        return gravityTime > 0;
-    }
-
-    private void tickGravity()
-    {
-        if(gravityTime != Integer.MAX_VALUE && gravityTime > 0)
-        {
-            gravityTime--;
-            if(gravityTime <= 0)
-            {
-                setGravity(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // ignorance
-    // -------------------------------------------------------------------------
-    
-    private int ignoranceTime = 0;
-    
-    public void setIgnorance(int time)
-    {
-        this.ignoranceTime = time;
-        sendTimedStatus(time > 0, (byte) 19, time, "§a#entitydata.ignorance");
-    }
-    
-    public boolean hasIgnorance()
-    {
-        return ignoranceTime > 0;
-    }
-
-    private void tickIgnorance()
-    {
-        if(ignoranceTime != Integer.MAX_VALUE && ignoranceTime > 0)
-        {
-            ignoranceTime--;
-            if(ignoranceTime <= 0)
-            {
-                setIgnorance(0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // gold
-    // -------------------------------------------------------------------------
-    
-    private int goldTime = 0;
-    private float goldBonus = 0;
-    
-    public void setGoldBonus(int time, float bonus)
-    {
-        this.goldTime = time;
-        this.goldBonus = bonus;
-        sendTimedStatus(hasGoldBonus(), (byte) 20, time, "§a+" + Math.round(goldBonus * 100 - 100) + "% #entitydata.goldBonus");
-    }
-    
-    public boolean hasGoldBonus()
-    {
-        return goldTime > 0;
-    }
-    
-    public float getGoldBonus()
-    {
-        return goldBonus;
-    }
-
-    private void tickGoldBonus()
-    {
-        if(goldTime != Integer.MAX_VALUE && goldTime > 0)
-        {
-            goldTime--;
-            if(goldTime <= 0)
-            {
-                setGoldBonus(0, 0);
-            }
-        }
-    }
-    
-    // -------------------------------------------------------------------------
-    // aqua affinity
-    // -------------------------------------------------------------------------
-    
-    private int aquaAffinityTime = 0;
-    
-    public void setAquaAffinity(int time)
-    {
-        this.aquaAffinityTime = time;
-        sendTimedStatus(time > 0, (byte) 21, time, "§a#entitydata.aquaAffinity");
-    }
-    
-    public boolean hasAquaAffinity()
-    {
-        return aquaAffinityTime > 0;
-    }
-    
-    private void tickAquaAffinity()
-    {
-        if(aquaAffinityTime != Integer.MAX_VALUE && aquaAffinityTime > 0)
-        {
-            aquaAffinityTime--;
-            if(aquaAffinityTime <= 0)
-            {
-                setAquaAffinity(0);
-            }
-        }
-    }
-}
-

+ 0 - 41
src/main/java/me/km/data/EntityDataEvents.java

@@ -1,41 +0,0 @@
-package me.km.data;
-
-import me.km.KajetansMod;
-import me.km.api.Module;
-import me.km.api.ModuleListener;
-import net.minecraftforge.event.entity.living.LivingDeathEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import net.minecraftforge.fml.common.gameevent.PlayerEvent;
-import net.minecraftforge.fml.common.gameevent.TickEvent;
-
-public class EntityDataEvents extends ModuleListener
-{
-    private DataManager data;
-    
-    public EntityDataEvents(Module m) 
-    {
-        super(m);
-        data = KajetansMod.data;
-    }
-
-    @SubscribeEvent(receiveCanceled = false)
-    public void onLivingDeath(LivingDeathEvent e)
-    {        
-        data.onEntityDeath(e.getEntityLiving());
-    } 
-    
-    @SubscribeEvent
-    public void tickServer(TickEvent.ServerTickEvent e) 
-    {       
-        if(e.phase == TickEvent.Phase.END)
-        {
-            data.tick();
-        }
-    }
-    
-    @SubscribeEvent
-    public void onPlayerLogOut(PlayerEvent.PlayerLoggedOutEvent e)
-    {        
-        data.onPlayerLogOut(e.player);
-    }
-}

+ 64 - 14
src/main/java/me/km/databank/DataBank.java

@@ -2,9 +2,10 @@ package me.km.databank;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
+import java.sql.PreparedStatement;
 import java.sql.SQLException;
-import java.sql.Statement;
-import me.km.api.Module;
+import java.util.HashMap;
+import me.km.module.Module;
 import me.km.scheduler.SnuviScheduler;
 import net.minecraft.util.text.TextFormatting;
 
@@ -16,9 +17,11 @@ public class DataBank extends Module
     private final String user;
     private final String password;
     
-    public DataBank(String mname, String prefix, TextFormatting color, String user, String password) 
+    private final HashMap<String, PreparedStatement> statements = new HashMap<>();
+    
+    public DataBank(String prefix, TextFormatting color, String user, String password) 
     {
-        super(mname, prefix, color);
+        super(prefix, color);
         this.user = user;
         this.password = password;
     }
@@ -30,8 +33,8 @@ public class DataBank extends Module
         {
             // The newInstance() call is a work around for some broken Java implementations
             Class.forName("com.mysql.jdbc.Driver").newInstance();
-            c = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?autoReconnect=true", user, password);
-            this.sendToConsole("Die Verbindung wurde erfolgreich aufgebaut.");
+            c = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", user, password);
+            this.sendToConsole("Connection to datebank etablished.");
             return true;
         } 
         catch(ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException ex) 
@@ -45,16 +48,26 @@ public class DataBank extends Module
     {
         try 
         {
-            c.close();
-            this.sendToConsole("Die Verbindung wurde erfolgreich unterbrochen.");
+            if(c != null)
+            {
+                c.close();
+            }
+            statements.values().forEach(stmt -> 
+            {
+                try
+                {
+                    stmt.close();
+                }
+                catch(SQLException ex)
+                {
+                }
+            });
+            this.sendToConsole("The connection was closed.");
         } 
         catch (SQLException ex) 
         {
             this.sendWarningToConsole(ex.getMessage());
         }
-        catch (NullPointerException ex) 
-        {
-        }
     }
     
     public boolean isDummyDatabank()
@@ -62,20 +75,57 @@ public class DataBank extends Module
         return c == null;
     }
     
-    public Statement createStatement() throws SQLException
+    protected PreparedStatement prepareStatement(String query) throws SQLException
+    {
+        PreparedStatement ps = c.prepareStatement(query);
+        PreparedStatement old = statements.put(query, ps);
+        if(old != null)
+        {
+            old.close();
+        }
+        return c.prepareStatement(query);
+    }
+    
+    public IStatement createStatement(String query)
     {
         if(c == null)
         {
             return DUMMY_STATEMENT;
         }
-        return c.createStatement();
+        try
+        {
+            return new Statement(this, query);
+        }
+        catch(SQLException ex)
+        {
+            ex.printStackTrace();
+            return DUMMY_STATEMENT;
+        }
     } 
     
+    public boolean execute(String query)
+    {
+        if(c == null)
+        {
+            return false;
+        }
+        try(java.sql.Statement stmt = c.createStatement())
+        {
+            stmt.executeUpdate(query);
+            return true;
+        }
+        catch(SQLException ex)
+        {
+            ex.printStackTrace();
+            return false;
+        }
+    }
+    
     public void startReconnecting(SnuviScheduler scheduler)
     {
         scheduler.scheduleRepeatingTask(() -> 
         {
-            try(Statement stmt = createStatement()) 
+            try(java.sql.Statement stmt = c.createStatement()) 
             {
                 // pointless query just for reconnecting
                 stmt.executeUpdate("SHOW TABLES IN minecraft");

+ 12 - 232
src/main/java/me/km/databank/DummyStatement.java

@@ -1,273 +1,53 @@
 package me.km.databank;
 
-import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.SQLWarning;
-import java.sql.Statement;
 
-public class DummyStatement implements Statement
+public class DummyStatement implements IStatement
 {
     @Override
-    public ResultSet executeQuery(String sql) throws SQLException 
+    public void validate() throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public int executeUpdate(String sql) throws SQLException 
+    public void close() throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public void close() throws SQLException 
+    public void setInt(int index, int i) throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public int getMaxFieldSize() throws SQLException 
+    public void setLong(int index, long l) throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public void setMaxFieldSize(int max) throws SQLException 
+    public void setFloat(int index, float f) throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public int getMaxRows() throws SQLException 
+    public void setDouble(int index, double d) throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
-
-    @Override
-    public void setMaxRows(int max) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setEscapeProcessing(boolean enable) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getQueryTimeout() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setQueryTimeout(int seconds) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void cancel() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public SQLWarning getWarnings() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void clearWarnings() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setCursorName(String name) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean execute(String sql) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public ResultSet getResultSet() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getUpdateCount() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean getMoreResults() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setFetchDirection(int direction) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getFetchDirection() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setFetchSize(int rows) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getFetchSize() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getResultSetConcurrency() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getResultSetType() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void addBatch(String sql) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void clearBatch() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int[] executeBatch() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public Connection getConnection() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean getMoreResults(int current) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public ResultSet getGeneratedKeys() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int executeUpdate(String sql, int[] columnIndexes) throws SQLException
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int executeUpdate(String sql, String[] columnNames) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean execute(String sql, int autoGeneratedKeys) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean execute(String sql, int[] columnIndexes) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean execute(String sql, String[] columnNames) throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public int getResultSetHoldability() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public boolean isClosed() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void setPoolable(boolean poolable) throws SQLException 
-    {
-    }
-
-    @Override
-    public boolean isPoolable() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
-    @Override
-    public void closeOnCompletion() throws SQLException 
-    {
-        throw new SQLException("Dummy Handler");
-    }
-
+    
     @Override
-    public boolean isCloseOnCompletion() throws SQLException 
+    public void setString(int index, String s) throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 
     @Override
-    public <T> T unwrap(Class<T> iface) throws SQLException 
+    public ResultSet executeQuery() throws SQLException
     {
-        throw new SQLException("Dummy Handler");
+        throw new SQLException("dummy statement");
     }
 
     @Override
-    public boolean isWrapperFor(Class<?> iface) throws SQLException 
+    public void executeUpdate() throws SQLException
     {
-        throw new SQLException("Dummy Handler");
     }
 }

+ 19 - 0
src/main/java/me/km/databank/IStatement.java

@@ -0,0 +1,19 @@
+package me.km.databank;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public interface IStatement
+{
+    public void validate() throws SQLException;
+    public void close() throws SQLException; 
+    
+    public void setInt(int index, int i) throws SQLException;
+    public void setLong(int index, long l) throws SQLException;
+    public void setFloat(int index, float f) throws SQLException;
+    public void setDouble(int index, double d) throws SQLException;
+    public void setString(int index, String s) throws SQLException;
+    
+    public ResultSet executeQuery() throws SQLException;
+    public void executeUpdate() throws SQLException;
+}

+ 0 - 299
src/main/java/me/km/databank/SimpleDataBank.java

@@ -1,299 +0,0 @@
-package me.km.databank;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import me.km.api.Module;
-import me.km.table.Table;
-import me.hammerle.snuviscript.code.Compiler;
-
-public abstract class SimpleDataBank 
-{
-    private final DataBank c;
-    private final Module m;
-    
-    public SimpleDataBank(Module m, DataBank c)
-    {
-        this.c = c;
-        this.m = m;
-    }
-    
-    public final Module getModule()
-    {
-        return m;
-    }
-    
-    private void printException(String query, SQLException ex)
-    {
-        if(!c.isDummyDatabank())
-        {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt den Erfolg zurück.
-     *
-     * @param query ein Query, irgendetwas mit "INSERT, UPDATE, ..."
-     * @param ignore gibt keine Fehlermeldung aus, falls auf <code> true </code>
-     * @return <code> true </code> falls kein Error auftrat, sonst <code> false </code>
-     */
-    public final boolean update(String query, boolean ignore)
-    {
-        try(Statement stmt = c.createStatement()) 
-        {
-            stmt.executeUpdate(query);
-            return true;
-        }
-        catch(SQLException ex) 
-        {
-            if(!ignore)
-            {
-                printException(query, ex);
-            }
-            return false;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt die erste Spalte der ersten Reihe zurück.
-     *
-     * @param <T> die Klasse der Rückgabe
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @param r die Klasse der Rückgabe
-     * @return das gewünschte Objekt, null falls ein Fehler auftrat oder der ResultSet leer ist
-     */
-    @SuppressWarnings("unchecked")
-    public final <T> T getFirst(String query, Class<T> r)
-    {
-        //System.out.println(query);
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            if(rs.next())
-            {
-                return (T) rs.getObject(1);
-            }
-            return null;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt die erste Spalte der ersten Reihe zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return der gewünschte Byte, null falls ein Fehler auftrat oder der ResultSet leer ist
-     */
-    public final Byte getFirstByte(String query)
-    {
-        //System.out.println(query);
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            if(rs.next())
-            {
-                return rs.getByte(1);
-            }
-            return null;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt alle Spalten der ersten Reihe zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return alle Spalten als Liste, bei einem Error kann sie null sein
-     */
-    @SuppressWarnings("unchecked")
-    public final ArrayList<Object> getFirstRow(String query)
-    {
-        //System.out.println(query);
-        ArrayList<Object> list = new ArrayList();
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            if(rs.next())
-            {
-                int i = 1;
-                while(true)
-                {
-                    list.add(rs.getObject(i));
-                    i++;
-                }
-            }
-            return list;
-        }
-        catch(SQLException ex) 
-        {
-            if(!ex.getLocalizedMessage().startsWith("Column Index"))
-            {
-                printException(query, ex);
-                return null;
-            }
-            return list;
-        }
-    }
-
-    /** Führt den gegebenen Query aus und gibt alle Zeilen der ersten Spalte zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return alle Spalten als Liste, bei einem Error kann sie null sein
-     */
-    @SuppressWarnings("unchecked")
-    public final ArrayList<Object> getFirstColumn(String query)
-    {
-        //System.out.println(query);
-        ArrayList<Object> list = new ArrayList();
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            while(rs.next())
-            {
-                list.add(rs.getObject(1));
-            }
-            return list;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-        catch(IllegalStateException ex) 
-        {
-            return list;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt alle Zeilen der ersten Spalte zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return alle Spalten als Liste, bei einem Error kann sie null sein
-     */
-    @SuppressWarnings("unchecked")
-    public final ArrayList<Byte> getFirstByteColumn(String query)
-    {
-        //System.out.println(query);
-        ArrayList<Byte> list = new ArrayList();
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            while(rs.next())
-            {
-                list.add(rs.getByte(1));
-            }
-            return list;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-        catch(IllegalStateException ex) 
-        {
-            return list;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt alle Spalten als Liste in einer Liste zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return alle Spalten als Liste in einer Liste, bei einem Error kann sie null sein
-     */
-    @SuppressWarnings("unchecked")
-    public final ArrayList<ArrayList<Object>> get(String query)
-    {
-        //System.out.println(query);
-        ArrayList<ArrayList<Object>> list = new ArrayList();
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            while(rs.next())
-            {
-                ArrayList<Object> columns = new ArrayList();
-                try
-                {
-                    int i = 1;
-                    while(true)
-                    {
-                        columns.add(rs.getObject(i));
-                        i++;
-                    }
-                }
-                catch(SQLException ex) 
-                {
-                    if(!ex.getLocalizedMessage().startsWith("Column Index"))
-                    {
-                        printException(query, ex);
-                        return null;
-                    }
-                }
-                list.add(columns);
-            }
-            return list;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-        catch(IllegalStateException ex) 
-        {
-            return list;
-        }
-    }
-    
-    /** Führt den gegebenen Query aus und gibt zwei Spalten als Table zurück.
-     *
-     * @param query ein Query, irgendetwas mit "SELECT"
-     * @return zwei Spalten als List-Map, bei einem Error kann sie null sein
-     */
-    public final Table getTable(String query)
-    {
-        Table table = new Table(2);
-        try(Statement stmt = c.createStatement();)
-        {
-            ResultSet rs = stmt.executeQuery(query);
-            while(rs.next())
-            {
-                table.addRow(new Object[] {rs.getString(1), Compiler.convert(rs.getString(2))});
-            }
-            return table;
-        }
-        catch(SQLException ex) 
-        {
-            printException(query, ex);
-            return null;
-        }
-        catch(IllegalStateException ex) 
-        {
-            return table;
-        }
-    }
-    
-    /** Gibt zurück, ob eine Tabelle existiert oder nicht.
-     *
-     * @param table der Name der Tabelle
-     * @return <code> true </code> falls die Tabelle existiert, sonst <code> false </code>
-     */
-    public final boolean doesTableExist(String table)
-    {
-        try(Statement stmt = c.createStatement();)
-        {
-            return stmt.executeQuery("SHOW TABLES IN minecraft LIKE '" + table + "';").next();
-        }
-        catch(SQLException ex) 
-        {
-            printException("SHOW TABLES LIKE '" + table + "';", ex);
-            return false;
-        }
-    }
-}

+ 76 - 0
src/main/java/me/km/databank/Statement.java

@@ -0,0 +1,76 @@
+package me.km.databank;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class Statement implements IStatement
+{
+    private final DataBank d;
+    private PreparedStatement ps;
+    private final String query;
+    
+    public Statement(DataBank d, String query) throws SQLException
+    {
+        this.d = d;
+        this.query = query;
+        ps = d.prepareStatement(query);
+    }
+    
+    @Override
+    public void validate() throws SQLException
+    {
+        if(ps.isClosed())
+        {
+            ps = d.prepareStatement(query);
+        }
+    }
+    
+    @Override
+    public void close() throws SQLException
+    {
+        ps.close();
+    }
+    
+    @Override
+    public void setInt(int index, int i) throws SQLException
+    {
+        ps.setInt(index, i);
+    }
+    
+    @Override
+    public void setLong(int index, long l) throws SQLException
+    {
+        ps.setLong(index, l);
+    }
+    
+    @Override
+    public void setFloat(int index, float f) throws SQLException
+    {
+        ps.setFloat(index, f);
+    }
+    
+    @Override
+    public void setDouble(int index, double d) throws SQLException
+    {
+        ps.setDouble(index, d);
+    }
+    
+    @Override
+    public void setString(int index, String s) throws SQLException
+    {
+        ps.setString(index, s);
+    }
+    
+    @Override
+    public ResultSet executeQuery() throws SQLException
+    {
+        return ps.executeQuery();
+    }
+    
+    @Override
+    public void executeUpdate() throws SQLException
+    {
+        ps.executeUpdate();
+    }
+}

+ 46 - 62
src/main/java/me/km/datatools/CommandDataTools.java

@@ -1,21 +1,17 @@
 package me.km.datatools;
 
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
-import me.km.chatmanager.ChatManager;
+import me.km.module.Module;
+import me.km.module.ModuleCommand;
+import me.km.utils.Utils;
 import me.km.utils.NBTUtils;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
-import me.km.pathfinder.PathfinderUtils;
 import me.km.permissions.Permissions;
 import me.km.utils.ItemStackUtils;
 import net.minecraft.command.ICommandSender;
 import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
 import net.minecraft.entity.player.EntityPlayerMP;
 import net.minecraft.inventory.EntityEquipmentSlot;
 import net.minecraft.item.ItemArmor;
@@ -32,8 +28,8 @@ public class CommandDataTools extends ModuleCommand
     public CommandDataTools(Module m) 
     {
         super("datatools", m);
-        super.setDescription("Spezielle Commands um Daten zu verändern");
-        super.setUsage("/datatools für die Hilfe");
+        super.setDescription("special commands for changing date");
+        super.setUsage("/datatools for help");
         super.setPermission(Permissions.DATATOOLS);  
         super.addAlias("dt");
         
@@ -97,7 +93,7 @@ public class CommandDataTools extends ModuleCommand
     {
         if(!(cs instanceof EntityPlayerMP))
         {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
+            //this.getModule().send(cs, GlobalText.onlyPlayer());
             return true;
         }
         EntityPlayerMP p = (EntityPlayerMP) cs;
@@ -111,28 +107,16 @@ public class CommandDataTools extends ModuleCommand
                     Entity ent = Utils.getTargetedEntity(p, 3, Entity.class);
                     if(ent == null)
                     {
-                        m.send(cs, "Du musst auf ein Objekt gerichtet sein.");
+                        m.send(cs, "You must look at an entity.");
                         return true;
                     }       
-                    this.getModule().send(cs, GlobalText.Spacer());
-                    this.getModule().send(cs, "NBT-Daten " + ent.getName());
+                    //this.getModule().send(cs, GlobalText.Spacer());
+                    this.getModule().send(cs, "NBT: " + ent.getName());
                     String nbt = NBTUtils.toString(ent);
                     cs.sendMessage(new TextComponentString(NBTUtils.highlightNbtSyntax(nbt)));   
                     NBTUtils.sendCopyableText(p, nbt);
                     return true;
                 }
-                case "test":
-                {
-                    EntityLiving ent = Utils.getTargetedEntity(p, 3, EntityLiving.class);
-                    if(ent == null)
-                    {
-                        m.send(cs, "Du musst auf ein Objekt gerichtet sein.");
-                        return true;
-                    }       
-                    PathfinderUtils.canDestroyBlocks((EntityLiving) ent);
-                    m.send(cs, ent.getName() + " ist nun böse.");
-                    return true;
-                }
                 case "flag":
                 {
                     if(arg.length < 2)
@@ -142,18 +126,18 @@ public class CommandDataTools extends ModuleCommand
                     ItemStack stack = p.getHeldItemMainhand();
                     if(stack == ItemStack.EMPTY)
                     {
-                        m.send(cs, "Du musst ein Item in der Hand halten.");
+                        m.send(cs, "You must hold an item in your hand.");
                         return true;
                     }
                     try
                     {
                         ItemStackUtils.ItemFlag flag = ItemStackUtils.ItemFlag.valueOf(arg[1].toUpperCase());
                         ItemStackUtils.addItemFlag(stack, flag);
-                        m.send(cs, "Die Flag wurde hinzugefügt.");
+                        m.send(cs, "The flag was added.");
                     }
                     catch(IllegalArgumentException ex)
                     {
-                        m.send(cs, "Die gegebene Flag existiert nicht.");
+                        m.send(cs, "The given flag does not exist.");
                     }                           
                     return true;
                 }
@@ -162,7 +146,7 @@ public class CommandDataTools extends ModuleCommand
                     ItemStack stack = p.getHeldItemMainhand();
                     if(stack == ItemStack.EMPTY)
                     {
-                        m.send(cs, "Du musst ein Item in der Hand halten.");
+                        m.send(cs, "You must hold an item in your hand.");
                         return true;
                     }                            
                     if(arg.length < 5)
@@ -173,15 +157,15 @@ public class CommandDataTools extends ModuleCommand
                     {
                         ItemStackUtils.addAttribute(stack, ItemStackUtils.Attribute.valueOf(arg[1]), 
                                 EntityEquipmentSlot.valueOf(arg[2]), Double.parseDouble(arg[3]), ItemStackUtils.Operation.valueOf(arg[4]));
-                        m.send(cs, "Das Attribut wurde hinzugefügt.");
+                        m.send(cs, "The attribute was added.");
                     } 
                     catch(NumberFormatException ex)
                     {
-                        m.send(cs, "Die angegebene Zahl ist ungültig.");
+                        m.send(cs, "A number is invalid.");
                     }
                     catch(IllegalArgumentException ex)
                     {
-                        m.send(cs, "Ein angegebener Enum existiert nicht.");
+                        m.send(cs, "The enum does not exist.");
                     }
                     return true;
                 }
@@ -190,33 +174,33 @@ public class CommandDataTools extends ModuleCommand
                     Entity ent = Utils.getTargetedEntity(p, 3, Entity.class);
                     if(ent == null)
                     {
-                        m.send(cs, "Du musst auf ein Objekt gerichtet sein.");
+                        m.send(cs, "You must look at an entity.");
                         return true;
                     }                        
                     ent.setInvisible(true);
-                    m.send(cs, "Das Objekt sollte nun unsichtbar sein.");
+                    m.send(cs, "The entity is now invisible.");
                     return true;    
                 }
                 case "show-entity":
                     Collection<Entity> ents = Utils.getEntities(p.getEntityWorld(), p.posX, p.posY, p.posZ, 3, Entity.class);
                     if(ents.isEmpty())
                     {
-                        m.send(cs, "Du musst mindestens ein Objekt in deiner Nähe haben.");
+                        m.send(cs, "There must be at least one entity in your surroundings.");
                         return true;
                     } 
                     ents.stream().forEach(ent -> ent.setInvisible(false));
-                    m.send(cs, "Alle Objekte in deiner Nähe sollten wieder sichtbar sein.");
+                    m.send(cs, "All entities near you are visible again.");
                     return true;  
                 case "silent-entity":
                 {
                     Entity ent = Utils.getTargetedEntity(p, 3, Entity.class);
                     if(ent == null)
                     {
-                        m.send(cs, "Du musst auf ein Objekt gerichtet sein.");
+                        m.send(cs, "You must look at an entity.");
                         return true;
                     }                                 
                     ent.setSilent(true);
-                    m.send(cs, "Das Objekt sollte nun still sein.");
+                    m.send(cs, "The entity is now silent.");
                     return true;    
                 }
                 case "name-entity":
@@ -228,12 +212,12 @@ public class CommandDataTools extends ModuleCommand
                     Entity ent = Utils.getTargetedEntity(p, 3, Entity.class);
                     if(ent == null)
                     {
-                        m.send(cs, "Du musst auf ein Objekt gerichtet sein.");
+                        m.send(cs, "You must look at an entity.");
                         return true;
                     }                                
-                    String s = ChatManager.colorMessage(Utils.connectSpaces(arg, 1), p);
+                    String s = Utils.colorMessage(Utils.connectSpaces(arg, 1), p);
                     ent.setCustomNameTag(s);
-                    m.send(cs, "Das Objekt träg nun den Namen '" + s + "§r'.");
+                    m.send(cs, "The entity is now called '" + s + "§r'.");
                     return true; 
                 }
                 case "name-item":
@@ -245,12 +229,12 @@ public class CommandDataTools extends ModuleCommand
                     ItemStack hand = p.getHeldItemMainhand();
                     if(hand == ItemStack.EMPTY)
                     {
-                        m.send(cs, "Du musst ein Item in der Hand halten.");
+                        m.send(cs, "You must hold an item in your hand.");
                         return true;
                     }                          
-                    String s = ChatManager.colorMessage(Utils.connectSpaces(arg, 1), p);
+                    String s = Utils.colorMessage(Utils.connectSpaces(arg, 1), p);
                     hand.setStackDisplayName(s);
-                    m.send(cs, "Das Item trägt nun den Namen '" + s + "§r'.");
+                    m.send(cs, "The item is now called '" + s + "§r'.");
                     return true;
                 }
                 case "lore-item":
@@ -262,7 +246,7 @@ public class CommandDataTools extends ModuleCommand
                     ItemStack hand = p.getHeldItemMainhand();
                     if(hand == ItemStack.EMPTY)
                     {
-                        m.send(cs, "Du musst ein Item in der Hand halten.");
+                        m.send(cs, "You must hold an item in your hand.");
                         return true;
                     }                          
                     int line;
@@ -276,11 +260,11 @@ public class CommandDataTools extends ModuleCommand
                     }
                     catch(NumberFormatException ex)
                     {
-                        m.send(cs, GlobalText.noNaturalNumber());
+                        m.send(cs, "An invalid number was given.");
                         return true;
                     }            
-                    ItemStackUtils.addLore(hand, ChatManager.colorMessage(Utils.connectSpaces(arg, 2), p), line);
-                    m.send(cs, "Die neue Lore wurde hinzugefügt.");
+                    ItemStackUtils.addLore(hand, Utils.colorMessage(Utils.connectSpaces(arg, 2), p), line);
+                    m.send(cs, "The new lore was added.");
                     return true;
                 }
                 case "magic":
@@ -292,7 +276,7 @@ public class CommandDataTools extends ModuleCommand
                     ItemStack hand = p.getHeldItemMainhand();
                     if(hand == ItemStack.EMPTY)
                     {
-                        m.send(cs, "Du musst ein Item in der Hand halten.");
+                        m.send(cs, "You must hold an item in your hand.");
                         return true;
                     }                          
                     int value;
@@ -306,7 +290,7 @@ public class CommandDataTools extends ModuleCommand
                     }
                     catch(NumberFormatException ex)
                     {
-                        m.send(cs, GlobalText.noNaturalNumber());
+                        m.send(cs, "An invalid number was given.");
                         return true;
                     }         
                     if(hand.getItem() instanceof ItemArmor)
@@ -318,11 +302,11 @@ public class CommandDataTools extends ModuleCommand
                             hand.setTagCompound(com);
                         }
                         com.setInteger("magic", value);
-                        m.send(cs, "Die Magieresistenz wurde auf " + value + " gesetzt.");
+                        m.send(cs, "The magic resistance was set to " + value + ".");
                     }
                     else
                     {
-                        m.send(cs, "Nur Rüstung kann Magieresistenz haben.");
+                        m.send(cs, "Only armor can have magic resistance.");
                     }
                     return true;
                 }
@@ -330,16 +314,16 @@ public class CommandDataTools extends ModuleCommand
         }
                     
         m.send(cs, "/datatools ...");
-        m.sendHelpListElement(cs, "print-nbt", "Gibt Information über eine Entity");
-        m.sendHelpListElement(cs, "flag <flag>", "Fügt dem ItemStack eine Flag hinzu");
-        m.sendHelpListElement(cs, "attribute <a> <slot> <d> <op>", "Fügt ein Attribut hinzu");
-        m.sendHelpListElement(cs, "hide-entity", "Macht eine Entitiy unsichtbar");
-        m.sendHelpListElement(cs, "show-entity", "Macht umliegende Entities sichtbar");
-        m.sendHelpListElement(cs, "silent-entity", "Macht eine Entitiy still");
-        m.sendHelpListElement(cs, "name-entity <name>", "Setzt einen Namen für eine Entity");
-        m.sendHelpListElement(cs, "name-item <name>", "Setzt einen Namen für ein Item");
-        m.sendHelpListElement(cs, "lore-item <line> <lore>", "Setzt eine Lore für ein Item");
-        m.sendHelpListElement(cs, "magic <def>", "Setzt die Magieresistenz für ein Item");
+        m.sendHelpListElement(cs, "print-nbt", "prints NBT of an entity");
+        m.sendHelpListElement(cs, "flag <flag>", "adds a flag to an itemstack");
+        m.sendHelpListElement(cs, "attribute <a> <slot> <d> <op>", "adds an attribute to an itemstack");
+        m.sendHelpListElement(cs, "hide-entity", "makes an entity invisible");
+        m.sendHelpListElement(cs, "show-entity", "makes near entities visible");
+        m.sendHelpListElement(cs, "silent-entity", "silence an entity");
+        m.sendHelpListElement(cs, "name-entity <name>", "sets the name of an entity");
+        m.sendHelpListElement(cs, "name-item <name>", "sets the name of an item");
+        m.sendHelpListElement(cs, "lore-item <line> <lore>", "sets the lore of an item");
+        m.sendHelpListElement(cs, "magic <def>", "sets magic resistance of armor");
         return true;  
     }
 }

+ 19 - 20
src/main/java/me/km/datatools/CommandHuman.java

@@ -1,9 +1,8 @@
 package me.km.datatools;
 
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
+import me.km.module.Module;
+import me.km.module.ModuleCommand;
+import me.km.utils.Utils;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -22,7 +21,7 @@ public class CommandHuman extends ModuleCommand
     public CommandHuman(Module m) 
     {
         super("human", m);
-        super.setDescription("Spezielle Commands für Humans");
+        super.setDescription("special commands for humans");
         super.setUsage("/human für die Hilfe");
         super.setPermission(Permissions.HUMAN);  
         super.addAlias("h");
@@ -52,7 +51,7 @@ public class CommandHuman extends ModuleCommand
     {
         if(!(cs instanceof EntityPlayerMP))
         {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
+            this.getModule().send(cs, "This command is only for players.");
             return true;
         }
         EntityPlayerMP p = (EntityPlayerMP) cs;
@@ -78,11 +77,11 @@ public class CommandHuman extends ModuleCommand
                     EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
                     if(h == null)
                     {
-                        m.send(cs, "Du musst auf einen Human gerichtet sein.");
+                        m.send(cs, "You must look at a human.");
                         return true;
                     }       
                     h.setSkinName(arg[1]);
-                    m.send(cs, "Die Daten wurden geändert.");
+                    m.send(cs, "The data was changed.");
                     return true;
                 }
                 case "kill":
@@ -90,11 +89,11 @@ public class CommandHuman extends ModuleCommand
                     EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
                     if(h == null)
                     {
-                        m.send(cs, "Du musst auf einen Human gerichtet sein.");
+                        m.send(cs, "You must look at a human.");
                         return true;
                     }       
                     h.setDead();
-                    m.send(cs, "Der Human wurde getötet.");
+                    m.send(cs, "The human was killed.");
                     return true;
                 }
                 case "size":
@@ -106,7 +105,7 @@ public class CommandHuman extends ModuleCommand
                     EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
                     if(h == null)
                     {
-                        m.send(cs, "Du musst auf einen Human gerichtet sein.");
+                        m.send(cs, "You must look at a human.");
                         return true;
                     }       
                     float scale;
@@ -116,11 +115,11 @@ public class CommandHuman extends ModuleCommand
                     }
                     catch(NumberFormatException ex)
                     {
-                        m.send(cs, "Du musst einen gültigen Float eingeben.");
+                        m.send(cs, "The given float was invalid.");
                         return true;
                     }
                     h.setScale(scale);
-                    m.send(cs, "Der Human wurde skaliert.");
+                    m.send(cs, "The human was scaled.");
                     return true;
                 }
                 case "slim":
@@ -128,22 +127,22 @@ public class CommandHuman extends ModuleCommand
                     EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
                     if(h == null)
                     {
-                        m.send(cs, "Du musst auf einen Human gerichtet sein.");
+                        m.send(cs, "You must look at a human.");
                         return true;
                     }       
                     h.setSlim(!h.isSlim());
-                    m.send(cs, "Der Skin wurde geändert.");
+                    m.send(cs, "The skin was changed.");
                     return true;
                 }
             }
         }
                     
         m.send(cs, "/human ...");
-        m.sendHelpListElement(cs, "spawn", "Spawnt einen Human");
-        m.sendHelpListElement(cs, "set <name>", "Setzt den Namen");
-        m.sendHelpListElement(cs, "kill", "Tötet einen Human");
-        m.sendHelpListElement(cs, "size <scale>", "Setzt die Größenskalierung");
-        m.sendHelpListElement(cs, "slim", "Schaltet Alex/Steve Skin");
+        m.sendHelpListElement(cs, "spawn", "spawns a human");
+        m.sendHelpListElement(cs, "set <name>", "sets the human's skinname");
+        m.sendHelpListElement(cs, "kill", "kills a human");
+        m.sendHelpListElement(cs, "size <scale>", "scales a human");
+        m.sendHelpListElement(cs, "slim", "switch between Alex/Steve model");
         return true;  
     }
 }

+ 4 - 5
src/main/java/me/km/datatools/CommandVillager.java

@@ -1,9 +1,8 @@
 package me.km.datatools;
 
-import me.km.api.GlobalText;
-import me.km.api.Module;
-import me.km.api.ModuleCommand;
-import me.km.api.Utils;
+import me.km.module.Module;
+import me.km.module.ModuleCommand;
+import me.km.utils.Utils;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -56,7 +55,7 @@ public class CommandVillager extends ModuleCommand
     {
         if(!(cs instanceof EntityPlayerMP))
         {
-            this.getModule().send(cs, GlobalText.onlyPlayer());
+            this.getModule().send(cs, "This command is only for players.");
             return true;
         }
         EntityPlayerMP p = (EntityPlayerMP) cs;

+ 10 - 28
src/main/java/me/km/datatools/DataToolsEvents.java

@@ -1,7 +1,7 @@
 package me.km.datatools;
 
-import me.km.api.Module;
-import me.km.api.ModuleListener;
+import me.km.module.Module;
+import me.km.module.ModuleListener;
 import me.km.inventory.CustomContainer;
 import me.km.inventory.InventoryBase;
 import me.km.inventory.InventoryUtils;
@@ -12,16 +12,17 @@ import net.minecraft.inventory.IInventory;
 import net.minecraft.item.ItemStack;
 import net.minecraft.village.MerchantRecipe;
 import net.minecraft.village.MerchantRecipeList;
-import net.minecraftforge.event.entity.EntityJoinWorldEvent;
 import net.minecraftforge.event.entity.living.LivingAttackEvent;
 import net.minecraftforge.event.entity.player.PlayerContainerEvent;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 
-public class DataToolsEvents extends ModuleListener 
+public class DataToolsEvents
 {
+    private final Module m;
+    
     public DataToolsEvents(Module m)
     {
-        super(m);
+        this.m = m;
     }
     
     @SubscribeEvent
@@ -34,6 +35,7 @@ public class DataToolsEvents extends ModuleListener
             if(inv.getName().startsWith("ChangeTrades"))
             {
                 EntityVillager v = (EntityVillager) inv.getOwner();
+                ReflectionUtils.setCareerLevel(v, 10);
                 MerchantRecipeList list = v.getRecipes(null);
                 if(list == null)
                 {
@@ -58,7 +60,7 @@ public class DataToolsEvents extends ModuleListener
                     mr = new MerchantRecipe(inv.getStackInSlot(i + 9), inv.getStackInSlot(i + 18), inv.getStackInSlot(i), 0, Integer.MAX_VALUE);
                     list.add(mr);
                 }
-                this.getModule().send(e.getEntityPlayer(), "Die Villager-Trades wurde überschrieben.");
+                m.send(e.getEntityPlayer(), "The villager deals were overwritten.");
             }
         }
         else if(e.getContainer() instanceof ContainerChest)
@@ -68,37 +70,17 @@ public class DataToolsEvents extends ModuleListener
             if(inv.getName().startsWith("ChangeInventory") && inv instanceof InventoryBase)
             {
                 InventoryUtils.setInventory((InventoryBase) inv);
-                this.getModule().send(e.getEntityPlayer(), "Der Villager-Inventar wurde überschrieben.");
-            }
-        }
-    }
-    
-    @SubscribeEvent
-    public void removeVanillaTrades(EntityJoinWorldEvent e)
-    {
-        // removes vanilla trades and prevents further loading of new ones
-        if (e.getEntity() instanceof EntityVillager)
-        {
-            EntityVillager v = (EntityVillager) e.getEntity();
-            int dim = v.getWorld().provider.getDimension();
-            if(dim >= 2)
-            {
-                ReflectionUtils.setCareerLevel(v, 10);
+                m.send(e.getEntityPlayer(), "The villager inventory was overwritten.");
             }
         }
     }
-
     
     @SubscribeEvent
     public void VillagerProtect(LivingAttackEvent e)
     { 
         if(e.getEntityLiving() instanceof EntityVillager && !e.getSource().isCreativePlayer())
         {
-            int dim = e.getEntity().getEntityWorld().provider.getDimension();
-            if(dim >= 2)
-            {
-                e.setCanceled(true);
-            }
+            e.setCanceled(true);
         }
     }
 }

+ 0 - 29
src/main/java/me/km/dimensions/WorldData.java

@@ -1,29 +0,0 @@
-package me.km.dimensions;
-
-import me.km.api.Module;
-import java.util.HashMap;
-import net.minecraft.util.text.TextFormatting;
-import net.minecraft.world.World;
-
-public class WorldData extends Module
-{
-    private final HashMap<Integer, WorldPreferences> worlds;
-    
-    public WorldData(String mname, String prefix, TextFormatting color)
-    {
-        super(mname, prefix, color);
-        worlds = new HashMap<>();
-    }
-    
-    public WorldPreferences getWorldPreferences(World w)
-    {
-        WorldPreferences wp = worlds.get(w.provider.getDimension());
-        if(wp != null)
-        {
-            return wp;
-        }
-        wp = new WorldPreferences();
-        worlds.put(w.provider.getDimension(), wp);
-        return wp;
-    }
-}

+ 0 - 23
src/main/java/me/km/dimensions/WorldPreferences.java

@@ -1,23 +0,0 @@
-package me.km.dimensions;
-
-public class WorldPreferences 
-{
-    public boolean skills;
-    public boolean defaultProducing;
-    public boolean blockProtection;
-    public boolean defaultEnchanting;
-    public boolean statusEffects;
-    public boolean pvpProtection;
-    public boolean scrolls;
-    
-    public WorldPreferences()
-    {
-        skills = false;
-        scrolls = false;
-        blockProtection = true;
-        defaultProducing = true;
-        defaultEnchanting = true;
-        statusEffects = false;
-        pvpProtection = true;
-    }
-}

+ 0 - 77
src/main/java/me/km/effects/ActiveEffectBase.java

@@ -1,77 +0,0 @@
-package me.km.effects;
-
-import me.km.KajetansMod;
-import me.km.data.EntityData;
-import me.km.environment.EnvironmentAPI;
-import me.km.snuviscript.ScriptEvents;
-import net.minecraft.entity.player.EntityPlayerMP;
-
-public abstract class ActiveEffectBase 
-{
-    public final boolean run(EntityPlayerMP p, int power, int mana, int cooldown, EffectCause cause)
-    {
-        EntityData data = KajetansMod.data.getOrCreate(p);
-        if(cause != EffectCause.NOTHING)
-        {
-            if(data.isShadow())
-            {
-                p.setInvisible(false);
-                data.setShadow(0);
-            } 
-            if(data.isSilenced())
-            {
-                KajetansMod.skills.send(p, "Du kannst gerade keine Skills nutzen.");
-                return false;
-            }
-        }
-        // Effect-Event-Start
-        String name = this.getClass().getSimpleName();
-        PlayerUsesEffectEvent e = new PlayerUsesEffectEvent(p, power, mana, cooldown, cause, name);
-        KajetansMod.scripts.getEvent(ScriptEvents.class).onEffectUse(e);
-        if(e.isCanceled())
-        {
-            return false;
-        }
-        else
-        {
-            power = e.getPower();
-            mana = e.getMana();
-            cooldown = e.getCooldown();
-        }
-        // Effect-Event-End
-        if(p.isCreative())
-        {
-            return executeEffect(p, power);
-        }
-        // cooldown check
-        if(!data.hasCooldown(name))
-        {
-            if(mana > 0)
-            {
-                int currentMana = EnvironmentAPI.getMana(p);
-                if(currentMana < mana)
-                {
-                    KajetansMod.skills.send(p, "Du hast zu wenig Mana. (§a" + mana + "§r/§c" + mana + "§r)");
-                    return false;
-                }
-            }  
-            if(executeEffect(p, power))
-            {
-                if(cooldown > 0)
-                {
-                    data.addCoolDown(name, cooldown);
-                }
-                if(mana >= 0)
-                {
-                    EnvironmentAPI.changeMana(p, -mana);
-                }
-                return true;
-            }
-            return false;
-        }
-        KajetansMod.skills.send(p, "Der Cooldown läuft noch.");
-        return false;
-    }
-    
-    protected abstract boolean executeEffect(EntityPlayerMP p, int power);
-}

+ 0 - 212
src/main/java/me/km/effects/Effect.java

@@ -1,212 +0,0 @@
-package me.km.effects;
-
-import java.util.ArrayList;
-import me.km.effects.active.*;
-import me.km.skills.Skill;
-
-public enum Effect
-{
-    // comments indicate, that events aren't in active oder passive effect packages
-    // passive effects
-    ENCHANTER               ,   // me.kt.custom.CustomEnchanting 
-    LESS_HUNGER             ,   // me.kt.environment.EnvironmentTick
-    LESS_THIRST             ,   // me.kt.environment.EnvironmentAPI
-    LESS_ENERGY_USE         ,   // me.kt.environment.EnvironmentAPI
-    LESS_COLD               ,   // me.kt.environment.EnvironmentAPI
-    FASTER_MANA             ,   // me.kt.environment.EnvironmentAPI    
-    BREED_COW               ,        
-    BREED_PIG               ,
-    BREED_SHEEP             ,
-    BREED_RABBIT            ,
-    BREED_CHICKEN           ,
-    BREED_HORSE             ,
-    BREED_MUSHROOMCOW       ,
-    GRAVEL_SAND_DIGGER      ,
-    MORE_MINERALS           ,
-    MORE_CROPS              ,
-    TREE_PICKER             ,
-    MORE_SAPLINGS           ,
-    CAKE_POWER              ,
-    SNEAKING                ,
-    SCENT                   ,
-    MUGGING                 ,
-    FAST_DIGGING            ,
-    XP_COLLECTOR            ,
-    MORE_DROPS              ,
-    FASTER_ARROWS           ,
-    ARROW_SAVER             ,
-    MORE_AXE_DAMAGE         ,
-    MORE_HOE_DAMAGE         ,
-    MORE_PICKAXE_DAMAGE     ,
-    MORE_SHOVEL_DAMAGE      ,
-    MORE_SWORD_DAMAGE       ,
-    MORE_DAGGER_DAMAGE      ,
-    MORE_HAMMER_DAMAGE      ,
-    MORE_STICK_DAMAGE       ,
-    FISHING                 ,
-    POTION_SAVER            ,
-    BREWING                 ,
-    CAULDRON_FILLING        ,
-    SMELTING                ,
-    NO_POISON               ,
-    LESS_FALL_DAMAGE        ,
-    LESS_DAMAGE             ,
-    SMITH                   ,
-    FAST_ENDERPEARL_SHOOT   ,
-    PEARL_SAVER             ,
-    NO_ENDERPEARL_DAMAGE    ,
-    GOLD_WASHER             ,
-    GOLD_RUSH               ,
-    LESS_ITEM_LOSS          ,
-    NO_ARMOR_DROPPING       ,
-    DODGE                   ,
-    BLOOD_THIRST            ,
-    JUMP_BONUS              ,
-    
-    // active effects
-    POISON_VOLLEY           (new PoisonVolley()),
-    STRONG_STUN_PUNCH       (new StrongStunPunch()),
-    IGNORANCE               (new Ignorance()),
-    FIRE                    (new Fire()),
-    ARMOR_BOOST             (new ArmorBoost()),
-    SHADOW_STEP             (new ShadowStep()),
-    BLINDING_SHOT           (new BlindingShot()),
-    KICK                    (new Kick()),
-    CRIPPLE                 (new Cripple()),
-    ELEVATION               (new Elevation()),
-    SUN                     (new Sun()),
-    IMMORTALITY             (new Immortality()),
-    LUCKY                   (new Lucky()),
-    POISONED_BLADE          (new PoisonedBlade()),
-    BUNNY_HOP               (new BunnyHop()),
-    CONSTANT_POWER          (new ConstantPower()),
-    ARMOR_PASSER            (new ArmorPasser()),
-    IMPACT_PUNCH            (new ImpactPunch()),
-    ENDERCHEST              (new Enderchest()),
-    NAIL_DOWN               (new NailDown()),
-    DOOMED                  (new Doomed()),
-    PUSH                    (new Push()),
-    HUNGER_PUNCH            (new HungerPunch()),
-    FIRE_SHOT               (new FireShot()),
-    PULL                    (new Pull()),
-    HEAL_RAIN               (new HealRain()),
-    UNLUCKY                 (new Unlucky()),
-    NAIL_TRAP               (new NailTrap()),
-    NIGHT                   (new Night()),
-    AREA_DAMAGE             (new AreaDamage()),
-    SILENCE_PUNCH           (new SilencePunch()),
-    EARTHQUAKE              (new Earthquake()),
-    FIREBALL                (new Fireball()),
-    JUMP                    (new Jump()),
-    STUN_PUNCH              (new StunPunch()),
-    PUSH_UP                 (new PushUp()),
-    THOR                    (new Thor()),
-    GRAPPLING_HOOK          (new GrapplingHook()),
-    QUICK_SHOT              (new QuickShot()),
-    CALL_BACK               (new CallBack()),
-    THORNS                  (new Thorns()),
-    SHADOW_HIT              (new ShadowHit()),
-    LOCK_PICK               (new LockPick()),
-    HEART_SEEKER            (new HeartSeeker()),
-    TELEPORT_PLAYER         (new TeleportPlayer()),
-    SPRINT                  (new Sprint()),
-    LIFE_BREAKER            (new LifeBreaker()),
-    TIMED_HEAL              (new TimedHeal()),
-    POWER                   (new Power()),
-    MUSKET                  (new Musket()),
-    HEARTS                  (new Hearts()),
-    ROOTING                 (new Rooting()),
-    WORKBENCH               (new Workbench()),
-    NET_TRAP                (new NetTrap()),
-    LEAF_COCOON             (new LeafCocoon()),
-    POISON                  (new Poison()),
-    SMASH                   (new Smash()),
-    LIFE_STEAL              (new LifeSteal()),
-    SHADOW                  (new Shadow()),
-    SLOWING_SHOT            (new SlowingShot()),
-    WAR_CALL                (new WarCall()),
-    VINE_TRAP               (new VineTrap()),
-    RAPID_FIRE              (new RapidFire()),
-    STONE                   (new Stone()),
-    FIRE_PROTECTION_RAIN    (new FireProtectionRain()),
-    BONE_BREAKER            (new BoneBreaker()),
-    PULL_ATTACK             (new PullAttack()),
-    ARCANE_SHOT             (new ArcaneShot()),
-    RAIN                    (new Rain()),
-    INVISIBILITY            (new Invisibility()),
-    REVENGE                 (new Revenge()),
-    DAY                     (new Day()),
-    FLYING                  (new Flying()),
-    EXPLOSION               (new Explosion()),
-    SMOKE_BOMB              (new SmokeBomb()),
-    CHARGE                  (new Charge()),
-    HARVEST                 (new Harvest()),
-    FREEZE                  (new Freeze()),
-    FALL_IMMUNITY           (new FallImmunity()),
-    DISARM                  (new Disarm()),
-    BLOCK_EXPLOSION         (new BlockExplosion()),
-    BLADE_STORM             (new BladeStorm()),
-    ELVISH_HORN             (new ElvishHorn()),
-    SHIELD                  (new Shield()),
-    GRAVITY                 (new Gravity()),
-    TELEPORT_BLOCK          (new TeleportBlock()),
-    CLUSTER_BOMB            (new ClusterBomb()),
-    HARM                    (new Harm()),
-    SILENCE                 (new Silence()),
-    POWER_ATTACK            (new PowerAttack()),
-    HEAL                    (new Heal()),
-    JUMP_ATTACK             (new JumpAttack()),
-    DRAGON_SKIN             (new DragonSkin());
-    
-    private static Effect[] effects = Effect.values();
-    
-    private final ArrayList<Skill> skills;
-    private final ActiveEffectBase aeb;
-    private final boolean active;
-    
-    Effect(ActiveEffectBase aeb) 
-    {
-        skills = new ArrayList<>();
-        this.active = aeb != null;
-        this.aeb = aeb;
-    }
-    
-    Effect()
-    {
-        this(null);
-    }
-    
-    public void addSkill(Skill s)
-    {
-        skills.add(s);
-    }
-    
-    public ArrayList<Skill> getSkills()
-    {
-        return skills;
-    }
-    
-    public void clearSkills()
-    {
-        skills.clear();
-    }
-    
-    public boolean isActive()
-    {
-        return active;
-    }
-    
-    public ActiveEffectBase getEffectInstance()
-    {
-        return aeb;
-    }
-    
-    public static Effect getEffect(int id)
-    {
-        if(id < 0 || id >= effects.length)
-        {
-            return null;
-        }
-        return effects[id];
-    }
-}

+ 0 - 67
src/main/java/me/km/effects/EffectAirBlockChanger.java

@@ -1,67 +0,0 @@
-package me.km.effects;
-
-import me.km.KajetansMod;
-import java.util.ArrayList;
-import java.util.function.Consumer;
-import me.km.api.Location;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class EffectAirBlockChanger
-{
-    private final World w;
-    private final ArrayList<ChangeBlock> list;
-    
-    public EffectAirBlockChanger(World w)
-    {
-        this.w = w;
-        list = new ArrayList<>();
-    }
-    
-    public void addBlock(BlockPos pos)
-    {
-        if(!w.isAirBlock(pos) && w.getTileEntity(pos) == null)
-        {
-            list.add(new ChangeBlock(pos));
-        }
-    }
-    
-    public void run(int clean)
-    {
-        list.forEach(c -> c.run());
-        KajetansMod.scheduler.scheduleTask(() -> list.forEach(c -> c.clear()), clean);
-    }
-    
-    public World getWorld()
-    {
-        return w;
-    }
-    
-    public void forEachLocation(Consumer<? super Location> c)
-    {
-        list.stream().map(l -> new Location(w, l.pos)).forEach(c);
-    }
-    
-    private class ChangeBlock
-    {
-        private final BlockPos pos;
-        private final IBlockState state;
-
-        public ChangeBlock(BlockPos pos)
-        {
-            this.pos = pos;
-            this.state = w.getBlockState(pos);
-        }
-
-        public void run()
-        {
-            w.setBlockToAir(pos);
-        }
-
-        public void clear()
-        {
-            w.setBlockState(pos, state);
-        }
-    }
-}

+ 0 - 78
src/main/java/me/km/effects/EffectBlockChanger.java

@@ -1,78 +0,0 @@
-package me.km.effects;
-
-import me.km.KajetansMod;
-import java.util.ArrayList;
-import net.minecraft.block.Block;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class EffectBlockChanger
-{
-    private final World w;
-    private final ArrayList<ChangeBlock> list;
-    
-    public EffectBlockChanger(World w)
-    {
-        this.w = w;
-        list = new ArrayList<>();
-    }
-    
-    public void addBlock(BlockPos pos, Block b, int s)
-    {
-        if(w.isAirBlock(pos))
-        {
-            list.add(new ChangeBlock(pos, b, s));
-        }
-    }
-    
-    public void addBlock(BlockPos pos, Block b)
-    {
-        addBlock(pos, b, 0);
-    }
-    
-    public void run(int clean)
-    {
-        list.forEach(c -> c.run());
-        KajetansMod.scheduler.scheduleTask(() -> list.forEach(c -> c.clear()), clean);
-    }
-    
-    public World getWorld()
-    {
-        return w;
-    }
-    
-    private class ChangeBlock
-    {
-        private BlockPos pos;
-        private IBlockState state;
-
-        public ChangeBlock(BlockPos pos, Block b, int s)
-        {
-            if(s != 0)
-            {
-                this.state = b.getStateFromMeta(s);
-            }
-            else
-            {
-                this.state = b.getDefaultState();
-            }
-            this.pos = pos;
-        }
-
-        public ChangeBlock(BlockPos pos, Block b)
-        {
-            this(pos, b, 0);
-        }
-
-        public void run()
-        {
-            w.setBlockState(pos, state);
-        }
-
-        public void clear()
-        {
-            w.setBlockToAir(pos);
-        }
-    }
-}

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor