← Назад к ресурсам

Avoid

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

Modrinth library

Описание

🐦‍⬛ Avoid allows you to remove net.minecraft references completely from your code. **🧧 Compatibility Matrix:** | | Fabric | NeoForge | Sponge | Paper *(ALPHA)* | | |---------|--------|----------|--------|--------|---------| | 1.21.8 | ✔️ | ❌ | ❌ | ❌ | | | 1.21.10 | ✔️ | ❌ | ❌ | ❌ | | | 1.21.11 | ✔️ | ❌ | ✔️ | ✔️ | [LTS¹] | | 26.1.* | ✔️ | ✔️ | ✔️ | ❌ | [LTS¹] | | 26.2 | ✔️ | ✔️ | ✔️ | ❌ | | 26.3 | ✔️ | ✔️ | ❌ | ❌ | | | 26.4-snapshot-1 | ✔️ | ❌ | ❌ | ❌ | [TS²] | Quilt is not supported and will break with the mod. 26.4-snapshot-1 build has been delayed, my bad. I didn't notice. I am aware of a current bug in the NeoForge builds in v1.27. A fix will be pushed out in v1.28. ###### v1.28 is coming with mixins, so that's why it's taking 5 days already. It will be out! I'm working on it. ###### ¹ 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] ClientWindowTitleUpdateEvent [some form of experimental] ▾ 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 Wiki **Note:** If you're using my mods, I advise against buying Minecraft. 🔌 Support Everything. Same API on 9 minecraft versions, 4 loaders. 🪶 Feature requests If you want a new API, event or something else, make a feature request [here.](https://github.com/AvoidLib/Avoid/issues) 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 actually is this mod It's a *framework* - a mod that other mods can use in their code instead of referring to Minecraft. It exists so that mods can support multiple modloaders and minecraft versions without doing advanced stuff. It also generally simplifies making mods & plugins. 🧽 What about SpongePowered SpongePowered doesn't seem to support Minecraft Fabric. Also, I don't think Sponge has client API-s. 🟣 Is Quilt supported? No! It breaks the mod. 🥳 When new release? I usually publish releases every 3days-1week. Sometimes they may be delayed due to lack of ideas or energy. 🛠️ What does Avoid strive to replace? Avoid strives to provide all functionality possible to remake your mods/plugins in Avoid from: | Name | Goals | Completed | |-------------------------------|-------------------------|-----------| | Fabric | mixins, access widening | no | | Fabric API | custom payloads | yes | | Quilt | loader plugins | yes (dev) | | Architectury | not sure tbh | no | | Fabric Language Kotlin | - | yes | | Kotlin for Forge | dedicated QoL features for kotlin | no | | Balm *(partially?)* | not sure | no | | Konkrete | not sure | no | | Collective | not sure | no | | CreativeCore | ingredients api | no | | Bookshelf | stuff | no | | Moonlight Lib | pack creation api | no | | MaliLib | rendering utilities | no | | Iceberg | some events | no | | Resourceful Lib *(partially?)* | not sure | no | | Resourceful Config | not sure | no | | libIPN *(partially?)* | more modloader methods | yes | | SuperMartjin642's Config Lib | config api | no | | Trinkets | slot creation & management | no | | Cristel Lib | conditional datapack loading | yes (dev) | | Prism | color utilities | sort of | | JamLib | repost checking | close | Note that Avoid does not currently provide all functionality to replace them. But it may in the future. Note that this does not mean I like or not like these projects. My motivation behind Avoid is purely fun and making mod development better (including for myself [:). The reasons for why I want to make Avoid the huge framework, are: 1. these libraries & modloaders mentioned earlier have one big flaw: use breaks every minecraft update. it's not their fault, it's mojang (each mc update = incompatibilities) 2. I want to eliminate the need for libraries. the only libraries mods should need are e.g. forge config api port (it's for easier porting to fabric) or geckolib (advanced animations). Also note that Avoid will not neccessarily fulfill all uses of those libraries. For example as a key point they may support more Minecraft versions than Avoid. However, the biggest cool thing about Avoid is that, all of its APIs are compatible with each other. With the listed libraries you might experience incompatibilites (I mean, it's natural that there might be.) Fabric Language Kotlin should be already replaceable with Avoid, as you can add all kotlin dependencies to your avoid.mod.json `libraries` section, which is sort of a replacement for maven-mirror library mods. **🦘 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 [26.4] RenderPearl unrefactor ###### ¹ 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.