New
- Add gamerule to toggle villagers spawning cats
- Add gamerule to toggle villagers spawning golems
- Add gamerule for editing the player's flying speed
- Add gamerules for toggling each biome
- Add gamerule for editing the number of waves in a raid
- Add gamerules for toggling different sources of xp
- Add gamerules for editing item durability
- Add gamerule to toggle whether netherite burns
Fixes
- Convert block information and food saturation gamerules to doubles
- Fix issue with command gamerules
- Add some code for misc. gamerules that I forgot to add
- FIx some default gamerule values
- Fix most item usage gamerules not working
- Improve mod compatibility
For devs
- Move all gamerules into a single enum
- Combine many mixins to shorten code
- Generally clean up code and make intellij happy
This update was massive. I kept coming up with new ideas before releasing. In the previous release, there were 347 gamerules in this mod. This has now increased my more than 2.5x, with a total of 876 gamerules in v2.1.0.
-
Add gamerule
pistonPushLimit
to edit how many blocks pistons can push to theredstone
category -
Add gamerule
recipeBookEnabled
to toggle the recipe book to themisc
category -
Create new
mob_toggles
gamerule category- Toggles most mobs
- Moved wither toggle to this category
-
Create new
ai
gamerule category- Add most mob-specific AIs to the category
-
Create new
blocks
gamerule category- move many misc gamerules to it:
netherPortalsEnabled
endPortalsEnabled
endGatewaysEnabled
netherPortalCooldown
cropTrampling
beaconsEnabled
conduitsEnabled
creativeSwordCanBreakBlocks
pushableBuddingAmethyst
containerOpeningBlocked
- Add old (alpha) tnt gamerule toggle
- Add gamerules for toggling friction, speed factor, and jump factor for certain blocks
- Add gamerules for toggling different cauldron features, and filling/emptying them
- Add toggles for interactions with a lot of blocks, e.g. opening crafting tables, playing noteblocks
- move many misc gamerules to it:
-
Create new
food
category- Add all nutrition values for all foods to it
- Add all saturation values for all foods to it (multiplied by 10, since gamerules don't support floats)
- Move
oldHunger
gamerule to it
-
Create new
potions
category- Toggles all potion types (combined toggle for long and more powerful)
- Overall toggles for normal potions, splash potions, lingering potions
-
Create new
death
category- Add toggles for deaths from all damage types
- If a death is disabled, when the player loses all of their health, the mod gives them half a heart to stop them from dying. This is therefore different from the
damage
category, which stops all damage from certain sources from being applied.
-
Create new
items
category- Write toggles for the right click actions of most items
- These include a milk toggle (so the old
milkClearsEffects
was removed) - The totem of undying toggle, and the bow and crossbow spamming toggles were moved to this category
-
Create new
dispenser
category- Adds gamerules for most special dispenser options
-
Create new
arrow
category- Adds gamerules for all tipped arrow variants
- Adds gamerule to toggle spectral arrows
-
Create new
advancement
category- Adds gamerules to toggle each advancement
-
Create new
stats
category- Add toggles for different types of statistics that players can get
-
Create new
entity
category- Add toggles for different types of falling blocks (whether they can fall)
- Add toggles for different variants of paintings
-
Create new
merchant
category- Move existing villager/piglin gamerules to it:
infiniteTrading
villagerTradingEnabled
piglinBarteringEnabled
- Add gamerule
villagerDailyRestocks
to edit the frequency of villager restocks - Add toggles for all villager biome types
- Add toggles for all villager professions
- Move existing villager/piglin gamerules to it:
-
Rewrite a lot of mixins to use the
MixinExtras
library (thanks to @CoolMineman for helping with brachyura support for it). This allows for much better compatibility with other mods. -
Use the
ConditionalMixin
library to disable certain mixins when certain mods are present for compatibility. -
Fix the command gamerules category in 1.19 (was completely broken before).
-
Rewrite the structure gamerules to use mixins instead of creating dapatacks and loading them while the world is generating.
-
Rewrite the lang file to use simple title strings and detailed description strings, rather than just title strings that try to be short but to both.
-
The command gamerules for dedicated-server-only commands are now only registered if the mod is loaded on a dedicated server.
-
Completely rewrite the gamerule and gamerule category creation and registration system, and the caffeineconfig gamerule toggle system:
- All the categories are in an enum
- All the gamerules are in one of two enums (one for booleans, one for integers)
- This means that the gamerules no longer need to be explicitly registered, the mod just iterates through the enums.
- Previously, due to breakages when a client with this mod joined a dedicated server, I had code in every method that skipped it if the server was null. I now centralised this in the gamerule helper that I wrote.
- Previously, I needed to manually specify one mixin per category to check for it, to disable gamerules where the category was disabled by caffeineconfig. Now, the mod reads from the mixins.json file at runtime to automatically do this while iterating over the category enum.
- What all this means for the user is the jar file is much smaller than it would've been without these changes.
- What all this means for developers is that registering gamerules is extemely easy.
-
I also switched my IDE to IntelliJ, which means all of the source code is now much cleaner and also much safer, since I ran it though IntelliJ code cleanup and I fixed all of the java issues and lang file typos that IntelliJ pointed out.
- Updates mod to 1.19
- Adds the following 1.19-specific gamerules:
placeCommand
toggledarknessEffect
toggleswiftSneakEnchantment
toggleancientCityGeneration
togglesculkGeneration
togglesculkSensorEnabled
toggle
- Removes the following gamerules since the vanilla feature was removed in 1.19:
locateBiomeCommand
toggle
-
Switch to Quilt Loader (this mod no longer works on Fabric)
-
Refactor API dependencies
- No longer depend on any lifecycle events APIs (wrote my own Mixin)
- No longer depend on Loader/APIs' ModInitializers (wrote my own Mixin)
- No longer require any resource loader APIs (still recommended, but wrote fallback code to load lang file as RP in event of missing resource loader)
-
Refactor directory structure of util code
- Split it up and add many helper functions to make code easier to read
-
Fix some bugs with repeaters, redstone dust, and redstone torches being completely broken
-
Switch category colours from YELLOW to DARK_GREEN in GUI
-
Fix compatibility with Carpet TIS Additions
-
Add gamerule
milkClearsEffects
to toggle whether milk clears your status effects -
Add gamerules for toggling enchantment conflicts, including:
bootEnchantmentConflicts
- frost walker and depth striderbowEnchantmentConflicts
- infinity and mendingcrossbowEnchantmentConflicts
- multishot and piercingdamageEnchantmentConflicts
- sharpness, smite, and bane of arthropodsminingEnchantmentConflicts
- fortune and silk touchprotectionEnchantmentConflicts
- protection, blast protection, fire protection, and projectile protectiontridentEnchantmentConflicts
- riptide and loyalty/channeling
-
Add gamerule
pushableBuddingAmethyst
to toggle whether budding amethyst blocks are pushable by pistons -
Add gamerule
containerOpeningBlocked
to toggle whether container opening can be blocked by solid blocks/cats -
Make disabling a mixin using CaffeineConfig also disable the gamerule, to not confuse the user.
-
Deprecate fabric - adds messages to logs that alert fabric users to the deprecation of the fabric version of this mod. It will be quilt only in 1.19. (NOTE: The unreleased 1.19 branch on the github repo is still fabric because QSL is not on snapshots to my knowledge.)
-
Removed many "placed feature" gamerules and moved the features to other gamerules:
- Remove most overworld vegetation gamerules, and add a single overworld vegetation gamerule to take their place
- Move some stone features to the ores gamerule
- Remove village misc features gamerule and move them to the generic village gamerule
- Move nether springs to spring gamerule and underwater magma to the magma gamerule
-
Add a gamerule for toggling whether swords can break blocks when in creative mode
-
Add a gamerule for toggling whether totems of undying work
-
Add gamerules for toggling whether bows/crossbows can be spammed
-
Fix more potential client crashes in servers
-
Switch from Maps/Hashmaps and Lists/ArrayLists to their FastUtil counterparts for performance
-
Replace an
@Overwrite
inMixinPig
with two@ModifyArg
s for compatibility -
Fix overall damage gamerule not applying to damage sources covered by vanilla gamerules
-
Blame @DragonEggBedrockBreaking
- Enabled datapacks for structure and biome gamerules before worldgen, therefore removing the kick + delete region files code, and making the gamerule apply to pre-existing worlds.
- Added gamerules for toggling different redstone features, including whether or not individual components are enabled, how much power some components give off, and how much delay some components have.
-
Separate different ore types, before ORE meant overworld ores, nether ores, alternative stone types, and magma veins.
-
Add a gamerule for pigs breeding with wheat instead of carrots, potatoes, and beetroot
-
Add gamerule for using the old hunger system
-
Add gamerule for toggling mobs burning in sunlight
-
Add gamerule for toggling whether ender dragons shoot fireballs
-
Add gamerule for toggling whether some end pillars have cages
-
Add gamerule for using the old boat system
-
Fixed two issues with spawn eggs:
- A crash when trying to use them
- The gamerule being inverted
-
Numerous technical changes that don't affect the end-user
-
Added new gamerule category for toggling enchantments, e.g. fire aspect.
-
Added new gamerule category for toggling worldgen features, including features for:
- toggling whether certain structures generate
- toggling whether certain generation features generate
- toggling whether the end spawn platform generates
-
Added a gamerule to the fluids category for toggling whether bubble columns work.
-
Added some gamerules to the mobs category, including gamerules for:
- trading with villagers
- bartering with piglins
- withers being able to spawn
-
Fixed a bug where the absorption effect gamerule didn't show up properly in the gamerule menu.
-
Fixed a possible bug where mob categories' despawn toggle doesn't work.
-
Fixed a bug where villagers can despawn (#4).
-
Implemented a Mixin Configuration Plugin using CaffeineConfig (now bundled).
- In 1.0.3, compatibility with Inspecio was fixed, but part of that fix was hardcoding the values for Fish and Axolotls. This breaks mods that add other Bucketable mobs, and will also break Frogs in 1.19. This release fixes all of those mobs/mods, and maintains compatibility with Inspecio.
- Fixed bugginess when using water in the nether - there was a small error in the code that caused water in the nether to be extremely buggy, this has been fixed - water in the nether should now work fine.
- Rewrite knockback enchantment code - although no mod incompatibilities have been reported yet, it is possible for another mod editing the same code to be incompatible with the old code. This has now been rewritten in a much more compatible way.