Coder Social home page Coder Social logo

wiiiiam278 / huskhomes Goto Github PK

View Code? Open in Web Editor NEW
110.0 3.0 76.0 16.8 MB

The powerful & intuitive homes, warps, and teleportation suite

Home Page: https://william278.net/project/huskhomes

License: Apache License 2.0

Java 99.97% Shell 0.03%
minecraft fabric folia paper spigot sponge

huskhomes's Introduction

HuskHomes
Modrinth Setup Docs Issues


HuskHomes is a powerful, intuitive and flexible teleportation plugin for Minecraft: Java Edition servers. HuskHomes contains a meaty—but not bloated—set of player teleportation features, including set homes, warps, public homes, teleport requests, previous and offline position teleporting—and more.

HuskHomes can be used on your Spigot, Sponge or Fabric server, and with a MySQL Database even works cross-server, letting players teleport across your proxy (Bungee or Velocity) network!

Features

⭐ Works cross-server — Let players seamlessly teleport and set homes across your proxies network of servers using MySQL/MariaDB.

⭐ Zero learning curve — Your players already know how to use it! /sethome, /home, /tpa, /rtp—among others—are all built-in and easy-to-use.

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

⭐ Great admin features — Comes with all the classic admin commands—/tp and /warp—as well as robust tools for managing other players' homes.

⭐ Plan & Web map plugin hooks — Stay in touch with your community through home analytics via Plan and display homes on Dynmap or BlueMap.

⭐ Extensible API & open-source — Still not enough? Extend the plugin with the HuskHomes API. Or, submit a pull request—we're open-source!

Building

HuskHomes requires Java 17 to build. To build for all platforms, simply run the following in the root of the repository:

./gradlew clean build

License

HuskHomes is licensed under the Apache 2.0 license.

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.

Links


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

huskhomes's People

Contributors

ahdg6 avatar akiranya avatar alazeprt avatar aplini avatar ceddix avatar davgo0103 avatar dependabot[bot] avatar emanuelfnc avatar emibergo02 avatar funasitien avatar imdanix avatar ivillager avatar izatwin avatar jhqwqmc avatar klxf avatar log1x avatar lorias-jak avatar mindryder avatar namiuni avatar notjoshmiles avatar prodpreva1l avatar pseudoresonance avatar refertv avatar smooone avatar snivyj avatar snowcutieowo avatar usa-reddragon avatar wiiiiam278 avatar wintone01 avatar yuanyuanowo 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  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

huskhomes's Issues

Permission-restricted warps

Add a new config option restricting warps to permissions (e.g /warp mall requires the huskhomes.warps.mall permission.)

Add ability for staff to visit and edit players’ homes

Make a command like Essentials' /home : to teleport to players' home

Adding on: This is highly similar to the Phome system, differing from a prefix of the playername. My guess is this would be a "admin" command. Allowing universal teleporting to anyhome. Such a permission would be required (Huskhomes.home.universal?).

Filtering would probably be a nice thing on both the /homes menu and just /home tab filler.
Discussion is welcome

BlueMap support

Should support BlueMap like HuskTowns. Shouldn't be considerably difficult to implement.

Button locale not handling color codes (`&`)

Example of items that do not parse colors:

