Solved Confiscator

Discussion in 'Plugin Development' started by cruz2000, Feb 16, 2014.

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

    cruz2000

    How would i make it when a player has a blaze rod in there hand and right clicks a player it will take what ever the player has in there hand. Like a confiscator please help.!

    1. Player1 has blaze rod
    2.Player1 right clicks Player2
    3.Blaze rods takes what Player2 has in there hand and gives it to player1.

    How would i code this ?
     
  2. Offline

    random_username

    cruz2000
    Use the PlayerInteractEntityEvent, and check if the right clicked entity is instance of player. Check if the player who clicked has the blaze rod in his hand. Check what the other player has in his hand, remove the item from his inventory, and add the same item to the player who clicked him.
     
    Acer_Mortem likes this.
  3. Offline

    cruz2000

    I need help lol all i got is this...

    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.player.PlayerInteractEvent;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class Main extends JavaPlugin{
    10.  
    11. @Override
    12. public void onEnable(){
    13. getLogger().info("Effects has been enable!");
    14. }
    15.  
    16. @Override
    17. public void onDisable(){
    18. getLogger().info("Effects has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onPlayerInteractEvent(PlayerInteractEvent event) {
    23. Player player = event.getPlayer();
    24. if (player.getItemInHand().getType() == Material.BLAZE_ROD) {
    25. }
    26. }
    27. }
    28.  

    anyone help me?

    Can you help me?

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

    Acer_Mortem

    cruz2000

    random_username provided plenty of information. Obviously, you are new to Bukkit. So, underneath your current if statement, put another if statement checking if the right clicked entity is an "instanceof" Player. From that point on, set "player"s item in hand to air.

    To help you learn more about Bukkit, I recommend looking up pogostickdev on youtube.
     
  5. Offline

    cruz2000

    Can you help me like give me some code.

    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.player.PlayerInteractEvent;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class Main extends JavaPlugin{
    10.  
    11. @Override
    12. public void onEnable(){
    13. getLogger().info("Effects has been enable!");
    14. }
    15.  
    16. @Override
    17. public void onDisable(){
    18. getLogger().info("Effects has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onPlayerInteractEvent(PlayerInteractEvent event) {
    23. Player player = event.getPlayer();
    24. if (player.getItemInHand().getType() == Material.BLAZE_ROD) {
    25. if(player.ClickType.RIGHT() instanceof Player){
    26. player.getItemInHand().setType(Material.AIR);
    27. }
    28. }
    29. }
    30. }
    31.  
     
  6. Offline

    xTigerRebornx

    cruz2000 You should be using this, not PlayerInteractEvent. Use the javadocs if you are confused on what to do
     
  7. Offline

    cruz2000

    -_- i need help i did it but now what?
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.player.PlayerInteractEntityEvent;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class Main extends JavaPlugin{
    10.  
    11. @Override
    12. public void onEnable(){
    13. getLogger().info("Effects has been enable!");
    14. }
    15.  
    16. @Override
    17. public void onDisable(){
    18. getLogger().info("Effects has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) {
    23. Player player = event.getPlayer();
    24. if (player.getItemInHand().getType() == Material.BLAZE_ROD) {
    25. if(player.() instanceof Player){
    26. player.getItemInHand().setType(Material.AIR);
    27. }
    28. }
    29. }
    30. }
    31.  
     
  8. Offline

    xTigerRebornx

    cruz2000 use event.getRightClicked() to get the Entity that the Player clicked, then check if the Entity is instanceof Player
     
  9. Offline

    random_username

    cruz2000
    Maybe something like this?
    Code:java
    1. @EventHandler
    2. public void onPlayerInteract(PlayerInteractEntityEvent event){
    3. Player player = event.getPlayer();
    4. Entity target = event.getRightClicked();
    5. if(target instanceof Player){
    6. Player targetPlayer = (Player) target;
    7. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    8. if(targetPlayer.getItemInHand() != null || targetPlayer.getItemInHand().getType() != Material.AIR){
    9. return;
    10. }
    11. ItemStack rod = player.getItemInHand();
    12. ItemStack i = targetPlayer.getItemInHand();
    13. targetPlayer.getInventory().remove(i);
    14. player.getInventory().remove(rod);
    15. player.getInventory().addItem(i);
    16. }
    17. }
    18. }
     
  10. Offline

    cruz2000

    Dosent work :(


    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.entity.Entity;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.player.PlayerInteractEntityEvent;
    8. import org.bukkit.inventory.ItemStack;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. public class Main extends JavaPlugin{
    12.  
    13. @Override
    14. public void onEnable(){
    15. getLogger().info("GuardStick has been enable!");
    16. }
    17.  
    18. @Override
    19. public void onDisable(){
    20. getLogger().info("GuardStick has been disabled!");
    21. }
    22.  
    23. @EventHandler
    24. public void onPlayerInteract(PlayerInteractEntityEvent event){
    25. Player player = event.getPlayer();
    26. Entity target = event.getRightClicked();
    27. if(target instanceof Player){
    28. Player targetPlayer = (Player) target;
    29. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    30. if(targetPlayer.getItemInHand() != null || targetPlayer.getItemInHand().getType() != Material.AIR){
    31. return;
    32. }
    33. ItemStack rod = player.getItemInHand();
    34. ItemStack i = targetPlayer.getItemInHand();
    35. targetPlayer.getInventory().remove(i);
    36. player.getInventory().remove(rod);
    37. player.getInventory().addItem(i);
    38. }
    39. }
    40. }
    41. }


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

    random_username

    You didn't implement Listener nor registered your events.
    Code:java
    1. public class Main extends JavaPlugin implements Listener{

    and
    Code:java
    1. public void onEnable(){
    2. getLogger().info("GuardStick has been enable!");
    3. Bukkit.getPluginManager().registerEvents(this, this);
    4. }
     
  12. Offline

    cruz2000

    Do i change anything in he this,this its still not working :(.
     
  13. Offline

    random_username

    Did you also make your calss implement Listener?
     
  14. Offline

    cruz2000

    No what do i put in there -_-.

    This is my main class:

    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. public class Main extends JavaPlugin implements Listener{
    14.  
    15. @Override
    16. public void onEnable(){
    17. getLogger().info("GuardStick has been enable!");
    18. Bukkit.getPluginManager().registerEvents(this, this);
    19. }
    20.  
    21. @Override
    22. public void onDisable(){
    23. getLogger().info("GuardStick has been disabled!");
    24. }
    25.  
    26. @EventHandler
    27. public void onPlayerInteract(PlayerInteractEntityEvent event){
    28. Player player = event.getPlayer();
    29. Entity target = event.getRightClicked();
    30. if(target instanceof Player){
    31. Player targetPlayer = (Player) target;
    32. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    33. if(targetPlayer.getItemInHand() != null || targetPlayer.getItemInHand().getType() != Material.AIR){
    34. return;
    35. }
    36. ItemStack rod = player.getItemInHand();
    37. ItemStack i = targetPlayer.getItemInHand();
    38. targetPlayer.getInventory().remove(i);
    39. player.getInventory().remove(rod);
    40. player.getInventory().addItem(i);
    41. }
    42. }
    43. }
    44. }


    My implment listener is empty
    !

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

    random_username

    You can try this:
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() != null || targetPlayer.getItemInHand().getType() != Material.AIR){
    36. return;
    37. }
    38. ItemStack rod = player.getItemInHand();
    39. ItemStack i = targetPlayer.getItemInHand();
    40. targetPlayer.getInventory().remove(i);
    41. player.getInventory().remove(rod);
    42. player.getInventory().addItem(i);
    43. }
    44. }
    45. }
    46. }
     
  16. Offline

    cruz2000

    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.event.Listener;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5.  
    6. public class ImplementListener extends JavaPlugin implements Listener{
    7. Bukkit.getPluginManager().registerEvents(this, this);
    8. }
    9. }
    10.  

    ..
     
  17. Offline

    random_username

    cruz2000
    Oh my god, I'm so dumb! I wrote != instead of ==! Just notcied after debugging a bit... Sorry... Try this:
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() == null || targetPlayer.getItemInHand().getType() != Material.AIR){
    36. return;
    37. }
    38. ItemStack rod = player.getItemInHand();
    39. ItemStack i = targetPlayer.getItemInHand();
    40. targetPlayer.getInventory().remove(i);
    41. player.getInventory().remove(rod);
    42. player.getInventory().addItem(i);
    43. }
    44. }
    45. }
    46. }
     
  18. Offline

    cruz2000

    Hey it works but when i right click the person it takes away my blaze rod rather than taking away the player i right clicked item.
     
  19. Offline

    random_username

    cruz2000
    I thought you wanted it that way. It does take the other person's item and adds it to you, but also takes away your rod. Here's the fix:
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() == null || targetPlayer.getItemInHand().getType() != Material.AIR){
    36. return;
    37. }
    38. ItemStack i = targetPlayer.getItemInHand();
    39. targetPlayer.getInventory().remove(i);
    40. player.getInventory().addItem(i);
    41. }
    42. }
    43. }
    44. }
     
  20. Offline

    cruz2000

    The other codes dont work this is the only one that works...

    but when i right click it takes my blaze rod and doesnt give me the item they are holding..

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

    random_username

    Try this one? I shouldn't take the blaze rod now.
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() == null || targetPlayer.getItemInHand().getType() != Material.AIR){
    36. return;
    37. }
    38. ItemStack i = targetPlayer.getItemInHand();
    39. targetPlayer.getInventory().remove(i);
    40. player.getInventory().addItem(i);
    41. }
    42. }
    43. }
    44. }
     
  22. Offline

    cruz2000

    Dosen't work :( what are we doing wrong.
     
  23. Offline

    random_username

    cruz2000
    Okay, I'm really really sorry, I think I got it this time. I had the same issue with a different check, about != and ==. It's late right now, and I'm a bit tired so that might be why I'm missing this... Anyway, try this!
    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() == null || targetPlayer.getItemInHand().getType() == Material.AIR){
    36. return;
    37. }
    38. ItemStack i = targetPlayer.getItemInHand();
    39. targetPlayer.getInventory().remove(i);
    40. player.getInventory().addItem(i);
    41. }
    42. }
    43. }
    44. }

    Sorry! :)
     
  24. Offline

    cruz2000

    WORKS OMG THANX SO MUCH! I ALSO FOUND OUT HOW TO MAKE IT SO IT CAN ONLY TAKE CERTAIN THINGS :D ANYWAYS THANX sorry for bothering so much!
     
  25. Offline

    random_username

    cruz2000
    No problem! Sorry for all the trouble though!
     
  26. Offline

    cruz2000

    Its ok hey one more question how can i set some sort of perms. Becuase everyone can use it and thats not good lol!:p xD !
     
  27. Offline

    random_username

    Who would you want to have the permission? The person who clicks, or the target?
     
  28. Offline

    cruz2000

    For the person who right clicks.
     
  29. Offline

    random_username


    Code:java
    1. package me.cruz2000;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Entity;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEntityEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. //Make the class implement Listener, as you see below
    14. public class Main extends JavaPlugin implements Listener{
    15.  
    16. @Override
    17. public void onEnable(){
    18. getLogger().info("GuardStick has been enable!");
    19. //Register events as below.
    20. Bukkit.getPluginManager().registerEvents(this, this);
    21. }
    22.  
    23. @Override
    24. public void onDisable(){
    25. getLogger().info("GuardStick has been disabled!");
    26. }
    27.  
    28. @EventHandler
    29. public void onPlayerInteract(PlayerInteractEntityEvent event){
    30. Player player = event.getPlayer();
    31. Entity target = event.getRightClicked();
    32. if(target instanceof Player){
    33. Player targetPlayer = (Player) target;
    34. if(player.getItemInHand().getType() == Material.BLAZE_ROD){
    35. if(targetPlayer.getItemInHand() == null || targetPlayer.getItemInHand().getType() == Material.AIR || !player.hasPermission("some.permission")){
    36. return;
    37. }
    38. ItemStack i = targetPlayer.getItemInHand();
    39. targetPlayer.getInventory().remove(i);
    40. player.getInventory().addItem(i);
    41. }
    42. }
    43. }
    44. }
     
Thread Status:
Not open for further replies.

Share This Page