Avoid

Avoid

Mod framework that wraps whole Minecraft. Kinda like Bukkit. [#killaislop]

1 051 downloads
3 followers
Avoid Banner


🐦‍⬛ Avoid allows you to remove net.minecraft references completely from your code.


Note: If you're using my mods, please do not buy Minecraft.


🧧 Compatibility Matrix:

Fabric Quilt NeoForge Sponge Paper (ALPHA)
1.21.10 ✔️ 🟡
1.21.11 ✔️ 🟡 ✔️ ✔️ [LTS¹]
26.1.* ✔️ ✔️ ✔️ ✔️ [LTS¹]
26.2 ✔️ ✔️ ✔️ ✔️
26.3 ✔️ 🟡 [TS²]

NeoForge for 1.21.11 was removed as it seems to have been not working.

1.21.8 support has been currently removed.

¹ Long Term Support
² Temporary Support

Note: This mod does not require Fabric API!
Note: Some features may not work or be no-op (do nothing) on Paper.

🧮 API-s:
  • NBT
  • Client Chat
  • Server Chat
  • Chat Colors
  • Chat Components [BETA]
  • Identification (Identifier)
  • Item Querying       [ALPHA]
  • Item Components [BETA]
  • Editable Item Components [BETA]
  • Entity Types                         [BETA]
  • Entity Selectors                   [ALPHA]
  • Transformed Item Components [BETA]
  • Client API
  • Client Screen API
  • Client Screen Widget API
  • Client Screen Modifier API
  • Client Interaction API
  • Font API
  • Render Layer API [BETA]
  • Command API
  • Command Parameter API
  • Command Permission API
  • Placeholder API [ALPHA]
  • Addon Loader (AvoidModLoader)
  • Block Creation API [ALPHA]
  • Item Creation API  [ALPHA]
  • Entity API [ALPHA]
  • Player API [ALPHA]
  • World API  [ALPHA]
  • Event API  [BETA]
  • Entity Type Creation API        [BETA]
  • Entity Model Creation API      [BETA]
  • Entity Layer API                       [BETA]
  • Entity Renderer Creation API [BETA]
  • Fluid API [BETA]
  • Fog API  [BETA]
  • Resource Overriding [ALPHA]
🌲 Events:
▾ Client Chat Events
  • ClientChatCommandEvent
  • ClientChatReceivedEvent
  • ClientChatNormalizeEvent
  • ClientChatSentEvent
▾ Client Entity Events
  • ClientEntityCreateEvent
  • ClientEntityVelocityEvent
▾ Client Keyboard Events [BETA]
  • ClientKeyPressEvent
  • ClientKeyReleaseEvent
▾ Client GUI Events [ALPHA]
  • RenderTextEvent
  • RenderOutlineEvent
  • RenderHudEvent
  • ToastAddEvent
▾ Client Loading Events [BETA]
  • ClientLoadingScreenRenderMojangEvent
▾ Client Screen Events
  • ScreenInitEvent
  • ScreenOpenEvent [BETA]
▾ Client Events
  • ClientTickEvent [BETA]
  • ClientScreenInPortalEvent [ALPHA]
▾ Server Chat Events
  • ServerChatReceivedEvent
  • ServerChatSendEvent
  • ServerChatSentEvent
▾ Server Command Events
  • ServerCommandExecuteEvent
  • ServerCommandSuggestEvent
▾ Server Entity Events
  • ServerEntityCreateEvent 🧪
  • ServerEntityDropEvent
  • ServerEntityEffectAddEvent
  • ServerEntityEffectRemoveEvent
  • ServerEntityEffectUpdateEvent
  • ServerEntityStruckByBoltEvent
  • ServerEntityVelocityEvent
  • ServerEntityInteractEvent
  • ServerEntityInsideBlockEvent
  • ServerEntityResurrectEvent
  • ServerMobSetTargetEvent
  • ServerMobClearTargetEvent

  • ▾ Llama
    • ServerLlamaSpitEvent 🧪

  • ▾ Block
    • ServerEntityBlockTrampleEvent 🧪
▾ Server Player Events
  • ServerPlayerGameModeChangeEvent
  • ServerPlayerInputEvent
  • ServerPlayerSwingEvent
  • ServerPlayerUpdateAbilitiesEvent
  • ServerPlayerKickEvent

  • ▾ Block
    • ServerPlayerCraftSlotEvent
    • ServerPlayerSmithingSlotEvent

    • ▾ Anvil [BETA]
      • ServerPlayerAnvilEnchantmentCompatibilityCheckEvent
      • ServerPlayerAnvilFailEvent
      • ServerPlayerAnvilNameValidationEvent
      • ServerPlayerAnvilSuccessResultEvent

      • ▾ XP40 [BETA]
        • ServerPlayerAnvilXP40ItemClearEvent
        • ServerPlayerAnvilXP40NameChangeCostClampEvent
        • ServerPlayerAnvilXP40TriggerStackedEvent

    • ▾ Bed [BETA]
      • ServerPlayerBedSleepFailEvent
      • ServerPlayerBedSleepStopEvent
      • ServerPlayerBedSleepSuccessEvent

    • ▾ Enchanting Table [BETA]
      • ServerPlayerEnchantingTableBookshelfAmountEvent
      • ServerPlayerEnchantingTableBookshelfLimitEvent
      • ServerPlayerEnchantingTableCostEvent

  • ▾ Food [BETA]
    • ServerPlayerSetFoodLevelEvent
    • ServerPlayerSetSaturationLevelEvent

Some events and/or API-s might've been missed in the listings above.

GitHub Logo GitHub Wiki


🔌 Support Everything.

Same API on 8 minecraft versions, 5 loaders.


🪶 Feature requests

If you want a new API, event or something else, make a feature request here.

I am working on Avoid very often, but I don't push out releases immediately.
I want to make sure all features I add don't turn out to be total mistakes, so that I (and you, Avoid addon developers) won't have to deal with deprecation or removals.

Also, I may be adding new compatibility options.
Such as Paper support. That takes longer, so sometimes releases may be delayed if they contain those.



FAQ

👀 But there's hundreds of libraries

I know. This one is created because I don't wanna use others. And because I need full coverage of Minecraft's code.

🧽 What about SpongePowered

SpongePowered doesn't seem to support Minecraft Fabric.
Also, I don't think Sponge has client API-s.

🟣 Is Quilt supported on all versions Fabric is?

Yes, however, it is not recommended.


🦘 So far, AvoidLib kept compatibility through all these changes¹:

  • [26.1] Rendering Name Refactor
  • [26.1] Item Stack Refactor
  • [26.1] Stupid World Changes
  • [26.1] Stupid Player Changes
  • [26.1] Stupid Chat Changes
  • [26.2] Entity Refactor
  • [26.2] GUI Refactor
  • [26.2] Block Item IDs
  • [26.3] Block Type Removal
  • [26.3] Increased ItemStackNative usage
  • [26.3] Entity Delta Tracking
  • [26.3] Vertex Modifications
  • [26.3] Move to SDL
  • [26.3] Move to RenderPearl
  • [26.3] PushReaction Refactor
  • [26.3] ItemStackTemplate#entrySet() removal
¹ These names may not be accurate,
   and some refactorings may be missing.
The content of this page is licensed under All Rights Reserved.
The mod's license is Apache 2.0.