TownyAdvanced / TownyFlight

Flight plugin for Towny servers.
https://townyadvanced.github.io/
Other
23 stars 17 forks source link

Suggestion: remember user flight intent #86

Open MilesBHuff opened 1 month ago

MilesBHuff commented 1 month ago

A common pain point for users is that town flight, after disabling due to the user leaving a flight area, does not automatically re-enable upon the user's return to that area. This makes working along the edges of a town very tedious. However, the simple "solution" of having flight always re-enable upon entering a flight zone can cause problems too.

Thankfully, I have an idea that should get the best of all worlds: make it so that /tfly also changes the player's flight intent. If the player's flight intent is "on", then anytime they enter a flight zone, their fly should be enabled. If the player's flight intent is "off", then things will work as now.

Basically: In addition to changing whether fly is currently enabled, /tfly will also change a new boolean that determines which flight should auto-enable when possible. Here is a list of possible scenarios:

Possible additions to this base feature could be the addition of the following two subcommands for /tfly:

Additionally, it might be beneficial to add a new setting to control whether autoflight is on or off by default for players with /tfly permission that have yet to run the /tfly command.

LlmDl commented 1 month ago

Can I see your townyflight config?

MilesBHuff commented 1 month ago

Oh. Huh. There's an auto_Enable_Flight setting, and ours is set to 'true'. Let me re-test this with a player, and get back to you. If this turns out to be a mis-report, then I apologize for the trouble. Though, I guess the idea laid-out in this ticket is still a new feature relative to the current implementation, which is a server-wide default instead of a per-user default.

Anyways, here's the config file, as requested:

options:

  # If set to true, players entering their town will have flight auto-enabled.
  # When set to true, the plugin will use slightly more resources due to the EnterTown listener.
  auto_Enable_Flight: 'true'

  # If set to true, players entering their town will have flight auto-enabled without being notified in chat.
  auto_Enable_Silent: 'false'

  # If set to false, players can still fly in their town while war is active.
  disable_During_Wartime: 'true'

  # If set to false, TownyFlight will not prevent combat of flying people.
  disable_Combat_Prevention: 'false'

  # The list of areas which allow tempflight, allowed words: owntown, nationtowns, alliedtowns, alltowns, trustedtowns, wilderness
  tempflight_allowed_areas: owntown,nationtowns,trustedtowns

  # If set to false, the language.noPermission message will not display the permission node.
  show_Permission_After_No_Permission_Message: 'false'

  # Number of seconds after leaving an allowed flight area before flight is taken away.
  # Set to 0 to take flight away immediately.
  flight_Disable_Timer: '3'

It seems there's also a disable_Combat_Prevention setting. Apparently, I should have though to look back over the config file before filing these tickets. Erm, sorry. I've closed TownyAdvanced/Towny#7504, but I did have a question about how disable_Combat_Prevention works; I left this question in the closing comment of that ticket.

LlmDl commented 1 month ago

auto_Enable_Flight: 'true' should be re-enabling their flight automatically already, but you say that it is not?

If the pain comes from them moving in/out of the same town rapidly, increasing the flight_Disable_Timer time would be a good idea.

MilesBHuff commented 1 month ago

I tested this briefly with one player and it worked correctly; but I didn't control for length of time outside of town. I will test again, this time testing both the case where they are outside of town long-enough to fully lose flight, as well as the case where they re-enter before the cooldown is over. It's possible that things lie in this difference. I will also ask them to confirm whether they have flight enabled when they log in while in a town. If all of these work, then I'm not sure why some players were having issues; it may well be that they were just misunderstanding how TownyFlight works, and were reporting it in a way that I understood to be something other than what was actually happening.

MilesBHuff commented 1 week ago

I tested again with some players. Entering/leaving town always works as intended; what doesn't is going through portals. So going into the Nether via a portal from a town to an outpost there removes flight.

LlmDl commented 1 week ago

Yes I could never get this to hold on to their flight when they cross worlds. Something automatically removes it.