Save Entity

Discussion in 'Plugin Development' started by Jalau, Oct 22, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Jalau

    Hi guys i need to save an very custom entity (mob) with armor, lore, name, colors (like in hypixel map) so i can spawn it later on! So i look at an entity and say something like /savemob (name) and later on /spawnmob name! This is no plugin request i know how to code and heres my code, (I'm stuck at the part to convert it to a base64 string so i can save it to the config!
    Show Spoiler
    Code:java
    1. package me.Jalau.MobSpawner;
    2.  
    3. import java.io.ByteArrayInputStream;
    4. import java.io.ByteArrayOutputStream;
    5. import java.io.DataInputStream;
    6. import java.io.DataOutputStream;
    7. import java.io.File;
    8. import java.io.IOException;
    9. import java.util.ArrayList;
    10. import java.util.Arrays;
    11. import java.util.List;
    12. import java.util.Set;
    13.  
    14. import org.bukkit.Bukkit;
    15. import org.bukkit.ChatColor;
    16. import org.bukkit.GameMode;
    17. import org.bukkit.Location;
    18. import org.bukkit.Material;
    19. import org.bukkit.Sound;
    20. import org.bukkit.block.Block;
    21. import org.bukkit.block.BlockFace;
    22. import org.bukkit.command.Command;
    23. import org.bukkit.command.CommandSender;
    24. import org.bukkit.entity.Entity;
    25. import org.bukkit.entity.LivingEntity;
    26. import org.bukkit.entity.Player;
    27. import org.bukkit.entity.Skeleton;
    28. import org.bukkit.entity.Zombie;
    29. import org.bukkit.event.EventHandler;
    30. import org.bukkit.event.EventPriority;
    31. import org.bukkit.event.Listener;
    32. import org.bukkit.event.block.Action;
    33. import org.bukkit.event.entity.EntityDamageEvent;
    34. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    35. import org.bukkit.event.inventory.InventoryClickEvent;
    36. import org.bukkit.event.player.PlayerDropItemEvent;
    37. import org.bukkit.event.player.PlayerFishEvent;
    38. import org.bukkit.event.player.PlayerInteractEvent;
    39. import org.bukkit.event.player.PlayerJoinEvent;
    40. import org.bukkit.event.player.PlayerMoveEvent;
    41. import org.bukkit.event.player.PlayerQuitEvent;
    42. import org.bukkit.event.player.PlayerToggleFlightEvent;
    43. import org.bukkit.inventory.Inventory;
    44. import org.bukkit.inventory.ItemStack;
    45. import org.bukkit.inventory.meta.ItemMeta;
    46. import org.bukkit.plugin.java.JavaPlugin;
    47. import org.bukkit.plugin.messaging.PluginMessageListener;
    48. import org.bukkit.potion.PotionEffect;
    49. import org.bukkit.util.BlockIterator;
    50. import org.bukkit.util.Vector;
    51. import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
    52.  
    53.  
    54. public class MobSpawner extends JavaPlugin implements Listener {
    55.  
    56. @Override
    57. public void onEnable() {
    58. getServer().getPluginManager().registerEvents(this, this);
    59. if (!new File(getDataFolder(), "config.yml").exists()) {
    60. saveDefaultConfig();
    61. }
    62. }
    63. public void onDisable() {
    64. }
    65. @Override
    66. public boolean onCommand(CommandSender sender, Command cmd, String label,
    67. String[] args) {
    68. Player player = (Player) sender;
    69. if (cmd.getName().equalsIgnoreCase("mob")) {
    70. if(args.length == 1) {
    71. Block targetBlock = player.getTargetBlock(null, 50);
    72. for(Entity e : targetBlock.getChunk().getEntities())
    73. {
    74. if(e instanceof Zombie || e instanceof Skeleton)
    75. if( targetBlock.getLocation().distance(e.getLocation()) < 3) {
    76. String s = null;
    77. s = //base64 string;
    78. this.getConfig().set("mob." + args[0] , s);
    79. player.sendMessage(ChatColor.GREEN + "Entity saved under: " + args[0]);
    80. this.saveConfig();
    81. }
    82. }
    83. }
    84. }
    85.  
    86. if (cmd.getName().equalsIgnoreCase("spawnmob")) {
    87. if(args.length == 1) {
    88. String mob = args[0];
    89. Block targetBlock = player.getTargetBlock(null, 50);
    90. Set<String> keys = this.getConfig().getConfigurationSection("mob." + mob).getKeys(false);
    91. //Entity e = this.getConfig().get
    92. //....
    93. this.saveConfig();
    94. }
    95. }
    96.  
    97. return true;
    98.  
    99. }
    100. }
     
  2. Jalau
    These should do it.
    Code:java
    1. private String encode(String str) {
    2. str = Base64Coder.encodeString(str);
    3. return str;
    4. }
    5.  
    6.  
    7. private String decode(String str) {
    8. str = new String(Base64Coder.decode(str));
    9. return str;
    10. }
    11.  
     
  3. Offline

    Jalau

    Assist
    Yes probably but still the Entity is no string yet ^^

    Bump

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 5, 2016
  4. Offline

    Jalau

    Bump :confused:
     
Thread Status:
Not open for further replies.

Share This Page