Any chance of a flying mount plugin? basically just magic carpet, but replace the square glass with a dragon or a phoenix? o.o sure it wouldnt work too well, or be effective at all, but it would be awesomeee!
i could throw that together for you once a stable build for 1.9 is out. it should actually be kinda easy and i love the idea
http://forums.bukkit.org/threads/co...e-under-50-challenge.33264/page-4#post-776961 xD I also experimented with methods to control the dragon, but it was very glitchy.
Of course, the finished one (when a RB for 1.9 comes out ) will have more than 50 lines, too (for example to remove a players dragon when the player logs off while flying)
Easy? You sure? Enderdragons move randomly when you get on them. How are you going to control the dragon? Move it towards where you're looking at? How are you even going to make it move towards where you're looking at? onTimerTick? Might cause lag. *Sorry for the offensive nature of this post. I just had to say something*
nononoi was thinking just a dragon shaped magiccarpet or other shapes too you could limit certain shapes like phoenixes to mods etc
no, you're of course absolutely right, i was just saying that i like the idea. of course this would be glitchy, but what can you do? I'm going to definitely try this out.
need code which does this? Spoiler (Move your mouse to the spoiler area to reveal the content) Show Spoiler Hide Spoiler Code:java package de.V10lator.RideThaDragon; import java.util.HashMap;import java.util.Map.Entry; import org.bukkit.Location;import org.bukkit.Server;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.CreatureType;import org.bukkit.entity.LivingEntity;import org.bukkit.entity.Player;import org.bukkit.event.Event;import org.bukkit.event.player.PlayerListener;import org.bukkit.event.player.PlayerMoveEvent;import org.bukkit.plugin.java.JavaPlugin; public class RideThaDragon extends JavaPlugin{ private final HashMap<String, LivingEntity> dragons = new HashMap<String, LivingEntity>(); public void onEnable() { Server s = getServer(); s.getScheduler().scheduleSyncRepeatingTask(this, new DragonControl(), 1L, 1L); s.getLogger().info("[RideThaDragon] enabled!"); } public void onDisable() { Server s =getServer(); s.getScheduler().cancelTasks(this); for(LivingEntity dragon: dragons.values()) { dragon.eject(); dragon.remove(); } s.getLogger().info("[RideThaDragon] disabled!"); } public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(!(sender instanceof Player) || !sender.hasPermission("dragon.ride")) return true; Player player = (Player)sender; String pn = player.getName(); if(dragons.containsKey(pn)) { LivingEntity dragon = dragons.get(pn); dragon.eject(); dragon.remove(); dragons.remove(pn); } else { LivingEntity dragon = player.getWorld().spawnCreature(player.getLocation(), CreatureType.ENDER_DRAGON); dragons.put(player.getName(), dragon); dragon.setPassenger(player); } return true; } private class DragonControl implements Runnable { public void run() { Server s = getServer(); for(Entry<String, LivingEntity> e: dragons.entrySet()) { String pn = e.getKey(); Player player = s.getPlayerExact(pn); LivingEntity dragon = e.getValue(); if(player == null || !player.isOnline()) { dragon.remove(); dragons.remove(pn); continue; } Location ploc = player.getEyeLocation(); Location dloc = dragon.getLocation(); dloc.setPitch(ploc.getPitch()); dloc.setYaw(ploc.getYaw()); dragon.setVelocity(dloc.getDirection()); } } }} If you have any improvements I would be happy to get them.
sry, wont be trying to do that as of right now. i'm busy preparing my server for 1.9 - writing plugins and stuff... and school... however, if i have any time after 1.9, i'll be happy to take a look at your code
Thanks, I didn't think of a Runnable. You're right, it's really buggy and weird. EDIT by Moderator: merged posts, please use the edit button instead of double posting.