TShock
TShock copied to clipboard
Strip commands from TShock
Hijacked by @nicatronTg. This is the list of potential commands to be stripped out of TShock in TShock 5.
- [ ]
/annoy
- [ ]
/confuse
- [ ]
/rocket
- [ ]
/firework
- [ ]
/invade
- [ ]
/clearangler
- [ ]
/expert
- [ ]
/bloodmoon
- [ ]
/grow
- [ ]
/dropmeteor
- [ ]
/eclipse
- [ ]
/forcehalloween
- [ ]
/forcexmas
- [ ]
/fullmoon
- [ ]
/hardmode
- [ ]
/sandstorm
- [ ]
/rain
- [ ]
/settle
- [ ]
/wind
- [ ]
/time
- [ ]
/kill
- [ ]
/heal
- [ ]
/godmode
- [ ]
/slap
- [ ]
/rules
- [ ]
/[item|proj|tile]ban
[ideally third party plugin or separate gizmo plugin] - [ ]
/home
- [ ]
/me
- [ ]
/party
- [ ]
/whisper
&/reply
This will involve
- Moving commands from TShock over to plugins
- Moving API-like features from TShock to a middleman plugin. API-like features include:
- Users
- DataHandlers
- More that I may edit in at a later date when I remember them
I've gone through and added a preliminary list of things I think should be removed from TShock 5. I basically think the following types of commands should be removed:
- One shot commands that do very specific things.
- Functionality that TShock provides the bare minimum and nothing more of.
I kinda think that it might be worth opening a separate repo for a "Gizmos" plugin that re-adds some of the most useful commands, but I don't think anyone will really care about removal of /annoy
.
I'm looking for feedback on some if not all of these removals. Ideally, when TShock 5 launches, players will be able to download a package that maintains 1:1 functionality offered by TShock, even if that's through TShock + Gizmo + Essentials.
Perhaps dump all commands from tshock into a list and just mark which ones need to be moved to gizmos and just start accepting PR's for each command ?
I would like feedback on the above list @NyxStudios/tshock so we can start working on a gizmo plugin of sorts on the side so that migrating tshock and gizmo will be simpler in the long run. Might be pre-TShock 5 to have gizmo + tshock but overall easier to maintain codebase.
All of the above can be removed
EDIT: and probably more, I will look in a bit
Got it. Will wait on you to give go-ahead.
I propose the following can also be removed:
- [ ]
/[item|proj|tile]ban
(export to something else) - [ ]
/home
- [ ]
/me
- [ ]
/party
- [ ]
/whisper
&/reply
I think the *ban commands should be a separate separate plugin, i.e., not in gizmo but handled outside of Nyx. The rest all seem fine for general crap that can go in gizmo instead of TShock.
@WhiteXZ do you in general agree with the idea of a plugin like gizmo that contains these random commands that we distribute?
Yep, potentially multiple plugins that group similar functionality
Cool, in that case, I think stripping these earlier rather than later is a good plan. It gets us progress towards TShock 5 because we can start porting easy stuff as it comes.
Created shell repo @ https://github.com/NyxStudios/Gizmos.
Is the plan multiple .csprojects in one gizmo solution or multiple gizmo solution and repos?
I think just for simplicity with automating builds and development, it should be multiple .csprojects in one gizmo solution in one repo.
Can one of them be called Doo-dads ?
Maybe we can internally stick some junk like /annoy
in the doo-dads one. :p
I think the next step is to make logical groupings for the commands so we know how many gizmos we have.
I agree,
- [ ] World Commands (grow, drop meteor, weather)
- [ ] Time (time, moon phases)
- [ ] Game (hardmode, expert, butcher)
- [ ] Player (godmode, heal, tp, home, me)
- [ ] Comms (whisper, party chat)
- [ ] Fun (Do-dads, annoy slap, rocket, confuse)
Could be a potential split.
I'd like to point out that some of the commands listed for removal are vanilla commands (/me, /p, I doubt /whisper is), but TShock's chat handling is currently killing them so we're just reinplementing them ourselves. This doesn't mean we cannot do the same a second time, it'd just be a feature regression if they don't run the plugin.
@Enerdy if they're vanilla commands, I actually see little to no reason why we even need to reimplement them in TShock. The reason why they're here is because they were created pre-vanilla commands.
I think the reason for it was to maybe tie them to a permission? My thought. Maybe Enerdy has more reasons. :D
Well, I mean, I can tell you straight up that, since TShock predates dedicated servers, it definitely predates the dedicated server's command handling for commands in the early days.
Working with @DogooFalchion, we're going to be moving commands into the Gizmos repo and removing them in the gizmo-plugin-removal
branch.
Would like to point out that /bloodmoon and /fullmoon have been successfully replaced with /worldevent in 4.4.pre3. Tested fullmoon, working perfect in TShock 4.5.4.