BorderPlus icon

BorderPlus -----

Allows your players to expand the world borders themselves using currency or items.



44645363ab6effdec6025014b4c8a8140e796194.png
Description of the BorderPlus Plugin:
BorderPlus is a Minecraft plugin that allows your players to literally move the world borders. This is done through a user-friendly GUI that is fully customizable to meet your needs. Players will pay for the world borders using items, blocks, or currency.
Java 17+ is required.
Starting from version 3.8, the Piggy Bank feature has been added. By entering the command:
/borderplus collective <world_name>
players will open a menu where they can collectively contribute towards expanding the world border.

[​IMG]
Видео обзор на русском:


Features of the BorderPlus Plugin:

  • Each message can be customized.
  • Create a separate GUI for each world.
  • Each GUI has its own usage permissions.
  • SQLite database system for saving all player expansions.
  • Tracks the number of blocks acquired by players.
  • Flexible placeholder system for leaderboards.
  • Compatible with PlaceholderAPI.
  • Notifies all players when someone expands the world border.
  • Customizable title when someone expands the world border.
  • Supports economy.
    • Vault with compatible economies, such as EssentialsX.
    • PlayerPoints.
  • In one menu for a world, you can add payment options for both currency and items.
  • Maximum world border value is specified for each world.
  • Support for the HeadDatabase plugin.
    • You can use the format hdb-<head ID>. Example: hdb-4188.
  • Support for heads in Base64 format.
  • Supports hex color codes.
    • Example: &#7289DA &lDiamond Expansion.
  • Custom sound settings for each upgrade item. The sound parameter in the GUI.
  • Supports the Skulls plugin. To specify a skull, you must use the format skull-<head ID>
  • Collective Contributions:
    A feature that allows players to contribute towards the world border expansion. Now, every player can make their own contribution to increase the world border size.
Commands of the BorderPlus Plugin:

Commands for Players:
  • /borderplus open <world_name>
    Opens the plugin menu, allowing players to access various features for expanding the world border.
    Example: /borderplus open world

  • /borderplus collective <world_name>
    Opens the Piggy Bank menu, where players can contribute collectively towards expanding the world border.
Admin Commands:
  • /borderplus <Number_of_Blocks> - Quickly increases the specified number of blocks.
  • /borderplus reload - Reloads the plugin configuration and GUI menu, refreshing all settings and items.
Permissions for the BorderPlus Plugin:
  • borderplus.open.<world_name>
    Grants the player access to the specific world menu.

  • borderplus.collective.<world_name>
    Grants the player access to the collective contribution (Piggy Bank) for the specified world.
Permissions for Administrators:
  • borderplus.change - Allows the player to modify the world border using the command /borderplus <number>.
  • borderplus.reload - Permission to reload the plugin.

Screenshots of the BorderPlus Plugin:
0a2f29a416410f4de897052a239a7b07c10d0718.png 14e1b639d967567d52d0a36178daf362ebb7892f.png 525ceb70d74c55932b03be4ddec7ff8825f4a664.png 622bdd4e89cb676a1f861af8d49360e9e8b51fa7.png 868283b652e827e98b5af16a520282cbdd06a195.png 44645363ab6effdec6025014b4c8a8140e796194.png a8fe529527cbe0dae9ea145dc486ad0f67f069fd.png a673e1b8275cdfafd7af9912f36744aef7cb0842.png c4177ecd2a2eb9f900b9247c25b11172f4f98728.png dc811367f3e76e0234ebc12f9286a473187ddce2.png


Configuration File Example:

Code (YAML):
# ===============================
#       Plugin Settings
# ===============================
#
# You can configure separate GUIs for each world. These GUIs will open automatically
# when a player is in the respective world or by using the command «/borderplus open world_name».
#
# Configuration examples:
#   - Specify the world name and the GUI file that will open for this world.
#   - Comment out or remove lines for unused worlds.
#
settings
:
  # Language selection for plugin messages
  # Possible values:
  #   "en" for English
  #   "ru" для Русского
  #   "de" für Deutsch
  #   "fr" pour le français
  #   "es" para español
  #   "it" per l'italiano
  #   "pt" para português
  #   "zh" 表示中文
  language
: "en"

  # Show a title to all players when a player expands the world border?
  #    true = show
  #    false = do not show
  show_title
: true

  # Enable or disable the use of economy
  economy_enabled
: true

  # The economic system to be used
  # Possible values: "playerpoints", "vault", "default"
  # "default" means that the old logic will be used: if both plugins are found, PlayerPoints will be used.
  preferred_economy
: "default"

  # The total amount of resources or currency required to reach the goal
  # and trigger the world border expansion.
  # Once the collective goal is reached, the border will expand.
  collective_goal
