Giter VIP home page Giter VIP logo

husktowns's Introduction

HuskTowns
Spigot Setup Docs Issues


HuskTowns is a simple and elegant proxy-compatible Towny-style protection plugin for Spigot-based Minecraft servers. Let players form towns, claim chunks and carve out a thriving community. Built into HuskTowns is a robust and beautiful chat interface with a plethora of admin tools and config options to let you tailor the plugin to your needs.

All of this is supported on both standalone setups and across a network of proxied servers—with support for a good range of add-ons to further enhance your experience.

Features

⭐ Works cross-server — Let players seamlessly manage their towns, claims and teleport to their town spawn across your proxy network!

⭐ Super intuitive — Users will pick up how to use it right away! Make a town with /town create and claim a chunk with /town claim to get started.

⭐ Quick and beautiful menus — Sometimes, simple is better. No monolithic chest GUIs—instead, robust and beautiful interactive chat menus.

⭐ Great admin features — Manage the towns on your server and easily make admin claims. Comes with built-in support for Dynmap, BlueMap, Pl3xMap, Plan, LuckPerms, HuskHomes & more!

⭐ Easy to configure — Players can fine-tune town flags and access settings in-game, and admins can easily configure roles and levels through a simple config structure.

⭐ Extensible API & open-source — Need more? Extend the plugin with the Developer API. Or, submit a pull request through our code bounty system!

Ready? Let's head down town!

Setup

Requires Java 17+ and a Minecraft 1.17.1+ Spigot-based server. A MySQL database and (optionally) Redis are also needed if you wish to run the plugin across multiple servers on a proxy network.

  1. Place the plugin jar file in the /plugins/ directory of each Spigot server you want to install it on.
  2. Start, then stop every server to let HuskTowns generate the config file.
  3. Navigate to the HuskTowns config file on each server (~/plugins/HuskTowns/config.yml)
  4. Configure the plugin to your liking. If you are running HuskTowns across multiple servers, enable cross_server mode and fill in your MySQL credentials, remembering to change the database type to MYSQL as well.
  5. You can also modify the level requirements in ~/levels.yml, the default town rule settings in ~/rules.yml and the town roles in ~/roles.yml
  6. Start every server again and HuskTowns should have completed installation!

Development

To build HuskTowns, simply run the following in the root of the repository:

./gradlew clean build

License

HuskTowns is licensed under the Apache 2.0 license.

Contributions to the project are welcome—feel free to open a pull request with new features, improvements and/or fixes!

Support

Due to its complexity, official binaries and customer support for HuskTowns is provided through a paid model. This means that support is only available to users who have purchased a license to the plugin from Spigot, Polymart, Craftaro, or BuiltByBit and have provided proof of purchase. Please join our Discord server if you have done so and need help!

Translations

Translations of the plugin locales are welcome to help make the plugin more accessible. Please submit a pull request with your translations as a .yml file. (More info…)

Links


© William278, 2023. Licensed under the Apache-2.0 License.

husktowns's People

Contributors

dependabot[bot] avatar eleksploded avatar emibergo02 avatar ghost-chu avatar hookwoods avatar imhinotori avatar jhqwqmc avatar mscmdd avatar oakloaf avatar oribuin avatar prodpreva1l avatar riksou avatar rubenicos avatar thomasz05 avatar wiiiiam278 avatar wuzzylv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

husktowns's Issues

PVP flag false-checking issue

Throwing an enderpearl inside a claim with pvp disabled still throws the "PvP is disabled..." message even if no player is present or hit.

Admin Spy permission for Town Chat

A permission for players to monitor all conversation happening in Town Chats.

Toggle-able by Command and implemented by a Permission.

Add option to remove or transfer towns/claims after X days of inactivity

Suggested by Discord user: GrandpaCrunkle#3763

Add a remove town/claims after x amount of days of player inactivity.

Adding onto this: perhaps making it a setting, allowing for it to either transfer or remove the claims and then a setting for inactivity count. The aforementioned transferring might have to be done just by pulling the member list of the town and choosing the earliest member to become the "owner".

HuskChat blocks /town chat [toggle]

If you have HuskChat and HuskTowns installed together it looks like you cant toggle your town chat using "/town chat".
Messages will still be send in your Channel selected via HuskChat.

Town Permission Override command/permission

For Moderation purposes it is required for players to excluded from the permission block allowing them to view chest contents and other wise.

husktowns.override | /town override

Improved town coffers system + plot taxing and selling

Brief:

  • Withdrawl from Coffers; limited to amount to sustain current Chunks/Members.
  • Setting Plot prices/Rent costs. Directly funds town coffers thus town level (configurable)
  • Taxation on Towns server wide -- admin command.

Info extrapolated from Roadmap. See for further and expanded info.

Plaza Chunks

