How do you add a potion effect from projectile such as an egg

Discussion in 'Plugin Development' started by thatdubstepgamer, Aug 14, 2013.

Thread Status:
Not open for further replies.
  1. My question is How do you add a potion effect from projectile such as an egg? Ive done some research on this in the docs and its EntityDamageByEntityEvent but i still cant figure it out. Sorry if its to much of a burden this is my code so far.

    Code:java
    1. package me.jp.Ctf;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.GameMode;
    8. import org.bukkit.Location;
    9. import org.bukkit.Material;
    10. import org.bukkit.block.Sign;
    11. import org.bukkit.command.Command;
    12. import org.bukkit.command.CommandSender;
    13. import org.bukkit.enchantments.Enchantment;
    14. import org.bukkit.entity.Player;
    15. import org.bukkit.event.EventHandler;
    16. import org.bukkit.event.Listener;
    17. import org.bukkit.event.block.Action;
    18. import org.bukkit.event.block.SignChangeEvent;
    19. import org.bukkit.event.player.PlayerInteractEvent;
    20. import org.bukkit.event.player.PlayerJoinEvent;
    21. import org.bukkit.inventory.ItemStack;
    22. import org.bukkit.inventory.PlayerInventory;
    23. import org.bukkit.inventory.meta.BookMeta;
    24. import org.bukkit.plugin.PluginDescriptionFile;
    25. import org.bukkit.plugin.PluginManager;
    26. import org.bukkit.plugin.java.JavaPlugin;
    27.  
    28. public class Ctf extends JavaPlugin implements Listener{
    29. public final Logger logger = Logger.getLogger("Minecraft");
    30. public static Ctf plugin;
    31.  
    32.  
    33. //Join Lobby Nether
    34. @EventHandler
    35. public void onSignChange(SignChangeEvent event) {
    36. if (event.getLine(1).contains("[Join Lobby]")) {
    37. event.setLine(1, "[Join Lobby]");
    38. event.setLine(2, "SLOTS: " + Bukkit.getOnlinePlayers().length + "/" + Bukkit.getMaxPlayers());
    39. event.setLine(3, "==============");
    40. event.setLine(0, "Map: Nether");
    41.  
    42. }
    43. }
    44. //Leave Lobby
    45. @EventHandler
    46. public void onSignChange1(SignChangeEvent event) {
    47. if (event.getLine(0).contains("[Leave Lobby]")) {
    48. event.setLine(0, "[Leave Lobby]");
    49. }
    50. }
    51. //Help
    52. @EventHandler
    53. public void onSignChange11(SignChangeEvent event) {
    54. if (event.getLine(0).contains("[Help]")) {
    55. event.setLine(0, "[Help]");
    56. }
    57.  
    58. }
    59. //Kit Selector
    60. @EventHandler
    61. public void onSignChange3(SignChangeEvent event) {
    62. if (event.getLine(0).contains("[Kit Selector]")) {
    63. event.setLine(0, "[Choose Kit]");
    64. }
    65. }
    66.  
    67. //Kit Selector
    68. @EventHandler
    69. public void onSignChange4(SignChangeEvent event) {
    70. if (event.getLine(0).contains("[Spectate]")) {
    71. event.setLine(0, "[Spectate]");
    72. }
    73. }
    74.  
    75. // Welcome menu
    76. @EventHandler
    77. public void onPlayerJoin(PlayerJoinEvent e) {
    78. Player p = e.getPlayer();
    79. p.setGameMode(GameMode.ADVENTURE);
    80. p.sendMessage(ChatColor.WHITE+ "_____________________________________________________");
    81. p.sendMessage(ChatColor.WHITE+"BASIC CLASS - Available for everyone!");
    82. p.sendMessage(ChatColor.GRAY+"/archer, /heavy, /medic, /soldier");
    83. p.sendMessage(ChatColor.GREEN+"PEMIUM CLASSES - Order @ [url="http://www.mcctf.com/order"]www.mcctf.com/order[/url]");
    84. p.sendMessage(ChatColor.GRAY+"/assassin, /chemist, /dwarf, /engineer, /mage, /necro, /ninja, /pyro");
    85. p.sendMessage(ChatColor.WHITE+ "_____________________________________________________");
    86. if (p instanceof Player){
    87. ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
    88. BookMeta bm = (BookMeta) book.getItemMeta();
    89. bm.addPage("Hello and welcome to GrandPvP");
    90. bm.setAuthor("Jptg1234");
    91. bm.setDisplayName("Help");
    92. bm.setTitle("Help");
    93. book.setItemMeta(bm);
    94. ((Player) p).getInventory().addItem(book);
    95. }
    96. }
    97. //Join Lobby Nether
    98. @EventHandler
    99. public void onPlayerInteract(PlayerInteractEvent e){
    100. Player p = e.getPlayer();
    101. {
    102. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    103.  
    104. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    105.  
    106. e.setCancelled(true);
    107. Sign sign = (Sign) e.getClickedBlock().getState();
    108.  
    109. if(sign.getLine(0).equalsIgnoreCase("[Leave Lobby]"))
    110. {
    111.  
    112. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    113. e.getPlayer().teleport(l);
    114.  
    115.  
    116.  
    117.  
    118.  
    119. p.sendMessage((ChatColor.GREEN+"Joing Lobby"));
    120. }
    121.  
    122.  
    123. }
    124. }
    125.  
    126. //Leave Lobby
    127. @EventHandler
    128. public void onPlayerInteract1(PlayerInteractEvent e){
    129. Player p = e.getPlayer();
    130. {
    131. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    132.  
    133. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    134.  
    135. e.setCancelled(true);
    136. Sign sign = (Sign) e.getClickedBlock().getState();
    137.  
    138. if(sign.getLine(0).equalsIgnoreCase("[Leave Lobby]"))
    139. {
    140.  
    141. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    142. e.getPlayer().teleport(l);
    143.  
    144.  
    145. p.sendMessage((ChatColor.GREEN+"Leaving Lobby"));
    146. }
    147. }
    148. }
    149. //Kit Selector
    150. @EventHandler
    151. public void onPlayerInteract3(PlayerInteractEvent e){
    152.  
    153. {
    154. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    155.  
    156. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    157.  
    158. e.setCancelled(true);
    159. Sign sign = (Sign) e.getClickedBlock().getState();
    160.  
    161.  
    162. if(sign.getLine(0).equalsIgnoreCase("[Kit Selector]"))
    163. {
    164. }
    165. }
    166. }
    167. //Specate
    168. @EventHandler
    169. public void onPlayerInteract4(PlayerInteractEvent e){
    170. Player p = e.getPlayer();
    171. {
    172. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    173.  
    174. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    175.  
    176. e.setCancelled(true);
    177. Sign sign = (Sign) e.getClickedBlock().getState();
    178.  
    179. if(sign.getLine(0).equalsIgnoreCase("[Spectate]"))
    180. {
    181.  
    182. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    183. e.getPlayer().teleport(l);
    184.  
    185.  
    186. p.sendMessage((ChatColor.GREEN+"You are now spectating!"));
    187.  
    188.  
    189.  
    190. }
    191. }
    192. }
    193.  
    194.  
    195.  
    196.  
    197.  
    198.  
    199.  
    200. @Override
    201. public void onDisable(){
    202. PluginDescriptionFile pdfFile = this.getDescription();
    203. this.logger.info(pdfFile.getName() + " Has Been Disabled ");
    204. }
    205. @Override
    206. public void onEnable(){
    207. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    208. PluginManager pm = getServer().getPluginManager();
    209. pm.registerEvents(new Ctf(), this);
    210.  
    211.  
    212.  
    213. }
    214.  
    215. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    216. Player player = (Player) sender;
    217. //Kit Archer
    218. if (commandLabel.equalsIgnoreCase("archer")){
    219. player.getInventory().clear();
    220. ItemStack bow = new ItemStack(Material.BOW, 1);
    221. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    222. ItemStack arrow = new ItemStack(Material.ARROW, 128);
    223. ItemStack stonesword = new ItemStack(Material.STONE_SWORD, 1);
    224. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    225. ItemStack chainchestplate = new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1);
    226. ItemStack chainleggings = new ItemStack(Material.CHAINMAIL_LEGGINGS, 1);
    227. ItemStack chainboots = new ItemStack(Material.CHAINMAIL_BOOTS, 1);
    228. ItemStack chainhelmet = new ItemStack(Material.CHAINMAIL_HELMET, 1);
    229. PlayerInventory pi = player.getInventory();
    230. bow.addEnchantment(Enchantment.ARROW_DAMAGE, 2);
    231. pi.addItem(stonesword);
    232. pi.addItem(steak);
    233. pi.addItem(bow);
    234. pi.addItem(arrow);
    235. pi.addItem(compass);
    236. pi.setChestplate(chainchestplate);
    237. pi.setHelmet(chainhelmet);
    238. pi.setLeggings(chainleggings);
    239. pi.setBoots(chainboots);
    240. }else{
    241. //Kit Heavy
    242. if (commandLabel.equalsIgnoreCase("heavy")){
    243. player.getInventory().clear();
    244. ItemStack diamondsword = new ItemStack(Material.DIAMOND_SWORD, 1);
    245. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    246. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    247. ItemStack diamondchestplate = new ItemStack(Material.DIAMOND_CHESTPLATE, 1);
    248. ItemStack diamondleggings = new ItemStack(Material.DIAMOND_LEGGINGS, 1);
    249. ItemStack diamondboots = new ItemStack(Material.DIAMOND_BOOTS, 1);
    250. ItemStack diamondhelmet = new ItemStack(Material.DIAMOND_HELMET, 1);
    251. PlayerInventory pi = player.getInventory();
    252. pi.addItem(diamondsword);
    253. pi.addItem(steak);
    254. pi.addItem(compass);
    255. pi.setChestplate(diamondchestplate);
    256. pi.setHelmet(diamondhelmet);
    257. pi.setLeggings(diamondleggings);
    258. pi.setBoots(diamondboots);
    259. }else{
    260. //Kit Ninja
    261. if (commandLabel.equalsIgnoreCase("ninja")){
    262. player.getInventory().clear();
    263. ItemStack goldsword = new ItemStack(Material.GOLD_SWORD, 1);
    264. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    265. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    266. ItemStack egg = new ItemStack(Material.EGG, 10);
    267. goldsword.addEnchantment(Enchantment.DURABILITY, 3);
    268. goldsword.addEnchantment(Enchantment.DAMAGE_ALL, 5);
    269. PlayerInventory pi = player.getInventory();
    270. pi.addItem(goldsword);
    271. pi.addItem(steak);
    272. pi.addItem(egg);
    273. pi.addItem(compass);
    274. }
    275.  
    276. }
    277. }
    278. return false;
    279. }
    280. }
    281.  
     
  2. Offline

    EcMiner

    Code:java
    1. @EventHandler
    2. public void eggdamage(EntityDamageByEntityEvent event) {
    3. if(event.getEntityType() == EntityType.PLAYER && event.getDamager().getType() == EntityType.EGG) {
    4. Player player = (Player) event.getEntity();
    5. Projectile proj = (Projectile) event.getDamager();
    6. player.addPotionEffect(YOUR_POTION_EFFECT);
    7. }
    8. }
     
  3. Does not work
     
Thread Status:
Not open for further replies.

Share This Page