Commit Graph

62 Commits

Author SHA1 Message Date
3cde87ab86 OnClientInputEventHandler:
- Fixed passing the wrong value into checking if the screen is allowed for each monitored key.
2022-10-24 03:36:06 +01:00
ff22422492 OnClientInputEventHandler:
- Added more comments.
- Renamed variable isHotbarPressed to isHotBarPressed.
- Extracted checking if the screen is allowed into its own method.
- Extracted updating last input tick and sending an InputPacket into its own method.
- When a monitored key is pressed, it now checks if the screen along with the key are not allowed before calling updateAndNotify().

All of the above changes fixed the issue of being able to close inventory while afk when inventory is not allowed along with clicking the button to unpause the game ending the "Joining" and "AFK" states.
2022-10-20 23:41:51 +01:00
6b93b32ce6 InputPacket: Instead of checking for any state other than ACTIVE, it will check for the JOINING or AFK state before updating the state. 2022-06-08 12:51:43 +01:00
4c4addc7ef OnLivingSetAttackTargetEventHandler: Checks for new grace states before cancelling event. 2022-06-08 12:50:43 +01:00
592fb79519 OnPlayerDamageEventHandler: Removed old grace period time remaining check. 2022-06-08 12:49:24 +01:00
f0e0b6a458 Event Handlers: added some whitespace. 2022-06-07 15:59:25 +01:00
8a4b4ec5bc ProtectedPlayerManager: State changes.
- Updated updateState method to fit in all current config options as well as the new grace states.
- Added Javadoc to startAfkTimer method.
- Removed old todo comments.
- Removed unnecessary state check in the afk timer task.
- Renamed startGracePeriod method to startGraceTimer. Added delay parameter. Updated Javadoc. Removed old grace period time initialization in the protected player. Rewrote the timer task to now just update the player state after the delay.
- Removed unnecessary check at the end of applyPostEffects to remove player if afk is disabled. This is now done in the updateState method.
2022-06-07 14:35:12 +01:00
187eebee4a ProtectedPlayer: Grace period changes.
- Removed old way of tracking how much time is left in the grace period.
- Added delay parameter to the setGracePeriodTimerTask method.
- Added two new States: LOGIN_GRACE and AFK_GRACE.
2022-06-07 14:29:30 +01:00
0af7bba7e8 Updated Config.
- Removed old config options for the grace period and replaced them with separate options for a grace period after login and after afk.
- Changed naming convention for config file sections.
- Renamed config options IGNORE_PLAYER_ENABLED to MOBS_IGNORE_PLAYER.
- Added new config option for applying post effects after login.
2022-06-07 14:27:03 +01:00
e33ab62b63 Changed setLastInputTick method in Client Proxy to a simpler updateLastInputTick method which doesn't need a parameter since it was only ever passed one value. 2022-06-06 13:12:29 +01:00
0744bd064a Updated RequestLastInputTickPacket.
- Removed unnecessary default constructor.
- When handling the packet the client will first check if input is allowed which should update the last input tick if needs be before sending it to the server.
2022-06-06 13:06:27 +01:00
e030d67be7 Rewrote OnClientInputEventHandler.
It now keeps track of whether any of configurable keys is pressed in or not. It also will now check whether any of the pressed keys are allowed or not before updating last input tick and sending an input packet. This was done to fix the issue of GLFW_REPEAT stopping after another key is typed. This will prevent a player from going afk while still moving after jumping etc.
2022-06-06 13:04:52 +01:00
27acfd0806 Removed unnecessary constructor. 2022-06-05 16:18:01 +01:00
7a6c8f4cef Created a new packet for sending the last input tick to the server and deciding whether the player is afk or not. 2022-06-05 13:50:43 +01:00
cd98b0c811 Created new packet for requesting the last input tick from a client. 2022-06-05 13:50:05 +01:00
a440fcc1ab Removed OnPlayerTickEventHandler and added client-sided last input tick field with getter and setter to proxy. 2022-06-05 13:49:17 +01:00
1931f491a0 ProtectedPlayerManager adjustments and AFK timer.
- No longer adding a player that might not exist to then instantly remove them if they don't.
- Updated method calls to match new ones in ProtectedPlayer.
- Updated packet names to new ones.
- Grace period timer no longer cancels the timer but itself instead.
- Created new method for starting the afk timer for a player, starting a new afk timer whenever a player becomes active.
2022-06-05 13:47:36 +01:00
f46109e1cb Changed ProtectedPlayer's timers.
-Removed lastInputTick field along with the getter and setter.
-Changed timer name and added two TimerTask fields for the grace period and afk.
-Changed the getter for the timer.
-Added new setters for both of the timer tasks.
2022-06-05 13:41:10 +01:00
9f30820391 Changed packet names of existing packets. Registering two new packets to be made. 2022-06-05 13:38:12 +01:00
42a0e6f240 Moved to new package for server to client packets. Renamed ServerPlayerStatePacket to PlayerStatePacket. 2022-06-05 13:35:17 +01:00
452b772127 Moved to new package for client to server packets. Renamed ClientInputPacket to InputPacket. 2022-06-05 13:34:51 +01:00
ceff99c81c Additionally, checking if player is active and afk protection is enabled before setting player as afk. 2022-05-24 02:19:35 +01:00
1a10094c9f Fixed client not sending input packets when the key is not allowed. 2022-05-24 02:17:51 +01:00
3ad8b7b212 Created mixin config. 2022-05-24 02:16:56 +01:00
a204f7ac56 Created initial mixin for drawing the state text on screen. 2022-05-24 02:16:35 +01:00
962749cfae Added mixin support. 2022-05-24 02:16:07 +01:00
4c74718880 Registering new player tick event handler. 2022-05-24 00:30:59 +01:00
52287f3f49 Created player tick event for setting player to afk. 2022-05-24 00:30:45 +01:00
1dc206fe91 Setting last input tick of a player when a player becomes active. 2022-05-24 00:29:39 +01:00
49ca0fe465 Added a field, getter and setter for the last tick a player inputted anything. 2022-05-24 00:28:53 +01:00
fa9cba99bb Lowered limit for the afk time threshold option as it needs to be converted into ticks later. 2022-05-24 00:26:27 +01:00
0f1950b5cd Fixed damage event not cancelling when it should. 2022-05-24 00:00:46 +01:00
acc48922b1 Fixed net and mod version patterns being incorrect. 2022-05-24 00:00:14 +01:00
7de5416692 Sending player state to the client when added to protected players. 2022-05-23 23:59:40 +01:00
1976e54424 Updated to use new ProtectedPlayerManager and new config options. 2022-05-22 03:18:34 +01:00
084d2caa25 Removed event handler for player tick since grace period is done with timers now. 2022-05-22 03:17:35 +01:00
d6d8034311 Renamed and reworked the OnClientInputEventHandler to prevent pointless packets from being sent and for it to work with the afk allowed keys too. 2022-05-22 03:16:58 +01:00
8918f523d1 Registered new player state packet. 2022-05-22 03:16:01 +01:00
9093966c07 Created new packet for sending the player state to the client. 2022-05-22 03:15:47 +01:00
b69fd80c5d Removing player from protected players if afk protection is disabled after applying effects and when the grace period runs out. Sending player state packet to player when it gets updated. 2022-05-22 03:15:09 +01:00
fe1434478b Added player state field with getter and setter to the Client Proxy. Registering events. 2022-05-22 03:13:38 +01:00
9c2a11d312 Removed old network channel. 2022-05-21 21:17:19 +01:00
fd89f13a99 Registered the ClientInputPacket. Added method to get the channel. 2022-05-21 21:16:57 +01:00
a9086486fa Renamed and reworked C2SKeyPress packet class. 2022-05-21 21:16:11 +01:00
1c260166f2 Removed Registration class. 2022-05-21 21:15:20 +01:00
0ba8806cd6 Removed old initialization of the protected player manager. Added methods for creating a resource location and getting the mod version. 2022-05-21 20:59:44 +01:00
894a108c78 Initializing the protected player manager whenever a server is started. This should help prevent any unwanted remnants from another server to be present on other servers. 2022-05-21 20:58:58 +01:00
af189737dc Renamed and rewrote the manager for protected players. Most protected player logic should now be handled by the manager. 2022-05-21 20:57:32 +01:00
a20da22703 Rewrote the ProtectedPlayer class. 2022-05-21 20:56:28 +01:00
9bf6bd6dce Created a network manager for better implementation of network related content. 2022-05-21 20:55:46 +01:00