Commit graph

495 commits

Author SHA1 Message Date
Norbi Peti 4d234cf832
Fix vanish player count and no crash on fast disable
#130
2020-10-26 21:16:08 +01:00
Norbi Peti 7866ddbe06
Config conversion 2020-10-26 20:01:00 +01:00
Norbi Peti fdcab1acb2
Fix LPInjector and player data stuff 2020-10-25 21:49:09 +01:00
Norbi Peti 40fe1093e0
Player data things, LPInjector update start 2020-10-25 01:59:10 +02:00
Norbi Peti d3ae53cd46
Merge pull request #131 from TBMCPlugins/dependabot/maven/junit-junit-4.13.1
Bump junit from 3.8.1 to 4.13.1
2020-10-14 19:48:25 +02:00
dependabot[bot] 67a66c0c44
Bump junit from 3.8.1 to 4.13.1
Bumps [junit](https://github.com/junit-team/junit4) from 3.8.1 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.13.1.md)
- [Commits](https://github.com/junit-team/junit4/commits/r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-13 06:37:54 +00:00
Norbi Peti a27a262858
LPInjector and mcchat fixes
Fixed LPInjector registering to the Core
Stop MCChatListener from having multiple active instances
MinecraftChatModule.state instead of all the flags
Showing MinecraftChatModule enable/disable on Discord
/discord reset --> restart
Wait for each shutdown message to send on shutdown (although it hasn't really been an issue so far)
This means using Mono<?> in a lot of places
Also added a contract (IntelliJ) to warn if not subscribed
Faking getOnlinePlayers() is unnecessary and causes too much trouble
Today's work
2020-10-10 00:29:21 +02:00
Norbi Peti ccc15aa048
Log exceptions using the plugin/component logger
And fix LPInjector loading multiple times / once
2020-10-09 00:10:36 +02:00
Norbi Peti 891be91d69
Fix some mcchat and a reset issue
Using ConcurrentHashMaps (#62)
Add custom /list to hide vanished players (#120)
Fixed /discord reset for non-Paper servers (#103)
2020-10-08 00:02:49 +02:00
Norbi Peti 56d13ebf9f
Update to Discord4J v3.1.1
It wasn't as complicated as I expected
2020-10-07 22:27:20 +02:00
Norbi Peti 7cebb74835
Switch back to mocking
The ByteBuddy solution complains about adding/removing fields
But making a delegating mock maker is easy enough
2020-10-07 20:09:35 +02:00
Norbi Peti 3f2fa286fb
Attempt to use ByteBuddy directly for ServerWatcher 2020-10-07 00:52:59 +02:00
Norbi Peti beae6e6ce0
Config and such 2020-09-12 01:54:45 +02:00
Norbi Peti cd2132ba45
Fix ServerWatcher, mcchat works 2020-09-11 22:27:22 +02:00
Norbi Peti 666f05ff12
Attempts at mocking the server, fixes 2020-09-11 01:20:12 +02:00
Norbi Peti d784d8b1e2
Fix /mcchat not using the configured prefix 2020-09-07 01:09:39 +02:00
Norbi Peti 3ee1eb3dec
An even smaller fix could go an even longer way 2020-08-31 23:55:46 +02:00
Norbi Peti 80a0312b1f
Role color config, removed role debug, role fixes 2020-08-30 02:23:21 +02:00
Norbi Peti 6bf91afab9
Fixes, fix vanilla command handling on 1.16
And on unsupported versions too
2020-07-31 01:43:02 +02:00
Norbi Peti 6b60135867
NorbiPeti has completed the challenge [Bullseye]
Using the custom event to detect player /stop as now restarts can come from there too (btw it defaults to stop unless a command is ran)
Added support for advancements in 1.16:
- Now each player gets effectively a reference to the player list for advancements, and since I simply call the method on the original object, it will pass that on, instead of my mock
- I tried calling the method that sends the reference on the mock in that case, but that just results in Mockito's version being called which means infinite recursion or something like that (I didn't get a StackOverflowError actually but the server didn't respond)
- I tried implementing the method myself but actually I never tested it because at that point I was convinced I can call the original the right way
- I had an educated guess that the mock is a subclass of the original class, so I just need to call super.method() right?
- But how do you call that reflectively? Apparently Method.invoke() will always respect overriden methods; but thanks to StackOverflow I found out about MethodHandles, and it has the perfect thing I need, findSpecial / unreflectSpecial
- Only problem is, kind of like how you can only use super.method() inside the class, you can only use the 'special' methods inside the class... So how could I make it run inside the mocked class? I have no idea since I can only supply an Answer object which has no connection to it, but apparently all the lookup() method actually does is call a constructor with the caller's class - so let's call the constructor! Which is, of course private
- So now I have a reflection call creating a Lookup object which can get a handle to the method without checking any overrides and then using that handle to call the original method with the 'this' parameter being the mock
#128
2020-07-30 01:54:58 +02:00
Norbi Peti 50500e87b9
Component logging and toggle for vanilla cmds
Config option to enable or disable vanilla command support in mcchat
2020-06-30 00:47:46 +02:00
Norbi Peti ce71ff2dd6
Add support for 1.16, mostly 2020-06-27 03:02:32 +02:00
Norbi Peti 4ecd32f0ad
Update D4J and fix LuckPerms support 2020-05-27 15:45:14 +02:00
Norbi Peti a9c71a3384
Possibly fix the Minecraft role bug
So it seems like there is a Minecraft role in another server as well
#95
2020-04-08 11:52:21 +02:00
Norbi Peti cce7f59f4a
Fix issue with VanillaCommandListener on <1.15 2020-04-08 00:13:19 +02:00
Norbi Peti b484fe6f64
Fix vanish player update
There's still no message on vanish so it can be figured out from the chat history
2020-03-20 02:02:37 +01:00
Norbi Peti 50cc0c8e61
Use reflection for VanillaCommandListener
Moved error handling to the wrapper
Fixed commands on Discord getting executed even if the preprocess event got cancelled
2020-03-15 23:55:02 +01:00
Norbi Peti 1b747ab99f
Use command channels and fix dependencies 2020-03-15 03:10:27 +01:00
Norbi Peti 45a1ba4fe1 Refactor DC->MC into more methods, remove channel handling
The permCheck won't be used for chat commands, needs fixing
2020-03-11 12:35:23 +01:00
Norbi Peti 037ec3b9dd Use VCL14 for 1.15, player sender mock
Using VanillaCommandListener14 for 1.15 as well
Using a mock for the DiscordPlayerSender too, to reduce the amount of code
Made the mocks stub-only, which should lower memory usage
2020-03-11 12:00:20 +01:00
Norbi Peti 454265cd6f Update player list on (un)vanish
#120
2020-02-18 17:18:17 +01:00
Norbi Peti ffdf5a2f18 Fix custom chat PL update NPE (#124) 2020-02-17 13:02:15 +01:00
Norbi Peti 1fa2635317 Set up GitHub Releases deploy
TBMCPlugins/ChromaCore#76
2020-02-10 12:56:48 +01:00
Norbi Peti d58a7e819a Some documentation and updates 2020-02-05 16:49:07 +01:00
Norbi Peti 26971459ac Rename 2020-02-04 17:44:59 +01:00
Norbi Peti 940b601061 Fixed custom chat player list update
The problem was that for some reason I created a field that was already present in the parent class and it just happened to be pretty much never used before the PL update
Also updated EssentialsX dependency
2020-02-03 13:20:38 +01:00
Norbi Peti bcd7f7b810
Merge pull request #123 from TBMCPlugins/dev
Fixed many issues, default config values, improvements
2020-02-01 20:15:57 +01:00
Norbi Peti de07503bc3
Documentation, split messages that are too big
#122
Removed some default values
Disallowing MC commands that could error when not loaded (#121)
Other fixes
2020-02-01 19:10:13 +01:00
Norbi Peti bdb7381ab4
Finished some issues
Fixed join messages appearing in addition to custom ones (#119)
For real this time
Not saying the game role color is the default one (#118)
Fixed role listing (#80)
2020-01-18 03:54:17 +01:00
Norbi Peti 703f1f8cd5
Finished some of the half-completed issues and others
Processing custom emotes (#48)
Made role listing fancier (#80)
Trying to reload config before reset (#113)
Allowing /discord reset if the login fails, clarified how to get a token (#111)
2019-12-27 23:45:49 +01:00
Norbi Peti b481bb0aa9
Fixed join msgs, vanished players in desc. and others
Update D4J
Fixed join messages appearing when they shouldn't (#119)
Only showing players who can see the channel (#91)
Fixed vanished players appearing in the channel descriptions (#120)
2019-12-27 21:14:52 +01:00
Norbi Peti 3a94b6191b
Update D4J and some bugfixes
The update fixes the numerous errors about a missing status constant
Remove test check (#114)
Improvements and checking for admin permission (#115)
It also checks for channel perms now
2019-11-28 00:16:58 +01:00
Norbi Peti 19463963e3
Make channels default to 0, profile URL config
Fix URL not-escaping
Made the plugin only attempt to access channels that are not set to 0
#110
2019-11-16 01:52:49 +01:00
Norbi Peti 02f60c2162
Fix client ID race condition, attempt to fix URL escaping 2019-11-07 00:21:58 +01:00
Norbi Peti 30e2da094a
Merge pull request #108 from TBMCPlugins/dev
1.14 support, better error handling
2019-10-30 19:43:30 +01:00
Norbi Peti 0e4a9ff7e0
Merge branch 'master' into dev 2019-10-30 19:41:29 +01:00
Norbi Peti 9caf4c54ed
Fixed that last error
#106
2019-10-30 15:05:31 +01:00
Norbi Peti 98ee2ce771
Fixed the MassiveCore error but there's more
#106
2019-10-27 23:27:54 +01:00
Norbi Peti 73fc4aedcc
Fixed DCP inventory, have no idea about MassiveCore
Essentials error is fixed
#106
2019-10-27 02:33:13 +01:00
Norbi Peti 88c1d100e9
Using parent & hopefully fixed #109 2019-10-23 02:40:34 +02:00