edit_warp_teleport_button: '[Teleport]'
edit_warp_teleport_button_tooltip: Teleport to this warp
edit_warp_delete_button: '[Delete]'
edit_warp_delete_button_tooltip: Delete this warp
edit_warp_relocate_button: '[Relocate]'
edit_warp_relocate_button_tooltip: Update this warp's location
edit_warp_rename_button: '[Rename]'
edit_warp_rename_button_tooltip: Change the name of this warp
edit_warp_description_button: '[Edit Description]'
edit_warp_description_button_tooltip: Update this warp's description
edit_home_teleport_button: '[Teleport]'
edit_home_teleport_button_tooltip: Teleport to your home
edit_home_delete_button: '[Delete]'
edit_home_delete_button_tooltip: Delete your home
edit_home_relocate_button: '[Relocate]'
edit_home_relocate_button_tooltip: Update your home's location
edit_home_rename_button: '[Rename]'
edit_home_rename_button_tooltip: Change the &aname&7 of your home
edit_home_description_button: '[Edit Description]'
edit_home_description_button_tooltip: Update the &adescription&7 of your home
edit_home_make_public_button: '[Make Public]'
edit_home_make_public_button_tooltip: Open your home to the public
edit_home_make_private_button: '[Make Private]'
edit_home_make_private_button_tooltip: Make your home private
home_default_description: '&a%1%''s&7 home'
warp_default_description: A &apublicly&7 accessible warp

Relocating homes and warps when using mySQL causes them to be deleted

After Renaming a home from "EndermanFarm" to "EndRaiding" i went to change it's location, the Plugin then informed me that the home "does not exists".

After checking the Home list i found the home had vanished from my list. Even after a re log it did not return, The only other change made latter to the other home was to another former home called "End" which i renamed to "EndermanFarm".

Move SQL operations off the main thread

All SQL operations are currently handled synchronously on the main thread, meaning that the thread is frozen until a query is complete, which may lead to server crashes on slow databases.
More than likely won't cause issues on SQLite, but it's still taxing I/O operations that should be handled asynchronously.

Add /tpignore

maybe add a command to cancel all tpa requests
deny all of them
really useful for streamers
and youtubers

Original Suggestion by Unnm3d on Discord

Implement an FAQ section to Wiki documentation

Implementation of a FAQ section to the Wiki subsection; this will include any questions that may crop up on occasion such as disabling a command via permissions or common questions on features.

This section can be updated, changed and morphed per version and will be revised as such -- this means that if any drastic change is performed steps to reproduce or test can be found either in the section or within a external document.

  • Introduction to the FAQ
  • Frequently Asked Questions: Permissions
  • Frequently Asked Questions: Command Errors
  • Frequently Asked Questions: Support

Hopefully this will both improve support efficiency and help new users.

implement /tpoffline

...to add an option to teleport you to offline users

Origin suggestion by Melonzio on Discord

Probably just a hooktie to the Player Position Database table? no egregious database reworking \o/

Dynamap integration Problems

Dynamap is displaying any and all homes made, even if set non-public that are made using HuskHomes2 - despite this there names on the map are still prefixed with /phome.

The Dynamap also doesn't appear to remove the Home or Phome after it has been deleted.

Below is a screenshot of a Home deleted over 10 minutes ago that is displayed on the dynamap as a Phome and is no longer existent.

image

Implement HikariCP connection pooling

An error occurred when I tried to use MySQL to store data.
Output error message: [HuskHomes] The mySQL JBDC library is missing! Please download and place this in the /lib folder.
HuskHomes version 2.5. MySQL version 5.7.
image

Add EssentialsX home export from yaml userdata

