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
* Added chickens to Holiday Manager (Thanksgiving)
Added TextEffect
Moved all the effects to a different package to make it easier to find
Added method in Effect to get the Effect Location
* Removed(?) wildcard import
* Testing New year thing
Added some symbols to UtilBlockText
* Allow multiple pets with the same EntityType
* Added Stray Morph
Added Shulker Pet
Added code for a possible new year effect
Added Metal Man Morph to the menus
Added Metal Man Morph as an yearly bonus for PPC subscriptions
* Added chickens to Holiday Manager (Thanksgiving)
Added TextEffect
Moved all the effects to a different package to make it easier to find
Added method in Effect to get the Effect Location
* Removed(?) wildcard import
* Testing New year thing
Added some symbols to UtilBlockText
* Allow multiple pets with the same EntityType
* Added Stray Morph
Added Shulker Pet
Added code for a possible new year effect
Added Metal Man Morph to the menus
Added Metal Man Morph as an yearly bonus for PPC subscriptions
* I seriously don't remember what is in this commit, I'm just doing it to
fix the thing with develop...
* Fixed Pet menu
Fixed morph menu
Changed from List to Set
* Changed from PurchasUnknownSalesPackage to AddUnknownSalesPackageOwned
* Added Santa Morph
Removed Sleigh Morph
Changed all the cosmetics GUIs to start on the second row, instead of the first
* Changed some stuff from Holiday Manager so now chickens will walk around when spawned
* Added sound effects to Metal Man
Added slowness to Metal Man
* Added new lore for the Metal Man Morph description
Added Stray Morph Ability
Fixed some problems with the Thanksgiving Chickens
* Added Fated giveaway manager and animation
Moved titan and fated giveaway managers to a new package
* Fixed lores for Stray morph and Shulker pet
Changed ability of Stray morph
* Removed Stray and Shulker pet from the menu
Deleted Pet class since it was not being used
Changed position of achievement on the menu
Changed color of chicken's name
Changed colors of Power Play message
Stray morph, Santa morph and Shulker pet are hidden from the menus for now
Removed feathers dropping from chickens, changed them to snow particles
* Added hover ability to Metal Man Morph
* Fixed some stuff on Metal Man
* Removed all the halloween related items:
- Haunted chests can only be opened if player already had ammo
- Removed Halloween theme from the hub
- Removed pumpkins from in-game
* Added Halloween items to the Omega Chest
* Fixed weight for items in the omega chest
* Changed Disk to Disc in RewardManager
Changed values for omega rarities
* Final commit (removed win room test command)
* Removed Halloween words from Draw My Thing and Master Builders
* Fix some bugs, improve Skyfall and add Skyfall Teams
* re-enable debug
* Fix Perks not being unregistered from the EventHandler
* Remove unused import
* Remove unused imports
* Implement trick or treat chest in customer support server
* Add several new reward types, implement trick or treat chest and all its animations, and fix playwire nested threads
- Increased the time needed for the Wind Up suit to be charged
- Added effect for the Wind Up suit to blink between yellow and red when the effect is active
- Removed Win room test command
- Fixed spelling error in MountSpider
- Changed MountChicken so it can now jump
- Still working on the Sleigh morph
- Added Wind Up Suit for testing
- Removed unused code from MountSpider
External:
- Added Sleigh Morph (Still need some work on it)
* Initial Commit
* Update
* Bunch of new stuff
* Fixed fletcher arrow typo
* Added reward pet, fixed typo, tweaked lose cinematic
* Lots of tweaks and fixes with QA
* Cleaning up a little code
* Removed debug message on prince death
* Added nighttime to halloween game lobby maps
* Tweaked spawn rates and mob caps
* Typo
* Tweaked texts, cleaned import and cleared all mobs from boss cinematic
* Fixed creepers not getting properly removed during boss cinematic
* Reward typo
* Fixed rare NPE
* Typos
* Tweaked mini zombie
* Typo
* Prevent zombie from spawning minis after being removed
* Tweaked wave announcements + formated WaveVictory
* Changed color of prince tag + formated ZombieSpawner
* Fixed (another) rare NPE
* Tweaked boss wave cinematic
* Internal:
Changed imports from java.awt.Color to org.bukkit.Color
External:
Added Double Jump Halloween
Added Arrow Trail Halloween
Added Pumpkin Hat
* Internal:
Fixed Arrow Trail Halloween
Added new methods to ParticleData
Renamed playerNPC to _playerNPC (WinEffectLavaTrap)
Removed unecessary method (WinEffectManager)
Added a command to test win rooms properly
Fixed Squid Morph not showing name unless players hovered over it
Created a Manager for the Morphs so we avoid using deprecated methods
External:
Added Halloween Win Room
Added Grim Reaper Morph
Added Headless Horseman Morph
Added Nightmare Steed
* Internal:
Renamed RewardType enums to have upper case
External:
Added Halloween Death Effect
Added Haunted Chest
Added Baby Zombie Jockey Pet
Changed the names of the items
Added Grim Reaper pet
* Slack integration to test stuff (Will not be in the code in the last commit)
* Fixed Grim Reaper Hoe not being removed after the morph is disabled
* Details for the Haunted Chest
* Details for all the items (lores, icons, texts, effects, etc)
Removed Headless Horseman Morph
* Fixes for lores and names
Support server stuff
* Fixes for the Lock and Unlock cosmetics commands
* Fixes for the Grim Reaper Morph
* Fixes for the Grim Reaper Morph
Removed debug messages
* Fixed a memory leak. Thanks to Sam
* Fix imports
* Removed unused code
Added javadocs to UtilTextBottom#displayProgress()
Added javadocs to UtilAlg#getRandomLocation()
* Removed Death Effect
Increased Arrow Trail particles
Increased Double Jump particles
* Tweak team locations to accommodate MPS'
Disable certain commands from being used.
* Change PlayWire things.
* Update MPS locations.
* Update.
* Remove debug
* Remove debug. Ty Sam
* Game Lobby update. Phase 1.
* Correctly apply kit data to players who use the next best game feature.
* I can do integer comparisons, I promise.
* So much stuff, all minor.
* Suck it Carl.
* Fix Party bug.
Update LobbyManager
* Allow QA to test KitProgression @shaun cherry pick this plz.
* Proper generation check (testing)
Remove debugging from NextBestGame
* Correct Amplifier looking direction.
Fix Death tag hard coded kits
Misc podium work.
* ClansHub and Tweaks to the lobby manager
* WA Tweak.
* Convert OITQP into a module based system.
* More magic modules
* Achievements and Stats
* Achievement menu update
* Removed some Util methods I added that were never used.
* Missed a few things
* To Alex, Love Sam
* Gem and achievement kits
* basic prototype of the game Skyfall
* new crumble mechanic
* Developing basic game with basic mechanics and basic kits.
* Fix merge issues
* Add Supply Grop and Deathmatch and change map crumbling
* Make cosmetical changes for QA and add Stat Trackers and Achievements
* Add version requirement
* Change scoreboard layout
* Dont crumble the first island, but the islands over the spawn points
* Remove Surefoot, fix TNT, remove boats and remove elytra on contact with water/lava
* Unused imports
* Fix kit description, modify island crumbling and add ring damage
* Revert to normal crumble values
* Add Javadoc
* Remove more unused imports
* Check for material data on ring generation
* Add Block effect for Booster Ring recharge
* Unused imports...
* Add Elytra removal message and countdown
* "Fix" food issues and some other minor things
* Add chest refill to scoreboard from beginning
* Fix supply drop
* Unused imports.....
* Re-enable Anti Cheat
* Add java doc, remove system messages and add exeptions
* The end of the great label debate
* Fix method naming conventions
* Remove more labels
* Disable Booster kit
* PlayWire integration.
* Tweak PlayWire display.
Update the GUI command.
Temp set cooldown to 10 seconds for testing *WILL BE REMOVED*
* PlayWire stuff.
* PlayWire streaks and tweaks.
* Implement Anticheat 1.2 hooks
* Add default check thresholds for unknown check types
* Add violation level support for new checks
* Add ban waves for KillAura type D
* Amend DELETE_PENDING now that it's not hardcoded
* Add instant bans for high VL Glide/Speed
* Don't specify hack type in banwave ban message