Commit graph

238 commits

Author SHA1 Message Date
Lucas Nicodemus
96468871a0
Merge branch 'general-devel' into 1.4 2020-05-17 11:14:42 -07:00
Lucas Nicodemus
1993900159
Move OnTileEdit ban checks: Bouncer -> Itembans
This change moves the ban checks used to determine, during TileEdit
events, if an item is banned, out of Bouncer and into the newly isolated
ItemBan subsystem. Rather than creating a large pull request for all of
these, I'm just going to create a series of commits and send them in one
at a time. This should result in about one PR per hook that uses item
bans that needs to move.
2020-05-16 21:50:28 -07:00
Lucas Nicodemus
b5f95d5918
Fragments: Separate out item bans (#1595)
* Remove commented out warning disable

* Add initial ItemBans segregation infrastructure

* Add shell for initial OnSecondUpdate stuff

* Add comments yo

* Remove duplicated logic

* Split out more item ban code

This part of the fragments work is primarily aimed at reducing the
complexity of OnSecondUpdate in TShock and moving that check out into
the ItemBans subsytem.

Of major note in this is the removal of "check", which was a string
variable that tracked state and replacement of many of the item ban
activities with sane private methods that are at least somewhat
sensible. Obviously there's a lot to be desired in this system and I'm
really going for a run here by trying to continue a branch from so long
ago that I barely even remember the whole point of existence.

Still to do: GetDataHandlers related item ban code needs to be moved
into its own hook in the ItemBan system. Finally, there is a downside to
some of this: we're basically iterating over players again and again if
we keep this pattern up, which is kinda lame for complexity purposes.

* alt j: comment changes

* Move item ban check out of main playerupdate check

Separates out item ban logic from the rest of GetDataHandlers so that
item bans is more isolated in terms of what fragments is asking for.

* alt-j: convert indentation to tabs

* alt-j: fix botching source code

* Move item ban related chest checks out of gdh

* Remove chest item change detection from item bans

It doesn't do anything. If a user removes an item from a chest, it
bypasses this check. If a user adds an item to a chest, the server seems
to persist the change anyway, even if the event is handled. That's a bug
for sure, but fundamentally, it's not the item ban system's fault.

* Revert "Remove chest item change detection from item bans"

This reverts commit 758541ac5c4d4096df2db05ba2a398968113e1e4.

* Fix logic issues related to item ban handling

Re-implements chest item handling and correctly handles events and
returns after setting handled event state.

* Remove TSPlayer.HasProjectilePermission

In infinite wisdom, it turns out this is not a good method for TSPlayer
to have. It just checks the states of things as per what the item ban
system says is banned and then creates implicit relationships to the
projectile ban system.

Doing this effectively knocks down another external reference to the
item ban system outside of the context of the implementation for the
system itself and its related hooks.

This commit also adds context around what the heck is going on with some
of our more interesting checks as per discussions in Telegram with @Ijwu
and @QuiCM.

* Update changelog

* Remove useless ref to Projectile.SetDefaults

* Change item ban to ban based on ID not strings

I think I was so confused as to why we were passing strings everywhere
that I just felt inclined to continue the trend in previous commits.
2020-05-16 16:27:34 -07:00
Lucas Nicodemus
76150e2500
Provide warning message on invalid group command
This fixes #1742 where users could run group commands that didn't exist
and the server would silently fail rather than giving an error.
2020-05-13 21:10:01 -07:00
Chris
db0fcbd30b Update changelog 2019-04-01 13:35:53 +10:30
Lucas Nicodemus
ae2056ae83
Merge branch 'general-devel' into update-sqlite-binaries 2019-03-31 13:14:16 -07:00
Lucas Nicodemus
abe67c9fa0 Update changelog 2019-03-31 13:12:37 -07:00
Chris
9b75342bff
Merge branch 'general-devel' into player-data 2019-03-30 13:58:19 +10:30
Chris
f3627bb45a
Merge branch 'general-devel' into fix-1653 2019-03-30 13:52:25 +10:30
Lucas Nicodemus
f3e33b7ad7 Remove the stat tracker
The stat tracker has been offline for the last several weeks/months and
nobody has done anything to fix that. Because of that, GDPR, and the
fact that we haven't used it, we're discarding it.
2019-03-29 17:46:44 -07:00
Tyson Strange
dbf9264d12 update change log 2019-02-03 17:19:52 +10:00
Chris
550967b430
Merge branch 'general-devel' into player-data 2018-12-24 13:57:10 +10:30
Chris
10d7a4f35b
Update CHANGELOG.md 2018-12-24 13:56:47 +10:30
AxeelAnder
b2033d9eac update changelog 2018-10-25 22:10:33 +08:00
Rodrigo Rente
944cac1fd3
Update CHANGELOG.md 2018-10-21 20:12:59 +01:00
AxeelAnder
bcbea04002 update changelog 2018-10-20 18:29:11 +08:00
Rodrigo Rente
659e1ebd61
Update CHANGELOG.md 2018-10-15 15:20:21 +01:00
Lucas Nicodemus
ce6dc577cb Reorder changelog for consistency 2018-10-04 07:49:37 -07:00
Lucas Nicodemus
2a5e19da39
Merge branch 'general-devel' into player-data 2018-10-02 20:37:56 -07:00
Chris Nord
207925ddf1 Update Manager now uses TLS.
Solves issue #1633
2018-10-02 16:35:46 -07:00
Ruby Rose
e8cf8879f4 added changelog entry 2018-09-23 14:33:41 +03:00
Lucas Nicodemus
16ec98f684
Merge branch 'general-devel' into player-data 2018-06-08 09:50:15 -06:00
Chris
b70ecb5bc3
Merge branch 'general-devel' into fix-time 2018-05-29 02:31:11 +00:00
Chris
1de7b08486
Merge branch 'general-devel' into banbanban 2018-05-29 02:26:06 +00:00
Hussein Farran
851cc7b34c
Merge branch 'general-devel' into fix-time 2018-05-28 21:25:46 -04:00
Chris
beb0a5ce0d
Update CHANGELOG.md 2018-05-23 11:55:26 +09:30
Chris
dd00d74eff
Update CHANGELOG.md 2018-05-23 11:54:25 +09:30
Chris
dcb6f23771
Update CHANGELOG.md 2018-05-23 11:53:05 +09:30
Chris
eabb0a34bb Changelog 2018-05-22 18:58:13 +09:30
Egor
a21eb31438 Update changelog 2018-04-27 20:11:43 +03:00
Egor
1eae5ae671 Remove TSPlayer.InitSpawn 2018-04-27 08:41:57 +03:00
Egor
9ac3dfa228 Make Kick/BanOnMediumcoreDeath behave like their Hardcore equvivalents
fixes #1618
2018-04-27 05:44:22 +03:00
Lucas Nicodemus
3f58274ef4 Remove the stat tracker
The stat tracker has been offline for the last several weeks/months and
nobody has done anything to fix that. Because of that, GDPR, and the
fact that we haven't used it, we're discarding it.
2018-04-19 18:22:52 -06:00
Ziteng Wang
6266b47fb3 Fix tile entity placing 2018-02-18 16:35:26 -08:00
Lucas Nicodemus
a5cad284a8 Revert "Remove Utils.ActivePlayers"
This reverts commit b613fdcda6.
2017-12-31 01:28:21 -07:00
Lucas Nicodemus
cb2ed84038 Revert "Add TSPlayer.ActivePlayers"
This reverts commit 17cfdc3a16.
2017-12-31 01:25:05 -07:00
Lucas Nicodemus
17cfdc3a16 Add TSPlayer.ActivePlayers 2017-12-31 01:13:03 -07:00
Lucas Nicodemus
4eebaf6c44 Rename methods that were ambiguous in meaning.
This renames some methods in the Utils class to better reflect what they
do or what they provide back. It should be clearer what these methods
are for now than before.
2017-12-29 08:50:48 -07:00
Lucas Nicodemus
332e6b2518 Remove Utils.GetGroup().
This method duplicates Groups.GetGroupByName().
2017-12-29 08:45:29 -07:00
Lucas Nicodemus
3ac52091ea Move SendFileToUser to TSP.SendFileTextAsMessage.
This is not a great method, but it's actually the only method in TShock
that interpolates the %map% and %players% variables and it used in at
least three places in the codebase. Since it's already so specialized,
it's not worth changing it to take an actual File object, in my humble
opinion.

This also clarifies what the method does and what makes it special, as
opposed to being fairly generic.
2017-12-29 08:40:44 -07:00
Lucas Nicodemus
17d151b8f8 Move HasBanExpired to Bans.RemoveBanIfExpired().
The ban system needs a full rewrite anyway, but this move removes
something from Utils, puts it closer to its operating point, simplifies
the method, and clarifies what it actually does.
2017-12-29 08:32:45 -07:00
Lucas Nicodemus
f06d1fd238 Remove Utils.GetPlayers().
This is a public method that only has two uses in TShock and both of
them are listing players to a player. A foreach isn't rocket science and
this method was originally created just because there was no good object
to iterate on (e.g., a TSPlayer array).
2017-12-29 08:26:51 -07:00
Lucas Nicodemus
48393d60c7 Move SendMultipleMatchError to TSPlayer.
This is a great method for a player to have and not for the Utils class
to have.
2017-12-29 08:15:04 -07:00
Lucas Nicodemus
152c67f27c Move Utils.Ban -> TSPlayer.Ban.
Arguably, this is one of the more controversial methods that's being
kept. Because it kicks and bans a target player, it's more useful than
removing it and requiring people to interface with the TShock Ban
Manager directly (not a good move for the future). Whether or not this
method sucks is up for debate, but right now I think it's totally fine
to keep it around in a different location.
2017-12-29 08:00:30 -07:00
Lucas Nicodemus
a5a3aae599 Remove Utils.GetPlayerIP() 2017-12-27 19:29:45 -07:00
Lucas Nicodemus
f74a0f6a70 Merge remote-tracking branch 'origin/general-devel' into oop 2017-12-27 19:03:03 -07:00
Lucas Nicodemus
2f7c146c89 Merge remote-tracking branch 'origin/general-devel' into oop 2017-12-27 19:01:38 -07:00
Chris
cd27a981cb
Merge branch 'general-devel' into old-code 2017-12-28 01:55:22 +00:00
Lucas Nicodemus
fc689dbbc5 Remove TSPlayer.KickAll
" Ivan - Today at 6:20 PM
@ ハクサロ wouldnt TSPlayer.All.Kick() do the trick?"
2017-12-27 18:21:16 -07:00
Lucas Nicodemus
8301d6a6f3 Remove Utils.ForceKickAll; add TSPlayer.KickAll. 2017-12-27 18:07:28 -07:00