Advertisement
Guest User

Code

a guest
Dec 9th, 2012
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. package com.modcrafting.mobspeed;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.lang.reflect.Field;
  6. import net.minecraft.server.EntityHuman;
  7. import net.minecraft.server.EntityLiving;
  8. import net.minecraft.server.EntityVillager;
  9. import net.minecraft.server.EntityZombie;
  10. import net.minecraft.server.PathfinderGoalBreakDoor;
  11. import net.minecraft.server.PathfinderGoalFloat;
  12. import net.minecraft.server.PathfinderGoalLookAtPlayer;
  13. import net.minecraft.server.PathfinderGoalMeleeAttack;
  14. import net.minecraft.server.PathfinderGoalMoveThroughVillage;
  15. import net.minecraft.server.PathfinderGoalMoveTowardsRestriction;
  16. import net.minecraft.server.PathfinderGoalRandomLookaround;
  17. import net.minecraft.server.PathfinderGoalRandomStroll;
  18. import net.minecraft.server.PathfinderGoalSelector;
  19. import net.minecraft.server.WorldServer;
  20. import org.bukkit.Server;
  21. import org.bukkit.configuration.file.FileConfiguration;
  22. import org.bukkit.craftbukkit.CraftWorld;
  23. import org.bukkit.craftbukkit.entity.CraftZombie;
  24. import org.bukkit.entity.LivingEntity;
  25. import org.bukkit.entity.Zombie;
  26. import org.bukkit.event.EventHandler;
  27. import org.bukkit.event.Listener;
  28. import org.bukkit.event.entity.CreatureSpawnEvent;
  29. import org.bukkit.plugin.PluginManager;
  30. import org.bukkit.plugin.java.JavaPlugin;
  31.  
  32. public class Mobspeed extends JavaPlugin
  33. implements Listener
  34. {
  35. public void onDisable()
  36. {
  37. reloadConfig();
  38. }
  39. public void onEnable() {
  40. getDataFolder().mkdir();
  41. File cfg = new File(getDataFolder(), "config.yml");
  42. if (!cfg.exists()) {
  43. try {
  44. cfg.createNewFile();
  45. } catch (IOException e) {
  46. e.printStackTrace();
  47. }
  48. getConfig().set("ZombieSpeed", "0.23F");
  49. saveConfig();
  50. }
  51. getServer().getPluginManager().registerEvents(this, this);
  52. }
  53. @EventHandler
  54. public void onCreatureSpawn(CreatureSpawnEvent event) {
  55. if (!(event.getEntity() instanceof Zombie)) return;
  56. EntityZombie zombie = ((CraftZombie)event.getEntity()).getHandle();
  57. try
  58. {
  59. Field fGoalSelector = EntityLiving.class.getDeclaredField("goalSelector");
  60. fGoalSelector.setAccessible(true);
  61. Float speed = Float.valueOf(0.23F);
  62. if (getConfig().getString("ZombieSpeed") != null)
  63. speed = Float.valueOf(Float.parseFloat(getConfig().getString("ZombieSpeed")));
  64. PathfinderGoalSelector gs = new PathfinderGoalSelector(
  65. (((CraftWorld)event.getEntity().getWorld()).getHandle() != null) &&
  66. (((CraftWorld)event.getEntity().getWorld()).getHandle().methodProfiler != null) ?
  67. ((CraftWorld)event.getEntity().getWorld()).getHandle().methodProfiler : null);
  68. gs.a(0, new PathfinderGoalFloat(zombie));
  69. gs.a(1, new PathfinderGoalBreakDoor(zombie));
  70. gs.a(2, new PathfinderGoalMeleeAttack(zombie, EntityHuman.class, speed.floatValue(), false));
  71. gs.a(3, new PathfinderGoalMeleeAttack(zombie, EntityVillager.class, speed.floatValue(), true));
  72. gs.a(4, new PathfinderGoalMoveTowardsRestriction(zombie, speed.floatValue()));
  73. gs.a(5, new PathfinderGoalMoveThroughVillage(zombie, speed.floatValue(), false));
  74. gs.a(6, new PathfinderGoalRandomStroll(zombie, speed.floatValue()));
  75. gs.a(7, new PathfinderGoalLookAtPlayer(zombie, EntityHuman.class, 15.0F));
  76. gs.a(7, new PathfinderGoalRandomLookaround(zombie));
  77. fGoalSelector.set(zombie, gs);
  78. } catch (NumberFormatException e) {
  79. e.printStackTrace();
  80. } catch (SecurityException e) {
  81. e.printStackTrace();
  82. } catch (NoSuchFieldException e) {
  83. e.printStackTrace();
  84. } catch (IllegalArgumentException e) {
  85. e.printStackTrace();
  86. } catch (IllegalAccessException e) {
  87. e.printStackTrace();
  88. }
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement