1.8 Potion Support

Discussion in 'Plugin Development' started by Kaikz, Sep 16, 2011.

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

    Kaikz

    As seen here, 1.8 has hidden support for potions.

    Minecraft Wiki has a list of what they do and what there is.

    Building on from the code posted in the reddit thread, I've just done a hacky command setup here (may be wrong, did it in NP++):

    Show Spoiler
    Code:
    import net.minecraft.server.EntityPlayer;
    import net.minecraft.server.MobEffect;
    import org.bukkit.craftbukkit.entity.CraftPlayer;
    
    public int time = 30;
    public int strength 10;
    
    public void doEffect(EntityPlayer player, int id, int time, int strength) {
    	player.d(new MobEffect(id, time * 20, strength));
    }
    
    EntityPlayer eplayer = ((CraftPlayer) (Player)sender).getHandle();
    if (commandLabel.equals("potion")) {
        if (args.length < 0) {
            player.sendMessage(ChatColor.RED + "You didn't give us a potion name!");
            return true;
        } else if (args.length == 1) {
            if (args[0].equalsIgnoreCase("speedup") && player.hasPermission("potion.speedup")) {
                doEffect(eplayer, 1, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("speeddown") && player.hasPermission("potion.speeddown")) {
                doEffect(eplayer, 2, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("digup") && player.hasPermission("potion.digup")) {
                doEffect(eplayer, 3, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("digdown") && player.hasPermission("potion.digdown")) {
                doEffect(eplayer, 4, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("damageboost") && player.hasPermission("potion.damageboost")) {
                doEffect(eplayer, 5, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("heal") && player.hasPermission("potion.heal")) {
                doEffect(eplayer, 6, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("harm") && player.hasPermission("potion.harm")) {
                doEffect(eplayer, 7, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("jump") && player.hasPermission("potion.jump")) {
                doEffect(eplayer, 8, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("confusion") && player.hasPermission("potion.confusion")) {
                doEffect(eplayer, 9, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("regen") && player.hasPermission("potion.regen")) {
                doEffect(eplayer, 10, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("resist") && player.hasPermission("potion.resist")) {
                doEffect(eplayer, 11, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("fireresist") && player.hasPermission("potion.fireresist")) {
                doEffect(eplayer, 12, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("waterbreath") && player.hasPermission("potion.waterbreath")) {
                doEffect(eplayer, 13, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("invisible") && player.hasPermission("potion.invisible")) {
                doEffect(eplayer, 14, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("blindness") && player.hasPermission("potion.blindness")) {
                doEffect(eplayer, 15, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("nightvision") && player.hasPermission("potion.nightvision")) {
                doEffect(eplayer, 16, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("hunger") && player.hasPermission("potion.hunger")) {
                doEffect(eplayer, 17, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("weakness") && player.hasPermission("potion.weakness")) {
                doEffect(eplayer, 18, time, strength);
    			return true;
            } else if (args[0].equalsIgnoreCase("poison") && player.hasPermission("potion.poison")) {
                doEffect(eplayer, 19, time, strength);
    			return true;
            } else {
    			player.sendMessage(ChatColor.RED + "Unknown potion name!");
    			return true;
    		}
    	}
    }


    As said, there's no way to remove a potion as far as we know. :/
     
Thread Status:
Not open for further replies.

Share This Page