Plugin request - Survival Border

Discussion in 'Programming' started by TimoWagenvoort, Aug 14, 2018.

Thread Status:
Not open for further replies.
  1. Hi guys,

    Me and my friends want to start a new survival server in 1.13. We want to have a border that expands when someone gets an advancement or kills a certain amount of mobs, however the border reduces when someone dies.

    Can someone make this? Can you make it so I can change the amount of blocks it expands and the amount of mob kills?

    Thanks in advance,
    ~Timo
     
  2. joehot200

    Supporter

    This would be easy to make if you wanted you the same border for all players. Harder to make it you want a different border for each player.
     
    • Like Like x 1
  3. We do want the same border for all the players. Can you make it for me? :D
     
  4. In this case you can use the command "worldborder" and ask the console to enlarge or not.
    Can you tell me the values you want?
     
    • Like Like x 1
  5. We want the border to expand when:
    - Killed 10 zombies/skeletons/etc. (1 block bigger)
    - Getting an advancement (25 blocks bigger)

    We want it to reduce in size when:
    - A player dies (10 blocks)

    We want it to be automatic, so we don't have to do the commands by ourselves


    (Size of the border when we start the world needs to be around 10x10 blocks)
     
    #5 TimoWagenvoort, Aug 14, 2018
    Last edited: Aug 14, 2018
  6. Can you send me a private message with the complete list of monsters, and all the details?
     
  7. Yes, I'll send it to you in a few minutes
     
  8. Tau

    Tau

    Hope this is what you wanted, Have fun!
    You can set the amount of increments in the config.
    https://mega.nz/#!p0t3QLLL!bi-DKqA--7tcV3E5Ndho96iwrEniII84poNirPgEeCc

    NOTE:
    • This comes with no warranty, Please backup your server first.
    • By default, worlds enabled is 'world', 'world the end', 'world_nether'
    • In-order for this to work, You need to /worldborder set <Size> in the worlds you enabled in the config. Or it will start at 60MIL
    If you wish to compile this yourself, Or edit it, Feel free to, Just don't change the string in 'plugin.yml' regarding the author, or claim it as your own, And link to my spigot profile page if distributing it or it's code.

    Code (Java):
    package spigot.tau.ExpandingBorder;

    import java.util.ArrayList;
    import java.util.List;

    import org.bukkit.Bukkit;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.ConfigurationSection;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerAdvancementDoneEvent;
    import org.bukkit.event.player.PlayerStatisticIncrementEvent;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main extends JavaPlugin implements Listener {
     
        List<World> worlds = new ArrayList<World>();
     
        double border_minsize = 64;
     
        double border_ex_mobKill = 0.5;
        double border_ex_Advance = 5;
     
        double border_su_Death;
     
        public void onEnable() {
            this.saveDefaultConfig();
            if (this.getConfig().getInt("Config Version") == 1) {
                configLoad();
            } else {
                System.out.println("Config is outdated/for newer version for ExpandingBorder, Plugin disabled.");
                return;
            }
            Bukkit.getPluginManager().registerEvents(this, this);
        }
     
        public void configLoad() {
            FileConfiguration f = this.getConfig();
            for (String w : f.getStringList("Enabled Worlds")) {
                if (Bukkit.getServer().getWorld(w) != null) {
                    worlds.add(Bukkit.getWorld(w));
                }
            }    
       
            border_minsize = f.getDouble("Minimum Size")*2;
       
            ConfigurationSection consec = f.getConfigurationSection("EXPANDS");
            border_ex_mobKill = consec.getDouble("MobKill")*2;
            border_ex_Advance = consec.getDouble("Advancement")*2;
       
       
            consec = f.getConfigurationSection("CONTRACTS");
            border_su_Death = 0-consec.getDouble("Death")*2;
        }
     
        public void onDisable() {

        }
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

            return true;
        }
     
     
        @EventHandler()
        public void onStatInc(PlayerStatisticIncrementEvent e) {
            switch (e.getStatistic()) {
            case DEATHS:
                incrementPlayer(e.getPlayer(), border_su_Death);
                break;
            case MOB_KILLS:
                incrementPlayer(e.getPlayer(), border_ex_mobKill);
                break;
            default:
                break;
       
            }
        }
     
        @EventHandler()
        public void onAdvance(PlayerAdvancementDoneEvent e) {
            incrementPlayer(e.getPlayer(), border_ex_Advance);
        }
     
        public void incrementPlayer(Player p, double border) {
            for (World w : worlds) {
                double s = w.getWorldBorder().getSize() + (border);
                if (s > border_minsize) {
                    if (s <= 60000000) {
                        w.getWorldBorder().setSize(s);
                    }
                } else {
                    w.getWorldBorder().setSize(border_minsize);
                }
            }

        }
     
    }
     
     
    • Agree Agree x 1
    • Winner Winner x 1
  9. Thanks! :D
    I'll take a look at it.
     
  10. I've sent all the details to you. :D
     
  11. Hey Guys, The plugin Tau mad is great, but there are still some things I want implemented in the plugin. I was hoping someone could help :D.

    These are my ideas to add into the plugin:
    - Border needs to be 5x5 blocks when we start.
    - It takes time for the border to expand, 1 block expansion per second.
    - A title in screen wich says if the border is going to expand/contract and the amount of blocks.

    **The border needs to contract when:
    - A player dies (25 blocks)
    - It can't get smaller than 25x25 blocks.

    **The border needs to expand when:
    - A player killed a certain amount of mobs:
    - Passive mobs = 1 block per 200 killed
    - Neutral mobs = 1 block per 100 killed
    - Hostile mobs = 1 block per 50 killed
    - Boss mobs = 10 blocks per 1 killed
    (Here is a list with all the mobs sorted in the groups: https://minecraft.gamepedia.com/Mob#List_of_mobs)
    - A player gets an advancement:
    Here's a list of the advancements ordered into 4 groups:
    There are 5 different advancements tabs, I've sorted all of them.
    No expansion:
    - Minecraft
    - Nether
    - The End
    - Adventure
    - Husbandry

    Easy (2 blocks expansion):
    **Minecraft advancements:
    - Stone Age
    - Getting an Upgrade
    - Acquire Hardware
    - Isn't It Iron Pick
    - Not Today, Thank You
    - Hot Stuff
    - Suit Up
    - Not Today, Thank You
    - Ice Bucket Challenge
    - Diamonds!
    - We Need to Go Deeper

    **Nether advancements:
    - Into Fire
    - Local Brewery

    **The End advancements:
    - The Next Generation
    - Remote Gateway
    - You Need a Mint
    - The City at the End of the Game

    **Adventure advancements:
    - Monster Hunter
    - Sweet dreams
    - What a Deal!
    - A Throwaway Joke
    - Take Aim
    - Hired Help

    **Husbandry:
    - The Parrots and the Bats
    - Best Friends Forever
    - A Seedy Place
    - Fishy Buisiness

    Medium (10 blocks expansion):
    **Minecraft advancements:
    - Cover Me With Diamonds
    - Enchanter
    - Zombie Doctor
    - Eye Spy

    **Nether advancements:
    - Subspace Bubble
    - A Terrible Fortress
    - Spooky Scary Skeleton
    - Withering Heights
    - Bring Home the Beacon

    **The End advancements:
    - Free the End
    - The End... Again...

    **Adventure advancements:
    - Monsters Hunted
    - Postmortal

    **Husbandry:
    - Tactical Fishing
    - Two by Two

    Hard (20 blocks expansion):
    **Minecraft advancements:
    - The End?

    **Nether advancements:
    - Uneasy Alliance
    - How Did We Get Here?
    - Beaconator

    **The End advancements:
    - Sky's the Limit
    - Great View From Up Here

    **Adventure advancements:
    - Adventuring Time
    - Very Very Frightening
    - Sniper duel

    **Husbandry:
    - A Balanced Diet
    - Serious Dedication

    Explanation of the expansion: 10 blocks expansion means 5 blocks in every direction. Maybe this helps if you don't understand it: http://prntscr.com/kjb88q
    (List of all the advancements: https://minecraft.gamepedia.com/Advancements#List_of_advancements)

    I hope someone wants to do it :D.
    ~Timo
     
    • Agree Agree x 1
  12. This is an extremely interesting idea, you should continue developing this and adding more features and possibly release this. A lot of people like 1.13 survival yet there are a lot of missing fun plugins like this. I would recommend making it very customizable, maybe even add a gui. I could for sure see this even being a premium plugin. I would pay for this.
     
  13. Tau

    Tau

    I've always had a thing against selling code designed for a game that's free or someone bought.
    I also do not have the time to respond to people as some may demand for a premium resource, at least not to where I'm happy with it.
    As for the plugin, I do agree with you, 1.13 does not have a lot of interesting mechanic plugins (yet), I've already posted an updated version on my resources page, And i will be adding some more features, When i get some free time between other-code related things (Tf2 plugins & SE Mods) And my job.
     
    • Like Like x 1
Thread Status:
Not open for further replies.