add somethings on the plugin please help me

Discussion in 'Archived: Plugin Requests' started by frankshtin, Mar 20, 2014.

  1. Offline

    frankshtin

    Code:
    package RightClickDuel;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.logging.Logger;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
     
     
    public class RightClickDuel extends JavaPlugin implements Listener {
    public final Logger logger = Logger.getLogger("Minecraft");
    public static RightClickDuel plugin;
     
     
     
     
    @Override
    public void onEnable(){
    logger.info("RightClickDuel Enabled");
    PluginManager pm = this.getServer().getPluginManager();
    pm.registerEvents(this, this);
     
     
     
    }
    @Override
    public void onDisable(){
    logger.info("rightClickDuel Disabled");
    }
     
     
    ArrayList<Player> clickedlist = new ArrayList<Player>();
    ArrayList<Player> duellist = new ArrayList<Player>();
    public static HashMap<Player, Player> playerlist = new HashMap<Player, Player>();
    static Boolean duelstart = false;
    static Boolean deathmessage = false;
    static Player hit;
    static Player hitter;
    static Player playerclicked;
    static Player playerclicking;
    static int countdown;
    static int counter = 0;
     
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, final String speak, String[] args){
     
     
     
    if(speak.equalsIgnoreCase("cd") || (speak.equalsIgnoreCase("clickduel"))){
     
    switch (args.length){
     
    case 0:
    sender.sendMessage("Invalid command, type /cd commands for a list of commands");
    break;
     
     
    case 1:
    if(args[0].equalsIgnoreCase("commands")){
    sender.sendMessage(ChatColor.GOLD + "========" + ChatColor.RED + "RightClickDuel" + ChatColor.GOLD + "========");
    sender.sendMessage(ChatColor.GOLD + "/cd help - Shows ClickDuel commands");
    sender.sendMessage(ChatColor.GOLD + "/cd info - Shows the current version you are running");
    sender.sendMessage(ChatColor.GOLD + "/cd duel list - Shows the players currently dueling");
     
     
    }
     
    if(args[0].equalsIgnoreCase("info") || args[0].equalsIgnoreCase("information")){
    sender.sendMessage(ChatColor.GOLD + "ClickDuel Version - 1.0");
    }
     
    if(args[0].equalsIgnoreCase("help")){
    sender.sendMessage(ChatColor.GOLD + "========" + ChatColor.RED + "Instructions" + ChatColor.GOLD + "========");
    sender.sendMessage(ChatColor.GOLD + "Right click another player to request a duel");
    sender.sendMessage(ChatColor.GOLD + "Right click the same player back to accept");
    sender.sendMessage(ChatColor.GOLD + "PvP will be enabled between those two people, items can be lost");
    sender.sendMessage(ChatColor.GOLD + "Winner of the duel gets their name announced, PvP is disabled between those two people");
    }
     
     
    break;
     
     
    case 2:
    if(args[0].equalsIgnoreCase("duel")){
    if(args[1].equalsIgnoreCase("list")){
    for (Player name: playerlist.keySet()){
     
    String key = name.getName();
    String value = playerlist.get(name).getName();
    System.out.println(ChatColor.RED + key + ChatColor.GOLD +" vs " + ChatColor.RED + value);
     
     
    }
    }
    }
    break;
     
     
     
    }
     
     
    }
     
    return true;
    }
     
    @EventHandler(priority = EventPriority.NORMAL)
    public void onPlayerInteract(PlayerInteractEntityEvent event){
     
    if(event.getRightClicked() instanceof Player){
    playerclicked = (Player) event.getRightClicked();
    playerclicking = event.getPlayer();
    clickedlist.add(playerclicked);
    if(duellist.contains(playerclicking) == false){
    if(duellist.contains(playerclicked) == false){
    if(clickedlist.contains(playerclicking)){
    playerclicked.sendMessage(ChatColor.RED + playerclicking.getName() + ChatColor.GOLD + " accepted your request!");
    playerclicking.sendMessage(ChatColor.GOLD + "You accepted " + ChatColor.RED + playerclicked.getName() + ChatColor.GOLD + "'s request!");
    playerclicked.sendMessage(ChatColor.RED + "The duel is starting in 10 seconds");
    playerclicking.sendMessage(ChatColor.RED + "The duel is starting in 10 seconds");
    timer();
     
     
    }else{
    playerclicked.sendMessage(ChatColor.RED + playerclicking.getName() + ChatColor.GOLD +" wants to duel with you");
    playerclicking.sendMessage(ChatColor.GOLD + "You sent " + ChatColor.RED +playerclicked.getName() + ChatColor.GOLD +" a duel request");
    }
    }else{
    playerclicking.sendMessage(ChatColor.RED + "You can't duel " + playerclicked.getName() + " while they are already in a duel");
    }
    }else{
    playerclicking.sendMessage(ChatColor.RED + "You're already in a duel with someone else");
    }
    }
    }
     
    @EventHandler(priority = EventPriority.NORMAL)
    public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
     
     
    if(event.getEntity() instanceof Player) {
    if(event.getDamager() instanceof Player) {
    hitter = (Player) event.getDamager();
    hit = (Player) event.getEntity();
     
    if(duellist.contains(hitter) && duellist.contains(hit) && duelstart == true){
     
     
     
     
    }else{
    event.setCancelled(true);
    }
    }else{
    event.setCancelled(false);
    }
    }else{
    event.setCancelled(false);
    }
     
    }
     
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
    if(event.getEntity() instanceof Player){
    Player dead = (Player) event.getEntity();
    if(dead == hit && duellist.contains(dead)){
    event.setDeathMessage(ChatColor.GOLD + hitter.getName() + " defeated " + hit.getName() + " in a duel");
    duellist.remove(hit);
    duellist.remove(hitter);
    playerlist.remove(playerclicked);
    duelstart = false;
    }
    }
     
     
    }
     
    @EventHandler(priority = EventPriority.HIGHEST)
    public void onCommand(PlayerCommandPreprocessEvent event){
    Player p = event.getPlayer();
    if(duellist.contains(p)){
    event.getPlayer().sendMessage(ChatColor.RED + "You're in a duel, commands are disabled!");
    event.setCancelled(true);
    }else{
     
    }
     
    }
     
    public void timer(){
    countdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
    public void run(){
    playerclicked.sendMessage(ChatColor.RED + "Fight!");
    playerclicking.sendMessage(ChatColor.RED + "Fight!");
    playerclicked.setGameMode(GameMode.SURVIVAL);
    playerclicking.setGameMode(GameMode.SURVIVAL);
    clickedlist.remove(playerclicked);
    clickedlist.remove(playerclicking);
    duellist.add(playerclicked);
    duellist.add(playerclicking);
    playerlist.put(playerclicked, playerclicking);
    duelstart = true;
    Bukkit.getScheduler().cancelTask(countdown);
     
    }
     
    }, 200,200);
    }
     
    

    guys can u add somthings on it

    1-when someone die nothing will happened except the server write for 2 player (name won the match!)
    2- now the plugin must click rightclick ,, i want him click shift+rightclick
    3- and they can't make spam
    4- they can't duel more then 1 man
    5- and remove this please ^^" http://prntscr.com/32xfbu
    6- every one will see name on the another player &b
    7-in all of the world no pvp except if they duel

    8-after someone die the duel finish automatic
     
  2. Offline

    frankshtin

  3. Offline

    jthort

    frankshtin I made this a while ago, i'm almost sure it still works

    Features:
    - right click someone to duel, the player has the option to right click back to accept
    - 10 second countdown until the duel between the two players starts
    - includes a death message
    - Sets the dueling players gm to 0

    Note: The only problem before I had was if a lot of people duel request at the same time, it's gets messed up? I can't remember if I fixed it or not..

    anyway here you go

    https://www.dropbox.com/s/4a9frlxrr5hkof6/RightClickDuel.jar
     
  4. Offline

    frankshtin

    can u add somthings ?
     
  5. Offline

    jthort

    frankshtin Like? I would have added what your original post was but I can't understand it
     
  6. Offline

    frankshtin

    i will say it he most click shift+rightclick not just right click

    and they can't make spam

    and remove this please ^^"
    http://prntscr.com/32xfbu

    and how i can make the world no pvp except if the duel ??

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

    jthort

    frankshtin Alright i'm having trouble understanding you.. either way I'm not going to put in the time to fix this, sorry. I'm going to post the code below, anyone can feel free to fix it, edit, or change, or claim as your own I could care less. Good luck with the project and hope it turns out for the best.

    Code:java
    1. package RightClickDuel;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.HashMap;
    5. import java.util.logging.Logger;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.GameMode;
    10. import org.bukkit.command.Command;
    11. import org.bukkit.command.CommandSender;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.event.EventHandler;
    14. import org.bukkit.event.EventPriority;
    15. import org.bukkit.event.Listener;
    16. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    17. import org.bukkit.event.entity.PlayerDeathEvent;
    18. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    19. import org.bukkit.event.player.PlayerInteractEntityEvent;
    20. import org.bukkit.plugin.PluginManager;
    21. import org.bukkit.plugin.java.JavaPlugin;
    22.  
    23.  
    24. public class RightClickDuel extends JavaPlugin implements Listener {
    25. public final Logger logger = Logger.getLogger("Minecraft");
    26. public static RightClickDuel plugin;
    27.  
    28.  
    29.  
    30.  
    31. @Override
    32. public void onEnable(){
    33. logger.info("RightClickDuel Enabled");
    34. PluginManager pm = this.getServer().getPluginManager();
    35. pm.registerEvents(this, this);
    36.  
    37.  
    38.  
    39. }
    40. @Override
    41. public void onDisable(){
    42. logger.info("rightClickDuel Disabled");
    43. }
    44.  
    45.  
    46. ArrayList<Player> clickedlist = new ArrayList<Player>();
    47. ArrayList<Player> duellist = new ArrayList<Player>();
    48. public static HashMap<Player, Player> playerlist = new HashMap<Player, Player>();
    49. static Boolean duelstart = false;
    50. static Boolean deathmessage = false;
    51. static Player hit;
    52. static Player hitter;
    53. static Player playerclicked;
    54. static Player playerclicking;
    55. static int countdown;
    56. static int counter = 0;
    57.  
    58. @Override
    59. public boolean onCommand(CommandSender sender, Command cmd, final String speak, String[] args){
    60.  
    61.  
    62.  
    63. if(speak.equalsIgnoreCase("cd") || (speak.equalsIgnoreCase("clickduel"))){
    64.  
    65. switch (args.length){
    66.  
    67. case 0:
    68. sender.sendMessage("Invalid command, type /cd commands for a list of commands");
    69. break;
    70.  
    71.  
    72. case 1:
    73. if(args[0].equalsIgnoreCase("commands")){
    74. sender.sendMessage(ChatColor.GOLD + "========" + ChatColor.RED + "RightClickDuel" + ChatColor.GOLD + "========");
    75. sender.sendMessage(ChatColor.GOLD + "/cd help - Shows ClickDuel commands");
    76. sender.sendMessage(ChatColor.GOLD + "/cd info - Shows the current version you are running");
    77. sender.sendMessage(ChatColor.GOLD + "/cd duel list - Shows the players currently dueling");
    78.  
    79.  
    80. }
    81.  
    82. if(args[0].equalsIgnoreCase("info") || args[0].equalsIgnoreCase("information")){
    83. sender.sendMessage(ChatColor.GOLD + "ClickDuel Version - 1.0");
    84. }
    85.  
    86. if(args[0].equalsIgnoreCase("help")){
    87. sender.sendMessage(ChatColor.GOLD + "========" + ChatColor.RED + "Instructions" + ChatColor.GOLD + "========");
    88. sender.sendMessage(ChatColor.GOLD + "Right click another player to request a duel");
    89. sender.sendMessage(ChatColor.GOLD + "Right click the same player back to accept");
    90. sender.sendMessage(ChatColor.GOLD + "PvP will be enabled between those two people, items can be lost");
    91. sender.sendMessage(ChatColor.GOLD + "Winner of the duel gets their name announced, PvP is disabled between those two people");
    92. }
    93.  
    94.  
    95. break;
    96.  
    97.  
    98. case 2:
    99. if(args[0].equalsIgnoreCase("duel")){
    100. if(args[1].equalsIgnoreCase("list")){
    101. for (Player name: playerlist.keySet()){
    102.  
    103. String key = name.getName();
    104. String value = playerlist.get(name).getName();
    105. System.out.println(ChatColor.RED + key + ChatColor.GOLD +" vs " + ChatColor.RED + value);
    106.  
    107.  
    108. }
    109. }
    110. }
    111. break;
    112.  
    113.  
    114.  
    115. }
    116.  
    117.  
    118. }
    119.  
    120. return true;
    121. }
    122.  
    123. @EventHandler(priority = EventPriority.NORMAL)
    124. public void onPlayerInteract(PlayerInteractEntityEvent event){
    125.  
    126. if(event.getRightClicked() instanceof Player){
    127. playerclicked = (Player) event.getRightClicked();
    128. playerclicking = event.getPlayer();
    129. clickedlist.add(playerclicked);
    130. if(duellist.contains(playerclicking) == false){
    131. if(duellist.contains(playerclicked) == false){
    132. if(clickedlist.contains(playerclicking)){
    133. playerclicked.sendMessage(ChatColor.RED + playerclicking.getName() + ChatColor.GOLD + " accepted your request!");
    134. playerclicking.sendMessage(ChatColor.GOLD + "You accepted " + ChatColor.RED + playerclicked.getName() + ChatColor.GOLD + "'s request!");
    135. playerclicked.sendMessage(ChatColor.RED + "The duel is starting in 10 seconds");
    136. playerclicking.sendMessage(ChatColor.RED + "The duel is starting in 10 seconds");
    137. timer();
    138.  
    139.  
    140. }else{
    141. playerclicked.sendMessage(ChatColor.RED + playerclicking.getName() + ChatColor.GOLD +" wants to duel with you");
    142. playerclicking.sendMessage(ChatColor.GOLD + "You sent " + ChatColor.RED +playerclicked.getName() + ChatColor.GOLD +" a duel request");
    143. }
    144. }else{
    145. playerclicking.sendMessage(ChatColor.RED + "You can't duel " + playerclicked.getName() + " while they are already in a duel");
    146. }
    147. }else{
    148. playerclicking.sendMessage(ChatColor.RED + "You're already in a duel with someone else");
    149. }
    150. }
    151. }
    152.  
    153. @EventHandler(priority = EventPriority.NORMAL)
    154. public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
    155.  
    156.  
    157. if(event.getEntity() instanceof Player) {
    158. if(event.getDamager() instanceof Player) {
    159. hitter = (Player) event.getDamager();
    160. hit = (Player) event.getEntity();
    161.  
    162. if(duellist.contains(hitter) && duellist.contains(hit) && duelstart == true){
    163.  
    164.  
    165.  
    166.  
    167. }else{
    168. event.setCancelled(true);
    169. }
    170. }else{
    171. event.setCancelled(false);
    172. }
    173. }else{
    174. event.setCancelled(false);
    175. }
    176.  
    177. }
    178.  
    179. @EventHandler
    180. public void onPlayerDeath(PlayerDeathEvent event) {
    181. if(event.getEntity() instanceof Player){
    182. Player dead = (Player) event.getEntity();
    183. if(dead == hit && duellist.contains(dead)){
    184. event.setDeathMessage(ChatColor.GOLD + hitter.getName() + " defeated " + hit.getName() + " in a duel");
    185. duellist.remove(hit);
    186. duellist.remove(hitter);
    187. playerlist.remove(playerclicked);
    188. duelstart = false;
    189. }
    190. }
    191.  
    192.  
    193. }
    194.  
    195. @EventHandler(priority = EventPriority.HIGHEST)
    196. public void onCommand(PlayerCommandPreprocessEvent event){
    197. Player p = event.getPlayer();
    198. if(duellist.contains(p)){
    199. event.getPlayer().sendMessage(ChatColor.RED + "You're in a duel, commands are disabled!");
    200. event.setCancelled(true);
    201. }else{
    202.  
    203. }
    204.  
    205. }
    206.  
    207. public void timer(){
    208. countdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
    209. public void run(){
    210. playerclicked.sendMessage(ChatColor.RED + "Fight!");
    211. playerclicking.sendMessage(ChatColor.RED + "Fight!");
    212. playerclicked.setGameMode(GameMode.SURVIVAL);
    213. playerclicking.setGameMode(GameMode.SURVIVAL);
    214. clickedlist.remove(playerclicked);
    215. clickedlist.remove(playerclicking);
    216. duellist.add(playerclicked);
    217. duellist.add(playerclicking);
    218. playerlist.put(playerclicked, playerclicking);
    219. duelstart = true;
    220. Bukkit.getScheduler().cancelTask(countdown);
    221.  
    222. }
    223.  
    224. }, 200,200);
    225. }
    226.  
    227.  


    And it already just enables the pvp between those two players. Or should....
     
  8. Offline

    frankshtin

    thank u ^^

    guys can u add somthings on it

    1-when someone die nothing will happened except the server write for 2 player (name won the match!)
    2- now the plugin must click rightclick ,, i want him click shift+rightclick
    3-
    and they can't make spam
    4- they can't duel more then 1 man
    5-
    and remove this please ^^" http://prntscr.com/32xfbu
    6- every
    one will see name on the another player &b
    7-in all of the world no pvp except if they duel

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

    frankshtin

  10. Offline

    KingKillerCZ

    i will fix all this and send the plugin to you
     
  11. Offline

    frankshtin

Share This Page