: 1000

  # The number of blocks by which the world border will expand
  # after the goal is achieved.
  # For example, if set to 1000, the world border will expand by 1000 blocks in every direction.
  collective_expansion_amount
: 1000

  worlds
:
    world
:
      gui
: "gui.yml"
      max_size
: 5000
      collective_gui
: "collective_gui_world.yml"
      name
: "Survival World"
      #flat_world:
      #gui: "gui2.yml"
      #collective_gui: "collective_gui_flat_world.yml"
      #max_size: 5000
      #name: "Flat World"
      #world3:
      #gui: "gui3.yml"
      #collective_gui: "collective_gui_world3.yml"
      #max_size: 5000
      #name: "Third World"
 
How the GUI for the world "world" looks:

In the material field, you can use three types of items:
  1. Item names. Example: DIAMOND, which will display a diamond.
  2. Heads from the HeadDatabase plugin. Example: hdb-4188, where 4188 is the ID of the head from the plugin.

  3. Heads in Base64 format. Example:

    Code (Text):
    material: base64-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjRhMmFmMjYxMDFmNDRmMTE2YWY5MzM3NzRjMDQ3NGI3NjcxODJlNmNhM2Y4ZmRmMTc2NDFlY2YwMmI2YTE4ZCJ9fX0=
     
    You can find the head you need on the website: https://minecraft-heads.com/

  4. Heads from the Skulls plugin. Example: skull-<ID>, where <ID> is the ID of the head. Ensure that the Skulls plugin is installed to use this feature.
gui.yml
Code (YAML):
menus:
  border_menu
:
    title
: '   & #58126b◂ &#721c8a&lBorder Expansion &#58126b▸'
    size
: 27
    items
:
      increase_diamond_20
:
        required_material
: DIAMOND
        cost
: 0.0
        material
: DIAMOND
        lore
:
       - ''
        - '   &7Spend &b&l100 diamonds&7 to'
        - '   &7increase the world border'
        - '   &7by &b&l500 blocks'
        - ''
        - ' & #168032⋅ &#32a852click &7- to expand the border'
        - ''
        required_amount
: 100
        sound
: BLOCK_ANVIL_LAND
        weight
: 500
        economy
: false
        slot
: 10
        display_name
: '& #7289DA &lDiamond Expansion'
      increase_gold_50
:
        required_material
: GOLD_INGOT
        cost
: 0.0
        material
: GOLD_INGOT
        lore
:
       - ''
        - '   &7Spend &6&l50 gold ingots&7 to'
        - '   &7increase the world border'
        - '   &7by &6&l500 blocks'
        - ''
        - ' & #168032⋅ &#32a852click &7- to expand the border'
        - ''
        required_amount
: 50
        sound
: ENTITY_PLAYER_LEVELUP
        weight
: 500
        economy
: false
        slot
: 13
        display_name
: '& #7289DA &lGold Expansion'
      increase_iron_100
:
        required_material
: IRON_INGOT
        cost
: 0.0
        material
: IRON_INGOT
        lore
:
       - ''
        - '   &7Spend &f&l100 iron ingots&7 to'
        - '   &7increase the world border'
        - '   &7by &f&l100 blocks'
        - ''
        - ' & #168032⋅ &#32a852click &7- to expand the border'
        - ''
        required_amount
: 100
        sound
: ENTITY_EXPERIENCE_ORB_PICKUP
        weight
: 500
        economy
: false
        slot
: 16
        display_name
: '&f&lIron Expansion'
      increase_economy_1000
:
        required_material
: EMERALD
        cost
: 1000.0
        material
: EMERALD
        lore
:
       - ''
        - '   &7Spend &61000 coins&7 to'
        - '   &7increase the world border'
        - '   &7by &a&l1000 blocks'
        - ''
        - ' & #168032⋅ &#32a852click &7- to expand the border'
        - ''
        required_amount
: 1000
        sound
: BLOCK_GRASS_BREAK
        weight
: 1000
        economy
: true
        slot
: 22
        display_name
: '&a&lEmerald Border Expansion'
 
GUI file for the piggy bank
Code (YAML):
menus:
  collective_menu
:
    title
: '   & #58126b◂ &#721c8a&lPiggy Bank &#58126b▸'
    size
: 27
    items
:
      center_item
:
        material
: GOLD_INGOT
        lore
:
       - ''
        - ''
        - '   &7Contributed
: &a%borderplus_collective_progress_world%&7%'
        - '   %progress_bar_world%'
        - ''
        - '    &9&lLeaders'
        - '  &e1st place
: &b%borderplus_collective_top_name_1%'
        - '  &e2nd place
