Support Backwards compatibility #291


  • Enhancment
  • Replied
Open
Assigned to talocyrcuvas
  • Kalashnikov79 created this issue Oct 1, 2014

    A user of http://dev.bukkit.org/bukkit-plugins/arenactf/ provided this error log:
    https://www.dropbox.com/s/8i9vjzhknudbv03/ArenaCTF_CombatTag_Crash.txt?dl=0

    Which I believe can be fixed by overloading the method isInCombat():

    com.trc202.CombatTag.CombatTag.isInCombat(String);
    com.trc202.CombatTag.CombatTag.isInCombat(UUID);

    UUID is used for persistency between server resets. It's used for saving player data.

    Is this plugin saving player data ? If not, I don't believe UUID is necessary. A String parameter will be sufficient. Since if a player went to Mojang and changed their name, they would have to log out and log back in... in order to display their new name.

  • Kalashnikov79 added the tags New Enhancment Oct 1, 2014
  • TaloCyrcuvas posted a comment Oct 1, 2014

    If you look at the page here: http://dev.bukkit.org/bukkit-plugins/combat-tag/pages/using-the-api/ you will see that isInCombat accepts a string or player, not a UUID. In any case, the issue is from the creator's import path for the api which is, in his plugin com.trc202.CombatTag.CombatTagApi. It should be com.trc202.CombatTagApi.CombatTagApi

    To answer your UUID comment. I use UUIDs because they are preferable to player names in any case. Player names are fine and dandy, but when your plugin has to last through players logging out and back in over a long period of time, then UUIDs are almost required. UUID is used for persistence when players are logging out and back in. It allows me to keep track of who is online or offline and still tagged. If a player logs out tagged, changes their name, and logs back in, if I were only tracking player names then I'd say they were not tagged upon their login. That is why I use UUIDs.

  • TaloCyrcuvas removed a tag New Oct 1, 2014
  • TaloCyrcuvas added a tag Waiting Oct 1, 2014
  • Kalashnikov79 posted a comment Oct 10, 2014

    @cheddar262: Go

    http://dev.bukkit.org/bukkit-plugins/combat-tag/files/56-combat-tag-v6-1-0-1-7-2/

    ArenaCTF was compiled against an older version of ComatTag: versions 6.1.0 or older have a method

    com.trc202.CombatTag.CombatTag.isInCombat(String playerName);

    This method was removed, which breaks ArenaCTF (and maybe other plugins too). I'm just asking that CombatTag support backwards compatibility with other, older plugins... Some of which are abandoned plugins (like ArenaCTF: The author, Alkarin, no longer develops bukkit plugins, or updates his existing ones). Eventho some of these plugins are abandoned, a lot of people would still like to use them.

    So, what i'm suggesting is adding an overloaded method:

    package com.trc202.CombatTag;
    
    public class CombatTag {
    
        // ...
    
    public boolean isInCombat(String playerName) {
    
        Player player = Bukkit.getPlayer(playerName);
        isInCombat(player.getUniqueID());
    
    }
    

    What do you think ? Overloaded method that supports older plugins ? I'm not the author of ArenaCTF, so I can't update the imports.


    Edited Oct 10, 2014
  • Kalashnikov79 removed a tag Waiting Oct 10, 2014
  • Kalashnikov79 added a tag Replied Oct 10, 2014

To post a comment, please login or register a new account.