PowerHomes is the ultimate homes solution for your SMP server. Built to be scalable, fast, powerful, yet simple, lightweight and easy to use by any user.
With PowerHomes, your players can set specific waypoints (homes) and go back to them whenever they desire. They can also share their homes and invite players, or make the home public and blacklist certain players from accessing it.
Multi-home support
Each player can have multiple homes (configurable using permissions or the config.yml), each identified with a name to use at any time
Invite players to your home
Players can invite other players to their homes to give these players access to use their home at any time.
Make your home public
Players can make their home public to allow anyone to access it, acting as a warp that belongs to them.
Players with public homes can blacklist other players from accessing the public home.
Blacklist players from accessing a home
Players can set their homes to be public, yet at the same time blacklist certain players from
Configurable amount of homes
You can set a default max number of homes in the config.yml.
It is possible to override this number for VIP players by giving them the powerhomes.homes.max.<number> permission
Home safety
Warps are checked for lava, TNT, solid blocks and breathing area, and players are warned beforehand when a home is unsafe.
It is possible to disable safety checks, or enable only specific ones.
Powerful and native command completion
All commands include relevant auto-completions and suggestions to make the process faster and easier
PowerHomes leverages Minecraft 1.13+'s new command system, therefore providing native-like command execution process, command tooltips, and colorful arguments
Supports multiple storage types
PowerHomes supports up to 5 different storage types, all of which are highly performant and compact
SQLite (default)
H2 (experimental)
MySQL
PostgreSQL
MariaDB
Heavily optimized for large servers
PowerHomes implements efficient caching, batch updating, and multi-threading to perform as fast as possible
PowerHomes has an extremely lightweight footprint on your server, making it an excellent choice for servers with limited resources or high pressure.
Super customizable
99.9% of plugin messages are customizable and editable, with over 40 editable messages
PowerHomes uses the MiniMessage format, which allows normal colors, hex colors, rainbow, clickable and hoverable messages easily with no extra configuration and through an interactive web UI.
Everything in PowerHomes can be customized,
/home set <home name> (powerhomes.command.set): Add a new home or update an existing one
/home go <home owner> <home> (powerhomes.command.use.others): Go to somebody's home
/home blacklist <target> <home> (powerhomes.command.blacklist): Blacklist a player from accessing your home
/home delete <home> (powerhomes.command.delete): Delete a home
/home help [page] (powerhomes.command.help): List all available commands
/home invite <target> <home> (powerhomes.command.invite): Invite a player to your home
/home private <home> (powerhomes.command.private): Make your home accessible only to those you invite
/home public <home> (powerhomes.command.public): Make your home accessible to everyone
/home rename <home> <new name> (powerhomes.command.rename): Rename your home
/home unblacklist <target> <home> (powerhomes.command.unblacklist): Un-blacklist a player from accessing your home
/home unblacklistall <home> (powerhomes.command.unblacklistall): Clear all blacklists in your home
/home uninvite <target> <home> (powerhomes.command.uninvite): Un-invite a player from your home
/home uninviteall <home> (powerhomes.command.uninviteall): Clear all invites to your home
/home admin blacklist <player> <home> <target> (powerhomes.command.admin.blacklist): Blacklist a player from another player's home
/home admin delete <player> <home> (powerhomes.command.admin.delete): Delete the home of a player
/home admin invite <player> <home> <target> (powerhomes.command.admin.invite): Invite a player to another player's home
/home admin private <player> <home> (powerhomes.command.admin.private): Make a home private
/home admin public <player> <home> (powerhomes.command.admin.public): Make a home public
/home admin reload (powerhomes.command.admin.reload): Reload the plugin
/home admin rename <player> <home> <new name> (powerhomes.command.admin.rename): Rename a player's home
/home admin set <player> <home> (powerhomes.command.admin.set): Set the home of a player
/home admin unblacklist <player> <home> <target> (powerhomes.command.admin.unblacklist): Un-blacklist a player from another player's home
/home admin unblacklistall <player> <home> (powerhomes.command.admin.unblacklistall): Unblacklist all players from another player's home
/home admin uninvite <player> <home> <target> (powerhomes.command.admin.uninvite): Uninvite a player from another player's home
/home admin uninviteall <player> <home> (powerhomes.command.admin.uninviteall): Uninvite all players from another player's home
config.yml
Code (YAML):
# The max amount of homes a single player may have. # # Default: 3 max-homes-per-player: 3
# Is asynchronous teleporting supported? (Paper only) # # This feature allows faster and more efficient teleporting on Paper # servers # # Default: true async-teleport-on-paper: true
# Should the plugin respawn the player at their home when they die? # # Note: Since players may have multiple homes, they will be respawned # at their first one. This can be overridden by creating a home named # "respawn" or "bed". # # Default: true respawn-at-home-on-death: true
# The sound to play when the player uses a home sound-on-use: entity_arrow_hit_player
# Safety checks for homes. # # These are checked when a player attempts to use a home, # and when any check is violated the player is warned. # # If the player wishes to proceed to an unsafe home, they must run the # command once again within <time-out property below> seconds safety-checks:
# The radius in which checks are performed in radius: 3
# If the player wishes to proceed to an unsafe home, they must run the # command once again within the timeout (in seconds) time-out: 10
# The list of checks # # Currently supported values (case-insensitive): # - lava # - tnt # - suffocation # - no_blocks checks: - lava
- tnt
- suffocation
- no_blocks
# Storage configuration storage:
# The storage type. Each type is cached accordingly and only requested when needed. Can be either: # # - SQLite (Recommended): Storing in a flat-file SQLite database. # - MySQL: Storing in a remote MySQL database # - PostgreSQL: Storing in a remote PostgreSQL database # - MariaDB: Storing in a remote MariaDB database # # Values are case-insensitive. # # Fill the appropriate settings for the selected option. When one is selected, the settings of the other # ones are ignored. # # IMPORTANT NOTE: CHANGING THE TYPE WILL NOT IMPORT THE DATA FROM THE OLD STORAGE TO THE NEW ONE. USE THE APPROPRIATE # TOOLS TO CONVERT. type: sqlite
# The host to be used for the database. Uses the standard DB engine port by default. If you have a # non-default port, specify it here using 'host:port'. host: 'localhost'
# The name of the database to connect to database-name: 'powerhomes'
# The user to connect with username: 'root'
# The password of the user password: 'p@ssw0rd123'
# HikariCP's properties configuration. # # This section is for advanced configuring for the database connection. # # Unless you know what you are doing, or were explicitly told to modify these, # you are better off keeping these values as the default. pooling:
# The maximum lifetime of a connection in the pool max-lifetime: 120000
# The maximum size that the pool is allowed to reach, including both idle and in-use # connections max-pool-size: 3
# The interval (in minutes) in which the database should be updated. # # It is better to leave this as the default value (30) unless you # are facing issues with it. update-database-interval: 30
messages.yml
Code (YAML):
################################################################### # This file uses the MiniMessage format for messages # # Format: https://docs.adventure.kyori.net/minimessage/format.html # Web UI for previewing: https://webui.adventure.kyori.net/ ###################################################################
# The prefix of the plugin that precedes every message. # # Note that it is possible to disable the prefix by putting # [noprefix] behind messages. # # (A space at the end is not added by default, we can add it # ourselves) prefix: "<gray>[<green>Homes</green>]</gray> "
# Sent when a player warps to their own home home-use-self: "<green>Welcome to <yellow>{home}</yellow>!</green>"
# Sent when a player warps to somebody else's home home-use-other: "<green>Welcome to <yellow>{player}</yellow>'s home!</green>"
# Sent when a player adds a new home home-added: "<green>Added a new home: <yellow>{home}</yellow>.</green>"
# Sent when a player deletes their home home-deleted: "<green>Deleted home <yellow>{home}</yellow>.</green>"
# Sent when a player reaches the maximum number of allowes homes home-maximum-reached: "<red>You've reached the maximum amount of homes!</red>"
# Sent when an invalid home is inputted. no-such-home: "<red>No such home: <yellow>{home_name}</yellow>.</red>"
# Sent when a player attempts to access a home but cannot. access-denied: "<red>You do not have access to this home.</red>"
# Sent when a player attempts to add a home with a conflicting # name home-with-name-already-exists: "<red>A home with name <yellow>{home_name}</yellow> already exists!</red>"
# Sent when a player attempts to uninvite themselves player-invited: "<green>Player <yellow>{player}</yellow> can now access <yellow>{home}</yellow>.</green>"
# Sent when a player attempts to invite themselves cannot-invite-self: "<red>You cannot invite yourself!</red>"
# Sent when a player attempts to uninvite themselves cannot-uninvite-self: "<red>You cannot uninvite yourself!</red>"
# Sent when a player uninvites another player from their home player-uninvited: "<green>Player <yellow>{player}</yellow> can no longer access <yellow>{home}</yellow>.</green>"
# Sent when a player attempts to uninvite a player from their home # but that player is not invited. player-not-invited: "<red>Player <yellow>{player}</yellow> is not invited to <yellow>{home}</yellow>.</red>"
# Sent when a player uninvites all players from their home uninvited-all: "<green>Successfully uninvited all players from <yellow>{home}</yellow>.</green>"
# Sent when a player attempts to invite a player to their home # but that player is already invited. already-invited: "<red>Player <yellow>{player}</yellow> is already invited to <yellow>{home}</yellow>.</red>"
# Sent when a home is renamed home-renamed: "<green>Home <yellow>{home}</yellow> has been renamed to <yellow>{new_name}</yellow>.</green>"
# Sent when a player updates the location of their home home-location-updated: "<green>Updated location of <yellow>{home}</yellow> to your location.</green>"
# Sent when a player makes their home public. home-public: "<green><yellow>{home}</yellow> is now public.</green>"
# Sent when a player makes their home private. home-private: "<green><yellow>{home}</yellow> is now private.</green>"
# Sent when a player blacklists another player from their home player-blacklisted: "<green><yellow>{player}</yellow> is now blacklisted from <yellow>{home}</yellow>.</green>"
# Sent when a player unblacklists another player from their home player-unblacklisted: "<green><yellow>{player}</yellow> is no longer blacklisted from <yellow>{home}</yellow>.</green>"
# Sent when a player attempts to unblacklist another player from their home # but that player is not blacklisted. player-not-blacklisted: "<red><yellow>{player}</yellow> is not blacklisted from <yellow>{home}</yellow>.</red>"
# Sent when a player attempts to blacklist another player from their home # but that player is already blacklisted. player-already-blacklisted: "<red><yellow>{player}</yellow> is already blacklisted from <yellow>{home}</yellow>.</red>"
# Sent when a player unblacklists everybody from their home. unblacklisted-all: "<green>Successfully cleared all blacklists from <yellow>{home}</yellow>.</green>"
# Sent when a player attempts to blacklist themselves cannot-blacklist-self: "<red>You cannot blacklist yourself!</red>"
# Sent when a player attempts to unblacklist themselves cannot-unblacklist-self: "<red>You cannot unblacklist yourself!</red>"
# Sent when a player attempts to make a home public when it's # public already. home-already-public: "<red><yellow>{home}</yellow> is already public.</red>"
# Sent when a player attempts to make a home private when it's # private already. home-already-private: "<red><yellow>{home}</yellow> is already private.</red>"
# Sent when a player attempts to go to an unsafe home home-safety-violation: "<red><yellow>{home}</yellow> has the following safety violations:</red>"
# How each safety violation is displayed in the list list-violation-item: "<gray>- <green>{violation}"
# Proceeds to the unsafe home home-unsafe-proceed: "<yellow>To proceed, run the command again.</yellow>"
# Sent when a player runs "/home". see-help: "<red>Run <yellow>/home help</yellow> for a list of available commands.</red>"
# Sent when an admin reloads the plugin plugin-reloaded: "<green>PowerHomes has been reloaded!</green>"
# Sent when an admin sets the location for a player admin-home-set: "<green>Successfully set location of <yellow>{player}</yellow>'s <yellow>{home}</yellow> to your location</green>"
# Sent when an admin deletes the home of a player admin-home-delete: "<green>Deleted <yellow>{player}</yellow>'s <yellow>{home}</yellow>.</green>"
# Sent when an admin invites a player to a home admin-home-invite: "<green>Invited <yellow>{player}</yellow> to <yellow>{home}</yellow>.</green>"
# Sent when an admin uninvites a player from a home admin-home-uninvite: "<green>Uninvited <yellow>{player}</yellow> from <yellow>{home}</yellow>.</green>"
# Sent when an admin uninvites everybody from a home admin-home-uninviteall: "<green>Successfully uninvited all players from <yellow>{player}</yellow>'s <yellow>{home}</yellow>.</green>"
# Sent when an admin blacklists a player from a home admin-home-blacklist: "<green>Blacklisted <yellow>{player}</yellow> from <yellow>{home}</yellow>.</green>"
# Sent when an admin unblacklists a player from a home admin-home-unblacklist: "<green>Unblacklisted <yellow>{player}</yellow> from <yellow>{home}</yellow>.</green>"
# Sent when an admin uninvites everybody from a home admin-home-unblacklistall: "<green>Successfully unblacklist all players from <yellow>{player}</yellow>'s <yellow>{home}</yellow>.</green>"
# Sent when an admin renames a player's home admin-home-rename: "<green>Renamed <yellow>{player}</yellow>'s <yellow>{home}</yellow> to <yellow>{new_name}</yellow>.</green>"
# Sent when an admin sets a home to be public admin-home-public: "<green><yellow>{home}</yellow> is now public.</green>"
# Sent when an admin sets a home to be private admin-home-private: "<green><yellow>{home}</yellow> is now private.</green>"
No special installation instructions are required. Simply download PowerHomes-V.jar and put it in your plugins folder.
Note: When the plugin starts for the first time, it will require an internet connection to install a few dependencies. If you do not have access to the internet, extract the zip in https://bit.ly/3cd3wGe at /PowerHomes/libraries, or obtain access to the internet.
For questions, inquiries, bug reports, or suggestions, feel free to jump by our Discord server any time!
By purchasing and/or using PowerHomes, you agree to the following:
It is your responsibility to periodically review these Terms of Service to stay informed of updates.
No part of the plugin's source code / bytecode may be copied, modified in any way, deobfuscated, changed, reproduced, aggregated, republished, uploaded, posted, publicly or privately displayed, encoded, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever without Revxrsal's prior written permission.
You may OR may not get a refund after purchasing the resource.
I am irresponsible for any damage this resource may inflict on you or your services.
You receive the resource AS IS. You shall not expect any updates, new features or bug fixes other than what is currently available. These are a personal investment of mine, and I am not obliged to do any of them.
The content and features provided within all plugin are “AS IS” for use on a single server (a single purchase is valid for a single server or network of servers within the same general area).
Tributes to freepik for the 2D graphics used throughout this thread.