: &b%borderplus_collective_top_name_2%'
        - '  &e3rd place
: &b%borderplus_collective_top_name_3%'
        - ''
        - '   &aYour contribution
: &7%borderplus_collective_player_contribution%'
        - ''
        - ' & #168032⋅ &#32a852Click the buttons below'
        - ' & #168032  below to contribute'
        - ''
        slot
: 13
        display_name
: '&eWorld Expansion Progress'
      contribute_1
:
        material
: IRON_INGOT
        lore
:
       - ''
        - '   &7Click to contribute'
        - '   &a1 &7resource to the piggy bank.'
        - ''
        slot
: 21
        economy
: false
        display_name
: '&aContribute 1 resource'
        contribution_amount
: 1
      contribute_100
:
        cost
: 100.0
        material
: EMERALD
        lore
:
       - ''
        - '   &7Click to contribute'
        - '   &a100 coins &7to the piggy bank.'
        - ''
        slot
: 23
        economy
: true
        display_name
: '&aContribute 100 coins'
        contribution_amount
: 100
 
Message File:
Code (YAML):
# ===============================
#        Plugin Messages          #
# ===============================
#
# You can customize it to your liking and make it more informative and appealing.
# ===============================
messages
:
  border_expanded_one
: |
   &#6A0DAD&l    *✧・゚ &#C4B0FBWorld border expanded &#6A0DAD&l゚・✧*
    &#6A0DAD  &#AB47BC%player% &#6A0DADexpanded &#B388EB%borderplus_world_name% by &#6A0DAD&#AB47BC%actual_amount% &#6A0DADblocks!!
    &#6A0DAD            
    &#C4B0FB         New world borders:
    &#7E57C2       Min. coordinates: &#9575CD[%minX%, %minZ%]
    &#7E57C2       Max. coordinates: &#9575CD[%maxX%, %maxZ%]
    &#6A0DAD&l   ・✧゚======================= ゚✧・

  border_expanded_piggybank
: |
   &#6A0DAD&l    *✧・゚ &#C4B0FBWorld border expanded &#6A0DAD&l゚・✧*
    &#6A0DAD  &#AB47BC%player% &#6A0DADexpanded &#B388EB%borderplus_world_name% by &#6A0DAD&#AB47BC%actual_amount% &#6A0DADblocks!!
    &#6A0DAD            
    &#C4B0FB         New world borders:
    &#7E57C2       Min. coordinates: &#9575CD[%minX%, %minZ%]
    &#7E57C2       Max. coordinates: &#9575CD[%maxX%, %maxZ%]

  insufficient_items
: "&cYou don't have enough %material% (%needed% pcs.)!"
  insufficient_funds
: " &cNo money, but you're holding on. Required: %cost%."
  items_removed
: "\n&#7289DA Removed &#7289DA&l%amount_removed% &#7289DAitems from your inventory.\n "
  money_removed
: "\n&#7289DA Removed &#7289DA&l%amount_removed% &#7289DAcoins from your account.\n "
  invalid_number
: "&cInvalid number."
  gui_item_not_found
: "&cItem not found in the menu."
  reload_complete
: "&aConfiguration reloaded."
  title_message
: "&eWorld border expansion"
  title_next
: "&e%player% expanded the world border by %actual_amount% blocks"
  usage
: "&cNot enough arguments"
  usage_open
: "&cInvalid command usage! &7Use: &f/borderplus open &e<world name>"
  no_permission
: " &cNo permission, better luck next time."
  loaded_guis
: "§aLoaded GUIs for worlds:"
  world_gui_info
: "§aWorld: §e{world} §a| GUI: §e{gui}"
  gui_not_found
: "§cGUI for this world not found."
  gui_title_size
: "Title: %title% | Size: %size%"
  max_radius_reached
: "§cWorld border has already reached its maximum size. Further expansion is not possible."
  no_data
: "No data"
  not_in_top
: "Not in top"
  not_found
: "Not found"
  world_not_found
: "World not found"
  invalid_position_number
: "Invalid position number"
# ============= End of Messages Settings ================== #
 
Placeholders for the BorderPlus Plugin:

