DisguiseCraft Relog

Discussion in 'Archived: Plugin Requests' started by Tama63, Sep 6, 2012.

  1. Offline

    Tama63

    Suggested name: DisguiseCraft- Relog Disguise

    What I want: When DisguiseCraft currently removes a disguise on relog, I would like it to keep the disguise for a minigame as well as any options such as "no pickup".I have heard this is pretty simple to do. the data should be stored in a flat file.

    Ideas for commands: No commands needed for this plugin.

    Ideas for permissions: disguisecraft.disguiseonrelog

    When I'd like it by: ASAP

    Also if a config could be added on whether to keep the effects such as no pick up.

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

    np98765

    So you want someone to recreate DisguiseCraft just so you can have the no-undisguise-on-reload option?

    Have you tried asking the developers to add a few simple lines that will do this?

     
    JjPwN1 likes this.
  3. Offline

    Doggyroc

    DisguiseCraft has an API that allows this if i am not mistaken.
    EDIT: The API has this feature.

    Working on it now.
     
    WarmakerT likes this.
  4. Offline

    np98765

    So it seems like they do... I was under the impression that only MobDisguise had an API -- Not sure why, given that at one point I used FleetingDisguises, which utilizes the API.

    Good luck. :)
     
  5. Offline

    WarmakerT

    Since Doggyroc started this 21 minutes ago and still didn't finish it, I bet he's watching Youtube videos(admit it, who doesn't get lured into Youtube and get stuck there for eternity '-'), I'll do it :p

    Edit.: Done!

    Source:
    Code:java
    1.  
    2. package me.warmakert.disguiserelog;
    3.  
    4. import java.util.HashMap;
    5. import java.util.Map;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerJoinEvent;
    10. import org.bukkit.event.player.PlayerQuitEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12. import pgDev.bukkit.DisguiseCraft.Disguise;
    13. import pgDev.bukkit.DisguiseCraft.DisguiseCraft;
    14. import pgDev.bukkit.DisguiseCraft.api.DisguiseCraftAPI;
    15.  
    16. public class DisguiseRelog extends JavaPlugin implements Listener {
    17.  
    18. DisguiseCraftAPI dcAPI = DisguiseCraft.getAPI();
    19. Map<Player, Disguise> a = new HashMap<Player, Disguise>();
    20.  
    21. @Override
    22. public void onEnable(){
    23. this.getServer().getPluginManager().registerEvents(this, this);
    24. }
    25.  
    26. @EventHandler
    27. public void onPlayerQuit(PlayerQuitEvent event){
    28. a.put(event.getPlayer(), dcAPI.getDisguise(event.getPlayer()));
    29. }
    30.  
    31. @EventHandler
    32. public void onPlayerJoin(PlayerJoinEvent event){
    33. dcAPI.disguisePlayer(event.getPlayer(), a.get(event.getPlayer()));
    34. }
    35.  
    36. }
    37.  


    Download: https://dl.dropbox.com/u/81824464/DisguiseRelog.jar
     
  6. Offline

    Doggyroc

    No! I am finished. I had to eat dinner.
     
  7. Offline

    WarmakerT

    Oops xD
     
  8. Offline

    Doggyroc

    What? DisguiseCraft removes there disguise before the PlayerQuitEvent triggers, Anyone know a substitute?

    Screw it. @WarmakerT You can make it, Here is where i left off,

    Code:
    package ca.docilecraft;
     
    import java.util.HashMap;
     
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
     
    import pgDev.bukkit.DisguiseCraft.Disguise;
    import pgDev.bukkit.DisguiseCraft.DisguiseCraft;
    import pgDev.bukkit.DisguiseCraft.Disguise.MobType;
    import pgDev.bukkit.DisguiseCraft.api.DisguiseCraftAPI;
     
    public class DCRelog extends JavaPlugin implements Listener {
       
        HashMap<Player, MobType> list = new HashMap<Player, MobType>();
       
        public void onEnable(){
            PluginManager pM = getServer().getPluginManager();
            if(pM.isPluginEnabled("DisguiseCraft")){
                pM.registerEvents(this, this);
                log(0, "Enabled!");
                setupDisguiseCraft();
            }else{
                log(2, "This plugin needs DisguiseCraft to run!");
                log(2, "You can download this plugin here:");
                log(2, "http://dev.bukkit.org/server-mods/disguisecraft/");
                pM.disablePlugin(this);
            }
        }
       
        @EventHandler
        public void onPlayerLeave(PlayerQuitEvent e){
            Player p = e.getPlayer();
            list.put(p, dc.getDisguise(p).mob);
            System.out.print(list.get(p));
        }
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            if(list.get(p) != null){
                Disguise d = new Disguise(dc.newEntityID(), list.get(p));
                dc.disguisePlayer(p, d);
                e.getPlayer().sendMessage("You are a "+list.get(p));
            }
        }
       
        DisguiseCraftAPI dc;
        public void setupDisguiseCraft() {
            dc = DisguiseCraft.getAPI();
        }
       
        public void log(int level, String out){
            if(level == 0) getLogger().info(out);
            if(level == 1) getLogger().warning(out);
            if(level == 2) getLogger().severe(out);
        }
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  9. Offline

    WarmakerT

    I already did :p Like 30 minutes ago or so.
     
  10. Offline

    Doggyroc

    Like, you finished?
    If so, may i ask how you got the disguise not to return null?
     
  11. Offline

    WarmakerT

    Yeah, look up. I posted the source there.
     
  12. Offline

    Doggyroc

    Didn't see that :|
     
  13. Offline

    Devil Boy

    ROFL gosh.
    Of course I would find this thread AFTER I add disguise on relog to DisguiseCraft version 3.4

    BTW, I'm fairly sure you would've wanted your PlayerQuitEvent to be handled at priority level low. It would've made it so that you could store the disguise before DisguiseCraft removed it from the database.
     
  14. Offline

    WarmakerT

    I don't test my projects XD
     

Share This Page