Please add this feature. it's very useful for servers with a large playerbase

	                        Essentials ess=(Essentials)getServer().getPluginManager().getPlugin("Essentials");
				Plugin BTM = Bukkit.getPluginManager().getPlugin("BungeeTeleportManager");
				if (ess == null) {
					Bukkit.getLogger().severe("Essentials hook failed");
					return;
				}
				if (BTM == null && !BTM.isEnabled()) {
					Bukkit.getLogger().severe("BungeeTeleportManager hook failed");
					return;
				}
				BungeeTeleportManager bTel = (BungeeTeleportManager) BTM;
				for (UUID uuid : ess.getUserMap().getAllUniqueUsers()) {
					User u = ess.getUser(uuid);
					Bukkit.getLogger().info("Exporting home of "+u.getName()+" to Database");
					try {
						Home home = new Home(uuid, u.getName(), "home", Utility.getLocation(u.getHome("home")));
						bTel.getMysqlHandler().create(MysqlHandler.Type.HOMES, home);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}			

this is a sample i've made for another plugin but i hope it works with HuskHomes too

Permission error for /back

players cannot use /back even though the huskhomes.back permission is granted: also effects huskhomes.back.death.

Allow for customization and coloring of the home/warp list format

[home] • [home] • [home]
Currently only the separator (' • ') can be edited but this string does not respect MineDown formatting.
It should be possible to customize the display of the [home] items and separators including their color through MineDown formatting.

Add option to enforce teleportation safety

Make /tpa, /tpahere, /back, /home teleport Event safe. What I mean? I mean that when a player teleports to a position, this has to be safe. For example: if a player gets into a end portal, then he types /back, the teleport position has to be out of the end portal. It helps to avoid the loop teleporting, also helps to avoid stupid nether portal traps. This option has to be configurable (so we can toggle on/off)
The second suggestion is for the HuskHomesGUI. Try to save to database the icon selected for the home. It would be helpful if you have a multi instance network

IllegalStateException thrown when teleporting to a world that is no longer available on server

[13:39:26] [Server thread/ERROR]: [HuskHomes] Task #83 for HuskHomes v2.2 generated an exception
[13:39:26] [Server thread/ERROR]: [HuskHomes] Suspected Plugins:
[13:39:26] [Server thread/ERROR]: [HuskHomes] HuskHomes{enabled,ver=2.2,path=plugins/HuskHomes-2.2.jar}
[13:39:26] [Server thread/ERROR]: [HuskHomes] Exception details below:
java.lang.IllegalStateException: The world "the_end" could not be found on the server; could not return location
at me.william278.huskhomes2.teleport.points.TeleportationPoint.getLocation(TeleportationPoint.java:78) ~[?:?]
at me.william278.huskhomes2.teleport.TeleportManager.teleportPlayer(TeleportManager.java:38) ~[?:?]
at me.william278.huskhomes2.teleport.TeleportManager.teleportPlayer(TeleportManager.java:30) ~[?:?]
at me.william278.huskhomes2.teleport.TeleportRequestHandler.lambda$startExpiredChecker$0(TeleportRequestHandler.java:197) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:100) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:469) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1393) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:402) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1302) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1023) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:179) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-36]
at java.lang.Thread.run(Thread.java:834) [?:?]

Velocity Support

It would be cool to have support for the Velocity Proxy
Is it possible?

HuskHomesGUI error: API fails to return values stored on database

⚠️ We are aware of an issue with the API preventing the HuskHomesGUI and Placeholders to possibly fail to work and cause console errors. ⚠️

This is due to the change made in the way the API is accessed in the previous version as it is now accessed through an instance meaning the database object is no longer initialized meaning when the API attempts to load objects from the database it fails and throws a NPE.

There are no known workarounds other than reverting to HuskHomes v1.6; we are working on an update to resolve this issue in the near future.

Huskhomes phome chat GUI does not escape formating codes

The base formating codes for the default game are used in the Chat GUI for the phones list (,to he assumed for warps GUI and Homes GUI too).

This leads to obfuscation, strike through, bolding etc when using certain characters in conjuction with symbols.

Allow warp from console

It'd be great to be able to warp players from console.

Syntax could be:

/warp <warp> <player>

Permission could be

huskhomes.warp.others

Event canceling

track making events cancellable again with high priority, example as that is currently breaking HT functionality too

Further info needed on what "breaking HT functionality" means so it can be added to HuskTownsDocs Tracker

Add support for having multiple clusters of servers on a bungee network

Add an option in config.yml that essentially acts as an identifier number for different server clusters (cluster_id)
This cluster ID would then be appended to each plugin message sent and when a message is received HuskHomes would check that the cluster ID matches, else ignore the message.
This could perhaps be extended to allow multiple clusters to use the same homes database by adding a field in the TeleportationPoint object and thus in SQL for cluster ID.
This would allow total separation of teleportation systems between clusters.

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.