To operate, PlaceholderAPI is required.

  • %borderplus_player_rank%
    Returns the player's current rank in the leaderboard based on the number of expanded blocks. If the player is not in the top, it returns the message "Not in the top."

  • %borderplus_player_blocks%
    Returns the total number of blocks the player has added to the world border. This placeholder shows the cumulative number of blocks expanded by the specific player.

  • %borderplus_top_block_nick_X%
    Returns the name of the player occupying a specific position (X) in the leaderboard for block expansion. X is the leaderboard position (e.g., 1 for first place).

  • %borderplus_top_block_rank_X%
    Returns the number of blocks expanded by the player at the specified leaderboard position (X).

  • %borderplus_top_block_position_X%
    Returns the leaderboard position number. X is the specific position indicated in the placeholder.

  • %borderplus_world_display_name_<world_name>%
    Returns the display name of the world for which the border is configured. If the world is not found, it returns the message "World not found."

  • %borderplus_world_current_size<world_name>%
    Returns the current radius of the world.

  • %borderplus_world_max_size<world_name>%
    Returns the maximum radius of the world.

  • %borderplus_world_max_diameter<world_name>%
    Returns the maximum diameter of the world.
These placeholders allow you to flexibly configure the display of information about world borders and leaderboards, using both physical items and virtual economy systems.

Piggy Bank Placeholders:
  • %borderplus_collective_progress_world%
    Displays the percentage towards filling the piggy bank.

  • %borderplus_collective_top_name_<number>%
    Displays the name of the player from the piggy bank leaderboard for the specified position.

  • %borderplus_collective_player_contribution%
    Displays the amount of items or coins contributed to the piggy bank by the player viewing the placeholder.

Configuring Leaderboard in BorderPlus:

If you want to display a leaderboard, you can use a plugin of your choice... I prefer to use: DecentHolograms.

Code (YAML):

pages
:
- lines
:
  - content
: " &6&lTop 1: &b%borderplus_top_block_nick_1% &7- &4⌀ &a%borderplus_top_block_rank_1% &4⟘ &a%borderplus_top_block_radius_1% blocks"
    height
: 0.3
  - content
: " &6&lTop 2: &b%borderplus_top_block_nick_2% &7- &4⌀ &a%borderplus_top_block_rank_2% &4⟘ &a%borderplus_top_block_radius_2% blocks"
    height
: 0.3
  - content
: " &6&lTop 3: &b%borderplus_top_block_nick_3% &7- &4⌀ &a%borderplus_top_block_rank_3% &4⟘ &a%borderplus_top_block_radius_3% blocks"
    height
: 0.3
  - content
: ""
    height
: 0.3
  - content
: "&f&lYour stats:"
    height
: 0.3
  - content
: "&8#&b%borderplus_player_rank%&7 &7- &4⌀ &a%borderplus_player_blocks% &4⟘ &a%borderplus_player_radius% blocks"
    height
: 0.3
  actions
: { }
 
I hope everything is clear here...

You can call any top from the database simply by specifying the number at the end.

For example: %borderplus_top_block_nick_1% will display the nickname of the top player in terms of block count, while %borderplus_top_block_nick_100% will show the nickname of the hundredth player from the database.

The example demonstrates that there are two personal placeholders:
  • %borderplus_player_rank% - will display the player's rank in the leaderboard for the player seeing this placeholder.
  • %borderplus_player_blocks% - will show the number of blocks they have expanded the borders by.

Displaying the World Table in Holograms:

This is also based on placeholders, just like the leaderboard, and everything is customizable.

Here's what my hologram looks like:
Code (YAML):

pages
:
- lines
:
  - content
: ' & #00FFFF %borderplus_world_display_name_world%'
    height
: 0.3
  - content
: ' & #00FFFFCurrent radius: &#32CD32%borderplus_world_current_size_world%'
    height
: 0.3
  - content
: ' & #00FFFFMaximum radius: &4%borderplus_world_max_size_world%'
    height
: 0.3
  - content
: ' & #00FFFFMaximum diameter: &4%borderplus_world_max_diameter_world%'
    height
: 0.3
  actions
: { }

 
Installation of the BorderPlus Plugin:

Required Plugins:

  • Mandatory Plugins:
    • Placeholders:
      • PlaceholderAPI
    • Economy:
      • You must install one of the economy plugins:
        • Vault along with any economy plugin, such as EssentialsX or PlayerPoints.
        • If Vault and PlayerPoints are both installed, the plugin will automatically choose PlayerPoints.
  • Soft Dependencies (Optional):
    • DecentHolograms - If you want to use holograms on the server, I recommend this plugin, but you can use any other.
    • HeadDatabase - For displaying heads in place of items.
Installation Steps:

  1. Ensure that you have the required dependencies mentioned above on your server.
  2. Download the plugin.
  3. Shut down the server.
  4. Move the .jar file into the /plugins/ folder of your server.
  5. Start the server.
  6. Done!
P.S. Also, greetings to my mom, dad, grandma, grandpa, Mouse, Black, and all my friends!

[​IMG]
Resource Information
Author:
----------
Total Downloads: 308
First Release: Aug 31, 2024
Last Update: Dec 4, 2024
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings