Make use of the maven shade plugin's `minimizeJar` option to filter out
classes not explicitly mentioned, and use two artifact filters to
explicitly include classes used. Also removes the mysql driver check in
the main method as it is not necessary for this program to work.
When using blink, players are teleported away from other players
within a one block radius of them. However, if a player happens
to have the exact same position(only can occur when a player is
spectating them), division by 0 occurs, resulting in the player
being teleported to NaN, as any operation with NaN is also NaN.
To fix this, Blink now ignores players in Spectator mode. This
change could also address the hypothetical scenario where a
spectator is within the one block radius and results in a blinking
player getting teleported in a weird direction.
This adds a system whereby plugins can associate metadata with individual
damage events and then retrieve that metadata later from the CombatLog.
One example use case for this is Minestrike. Players are rewarded according
to the weapon that they used to kill another player, however the weapons
are frequently renamed. Minestrike can now associate a "gunType" key
to the name of the weapon used to kill the player, regardless of the skin
that the gun currently has applied to it.
This commit introduces a Component system focused around Games, which is completely
backwards compatible, as well as designed to be flexible enough for later improvements
such as dependency injection. Each GameState is associated with a phase of the
PhasedLifetime that each Game has. Components can be registered with a specific phased
or the entirety of the Lifetime. Refer to the javadocs for Lifetime and PhasedLifetime
for more details. Currently the main two Component types are ICommand and
ListenerComponent.
This commit includes the first refactoring into using this system, which is replacing
the Wizards minigame's usage of Miniplugin with a Lifetimed Component, allowing for
the shop to be appropriately registered and unregistered. This change allows for
Wizards to be run more than once on the same server instance. Previously, attempting
to register the Miniplugin twice would result in the minigame failing to start after
the initial registration.
This commit additionally includes slight refactoring within GameCreationManager as
required for the Lifetime system to function correctly. These changes ensure that
Games are only disabled once, whereas before they could be repeatedly disabled.
The previous implementation of disable(), along with the classes that override it,
functioned correctly despite being called several times.
Finally, this commit adds in changes to the pom to allow for unit testing.
Negative yaw values are considered valid in minecraft.
UtilShapes doesn't correctly handle negative yaw values
(throws an ArrayIndexOutOfBoundsException) so whenever
a player is facing east they're unable to activate Frost
Barrier.
This commit fixes the issue by allowing UtilShapes to take
negative values.
Currently players are unable to drop items if the held item
slot is below 5. This works fine when dropping items simply
by pressing q, but it often interferes with players dropping
items from an open inventory. This commit changes the check
to iterate over the first five slots and only cancel the event
if they're dropping one of them.
When using blink, players are teleported away from other players
within a one block radius of them. However, if a player happens
to have the exact same position(only can occur when a player is
spectating them), division by 0 occurs, resulting in the player
being teleported to NaN, as any operation with NaN is also NaN.
To fix this, Blink now ignores players in Spectator mode. This
change could also address the hypothetical scenario where a
spectator is within the one block radius and results in a blinking
player getting teleported in a weird direction.
This adds a system whereby plugins can associate metadata with individual
damage events and then retrieve that metadata later from the CombatLog.
One example use case for this is Minestrike. Players are rewarded according
to the weapon that they used to kill another player, however the weapons
are frequently renamed. Minestrike can now associate a "gunType" key
to the name of the weapon used to kill the player, regardless of the skin
that the gun currently has applied to it.
While the name of the gold items is "Golden X", the
name of the material is "GOLD X" resulting in gold items
providing no protective benefit other than the default
vanilla protection(in the case of there being only gold
armor).
This issue came down to two bugs with the explosions created
by Fireball and AnvilDrop.
The first was the damage being done. Settings the max damage
doesn't change the base damage, so they did the default amount
of damage based on the vanilla code.
The second was the radius of the explosion. The radius was
too small, and so it was perceived that only users directly hit
would suffer damage. The radius was increased, however the block
explosion size was kept the same.
This commit introduces a Component system focused around Games, which is completely
backwards compatible, as well as designed to be flexible enough for later improvements
such as dependency injection. Each GameState is associated with a phase of the
PhasedLifetime that each Game has. Components can be registered with a specific phased
or the entirety of the Lifetime. Refer to the javadocs for Lifetime and PhasedLifetime
for more details. Currently the main two Component types are ICommand and
ListenerComponent.
This commit includes the first refactoring into using this system, which is replacing
the Wizards minigame's usage of Miniplugin with a Lifetimed Component, allowing for
the shop to be appropriately registered and unregistered. This change allows for
Wizards to be run more than once on the same server instance. Previously, attempting
to register the Miniplugin twice would result in the minigame failing to start after
the initial registration.
This commit additionally includes slight refactoring within GameCreationManager as
required for the Lifetime system to function correctly. These changes ensure that
Games are only disabled once, whereas before they could be repeatedly disabled.
The previous implementation of disable(), along with the classes that override it,
functioned correctly despite being called several times.
Finally, this commit adds in changes to the pom to allow for unit testing.
Remove MAC
Add AntiHack Logging
Change thresholds, add notifs, move stuff around
Add warning if check does not exist
Handle multiple bans when ranked TWITCH+
Prevent punishment abuse
* origin/develop: (37 commits)
Implement new sales announcement system in Lobbies and ClansHubs, and remove old Unranked Player Manager
Fix SkyWarrior Kit
Undo my report changes
Set up support server with Thankful Chest tracking and Eternal Rank
Add Cake Mount and implement it in Thankful Chest
Use getName() instead of a String
Enable MountChicken with some small modifications and add it to Thankful Chest
Implement Thankful chest, patch Trick or Treat chest showing as purchasable, make SubscriptionDuration enum public and static, and create a Power Play Reward
Remove MCL and OITQP from the stats page
Take a second crack at fixing invisibility across Arcade and Clans
Properly block placement of redstone-based blocks in Clans
Fix Clans servers not restarting every night, display an uptime notification whenever Clans servers shut down for any reason, and remove unnecessary onDisables from the main ClansManager onDisable
Patch Frozen players in clans spawning CombatLog NPCs when leaving, patch ClansCommandExecutedEvent not always being called, clean up ClanBanner code, and make Freeze System and Nether Manager effectively block Clans Commands (particularly teleportation)
Fix game scoreboards breaking when given more than 15 lines and removed OITQ Payload from the server selection compass GUI
Patch Items with type FEATHER, BONE, or RAW_CHICKEN being automatically instantly removed, patch Carl the Creeper not viewing playwire as an available reward to inform players about, and patch Carl the Creeper not informing players of available rewards on Clans Hubs and Lobbies not included in the main server group
Fix HolidayManager being outdated
Update Enderchest endpoint location
Setup enderchest API
QA changes
More bugs
...
* remotes/origin/develop:
Set up support server with Thankful Chest tracking and Eternal Rank
Add Cake Mount and implement it in Thankful Chest
Use getName() instead of a String
Enable MountChicken with some small modifications and add it to Thankful Chest
Implement Thankful chest, patch Trick or Treat chest showing as purchasable, make SubscriptionDuration enum public and static, and create a Power Play Reward
Remove MCL and OITQP from the stats page
Take a second crack at fixing invisibility across Arcade and Clans
Properly block placement of redstone-based blocks in Clans
Fix Clans servers not restarting every night, display an uptime notification whenever Clans servers shut down for any reason, and remove unnecessary onDisables from the main ClansManager onDisable
Patch Frozen players in clans spawning CombatLog NPCs when leaving, patch ClansCommandExecutedEvent not always being called, clean up ClanBanner code, and make Freeze System and Nether Manager effectively block Clans Commands (particularly teleportation)
Fix game scoreboards breaking when given more than 15 lines and removed OITQ Payload from the server selection compass GUI
Patch Items with type FEATHER, BONE, or RAW_CHICKEN being automatically instantly removed, patch Carl the Creeper not viewing playwire as an available reward to inform players about, and patch Carl the Creeper not informing players of available rewards on Clans Hubs and Lobbies not included in the main server group
# Conflicts:
# Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java