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++): Spoiler (Move your mouse to the spoiler area to reveal the content) Show Spoiler Hide 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. :/