Plazes chunks are a "catch case" chunk; this meaning they allow for interactions of entities and other but do not allow the interactions on Blocks or opening containers (see RoadMap).

Further discussion may take place but please familiarize yourself with the RoadMap entry before hand.

Allow import from Towny

Requires me doing a bunch of tedious Towny API testing and work. I'd also like to get taxable / price set town plots done first as that's a major feature. Towny also has a bunch of stuff that Husk Towns does not like nations.

Taken from the Roadmap. Check for updates.

If anyone has any suggestions or ideas on how we should handle issues like the nation system import, please leave a comment in this ticket. This lets us compile everything, and hear feedback.

This issue is marked as postponed; this is not correct but it's priority is considered so low that postponed is the best gauge

Allowing of Placeholder Editing/Creation

So with custom role prefixes... Provide a spot in the config that allows us to change the prefix of a resident, mayor, and trusted. For example if I put %husktowns_town_role% placeholder in my scoreboard and the player was just a resident it would obviously say "Resident". I want to be able to change to format maybe to "RESIDENT" or "[RESIDENT]".
Original Suggestion by Seth#2764

Town Flag System

Add a /flags or /town flags, so that leaders can deactivate certain options in their town, for example pvp, explosions, friendly fire, >etc.
Original Suggestion by Syndr4

Town Flags and Admin Flags should be done seperate

"dummy account" towns

  • Towns owned and kept active by a dummy player
  • These towns are always active (i.e. they can not be deleted by a player only by an admin)
  • "/admintown create [town]"

Overhaul "Admin" Commands

Admin commands are commands that fall under the /townadmin or any proxy command using the Admin name in them or an abbreviation of such. These commands are to be used by any operator or owner of the server. They may be entrusted to others. These commands can cause major irreversible changes if used incorrectly or given to the wrong people.

These commands serve to greatly help and assist admins in Administration and Moderation tasks. Thus, due to the poor state they are currently in an overhaul is needed to the system.

  • These commands shouldn't focus on being Simple; they should be powerful.
    • These commands don't need to be simple, they need to be usable, to do what they set out to do. Exchanging some of the simplicity isn't the worse case.
  • They should be locked behind individual nodes
    • Sometimes "Admin" commands should also be available to moderators. So lets support that.
  • They should support most of the features we have available that would require Administration
    • We can't be expected to support commands that aren't needed. It's un-needed bloat

Potential Admin Commands:

Admin Command Node Function
/admin help husktowns.admin.*, husktowns.admin.help Displays a list of available commands
/admin ignoreclaims husktowns.admin.*, husktowns.admin.ignoreclaims Ignores all Claim Protection
/admin unclaim husktowns.admin.*, husktowns.admin.delete Deletes a claimed chunk
/admin deletetown [town] husktowns.admin.*, husktowns.admin.deletetown Deletes a Town; requires confirmation
/admin rename [town] [name] husktowns.admin.*, husktowns.admin.rename Renames a town
/admin townbonus [town] [chunks] [players] husktowns.admin.*, husktowns.admin.townbonus Apply a bonus to the given town

Potential Admin Town Commands:

Admin Command Alias(es) Node Function
/admintown delete /at delete husktowns.admintown.*, husktowns.admintown.delete Deletes an Admin Town
/admintown flags [flag] [state] /at flags, /at settings, /admintown settings husktowns.admintown.*, husktowns.admintown.flags Edit Admin Towns Flags in-game
/admintown unclaim /at unclaim husktowns.admintown.*, husktowns.admintown.unclaim Unclaim an Admin Town Chunk
/admintown autoclaim /at autoclaim, /at auto husktowns.admintown.*, husktowns.admintown.claim Auto claim admin town chunks
/admintown claim /at claim husktowns.admintown.*, husktowns.admintown.claim Claim admin town chunks
/admintown claimlist /at claimlist, /at list husktowns.admintown.*, husktowns.admintown.claim List Admin town Chunks

Cant Create town

Logs:

[01:41:08 INFO]: b01w issued server command: /town create Poggers
[01:41:08 WARN]: [HuskTowns] Plugin HuskTowns v1.3.1 generated an exception while executing task 5442
java.lang.NullPointerException: Cannot invoke "net.milkbowl.vault.economy.Economy.getBalance(org.bukkit.OfflinePlayer)" because "" is null
at me.william278.husktowns.integrations.Vault.takeMoney(Vault.java:49) ~[?:?]
at me.william278.husktowns.data.DataManager.lambda$createTown$17(DataManager.java:1639) ~[?:?]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:100) ~[patched_1.17.jar:git-Purpur-1243]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[patched_1.17.jar:git-Purpur-1243]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.jar:git-Purpur-1243]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]

Only edited the messages yml and changed the husktowns name to mineconomy names and also the colours. Any reason why this is happening?

Admin Autoclaim

Original Request by GrandpaCrunkle#3763

Admin Autoclaim :]

Adding on: this appears to be an oversight with the autoclaim feature.

Increasing Particle Size/Ratio

Increasing the size of the particle (Sometimes its easy to lose sight of especially with shaders)

Also increasing the particle ratio and maybe making it slightly scattered across the border Y axis may be applicable.
Or in other words, displacing on the Y axis to make it contrast against walls.

Some strings are not currently translatable

Currently missing strings from locale file:

  • Town overview menu
  • Town map hover informational details
  • Claim list hover informational details

See also: WiIIiam278/HuskTownsDocs#52

Not currently going to happen:

  • Command descriptions (as these are taken from spigot's plugin.yml file)

"At the moment there's a bunch of stuff that you can't customize the color of due to technical restrictions."
Taken from the Roadmap

Distinguish chunk types on Map by Symbols

Distinguish chunk types (Farm, Plot, Player Location etc.) by Symbols on the map, allowing for better visibility.
This should probably be toggle-able in some way or modifiable for what would show.

Consoles flaunting it's caching time on joins

Server Consoles seem to be re-sending the cache system time when a server goes from 0 players to 1. It reports normally fairly high numbers which it seems to be counting constantly in the background.

Example:
Player joins right as server starts:
Cache time is 100 seconds
They Leave

50 seconds later they rejoin:
The cache system says 150 but is instant.
They leave

So on and so forth...

AutoMap Feature when using Autoclaim

When using AutoClaim, you should be able to toggle a automap system that will display the map when you claim a new chunk.

"/autoclaim map" as the command?

Improve cached data handling to reduce startup times

Currently on startup the plugin loads ALL the data off the database into memory. In the case of claims, the plugin restricts most actions until loading is complete. This is bad for a number of reasons:

  • The more claims and players who play on the server, the longer this load time will be. A server with 3000 claims takes around 3 minutes to load. Servers with hundreds of thousands of claims in the future could take hours.
  • Although the memory usage overhead is pretty low (only kilobytes), it will scale. The memory usage might be noticeable with servers with many hundreds of thousands of claims, players, etc
  • Slow databases will load data even slower.

Here's the plan:

  • Make the player cache only load players when they log in and remove them from the cache on logout.
  • Make the claims cache smarter by caching data when first used and removing the data after not being used for a prolonged period of time.
  • Make the messages cache only load messages for towns with claims on the server.
  • The town bonuses cache can stay the way it is.

Allow import from Towny

Requires me doing a bunch of tedious Towny API testing and work. I'd also like to get taxable / price set town plots done first as that's a major feature. Towny also has a bunch of stuff that Husk Towns does not like nations.

Taken from the Roadmap. Check for updates.

If anyone has any suggestions or ideas on how we should handle issues like the nation system import, please leave a comment in this ticket. This lets us compile everything, and hear feedback.

This issue is marked as postponed; this is not correct but it's priority is considered so low that postponed is the best gauge

Coffers are able to sustain a negative amount

Reproduction Steps:

Simply do /town deposit and then insert a number that will the counter below 0. If there is money in the account it will be refunded if not it will down below.

image

Implement a "view all claim border" feature

maybe add a command that shows all the borders of your claims to show instead of just the current chunk you are in.
Original Suggestion by Sethh#2764

Good idea. There’s /map that shows all nearby claims but how does shift+click with a stick to view all nearby borders sound?
Further continued idea by William#5204

Claim list randomly sorts itself on every use

When you run the /claimlist command the list that appears is randomly sorted each time you re-run the command.

  • Be in a town that has multiple claims set
  • Type /claimlist once
  • Type /claimlist again
  • 🚫Observe that the claims in the list are ordered differently

Allow towns to pick color rather than basing on name

By default towns should be colored based on their name but an option should be added to let them change this to any color they want.
Involves storing town color hex code in the town table on SQL, adding to the town settings menu and adding command to handle changing it, as well as caching it in the town data cache and then updating the cache, etc.

Better help menu for /town

"I'd like to make it so /town help displays a list of the /town subcommands rather than the big generic help menu. This will be more intuitive and helpful for new players. The old help menu will still be accessible with /husktowns help."

Taken from the Roadmap.

Reported: Dynmap no longer shows claims

Reported by GrandpaCrunkle#3763

Also it seems with 1.17 that the claims for Dynmap no longer appear on the map

Can not confirm or test as no HuskTowns jar is available for use.

Toggle for /townchat

Downside of this is that it won't work with Bungee Chat and such... But it'd be very useful and nice to have :)

Radius Claim Region Command

Implementation of a Command that will, when used, claim in a square shape the surrounding chunks as supplied in the command.

/claim <no.>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.