主题
工具库(common / forge / spigot)
Behemiron 内置了大量通用工具与运行时辅助类,优先复用,避免二次开发重复造轮子。
本文按模块分组细化到具体类,并说明用途与常见场景。
1. common 工具(两端通用)
路径:project/common/src/main/kotlin/com/behemiron/engine/common/util
1.1 缓存与切面
cache/Cache:缓存接口cache/CacheManager:缓存管理器cache/CacheAspect:AOP 缓存切面(@Cacheable/@CachePut/@CacheEvict)cache/dsl/CacheDsl:缓存 DSL
典型用法:
kotlin
@Cacheable("playerData", key = "#p0")
fun getPlayerData(uuid: UUID): PlayerData? { ... }1.2 表达式与计划
expression/SpelParser:混淆安全 SpEL(用于缓存 key / condition / unless)expression/CronExpression:Cron 表达式解析
1.3 数据变更与脏标记
data/ChangeHandler/ChangeListener/ChangeTracker:变更监听data/DataValue:数据包装(含深/浅拷贝标记)data/DirtyDataContainer:脏数据容器data/DirtyDataContainerExtensions:便捷扩展data/dsl/DirtyDataContainerBuilderDsl:构建 DSL
1.4 跨端包装器
crossplatform/BlockPosWrapper/Vec3Wrapper/LocationWrapper:坐标/位置crossplatform/EntityWrapper/PlayerRefWrapper:实体/玩家引用crossplatform/ItemStackWrapper/MaterialWrapper/PotionEffectWrappercrossplatform/ResourceIdWrapper/WorldRefWrapper
1.5 序列化
serialization/fory/ForyPool:Fory 对象池serialization/fory/ForyReader/ForyWriter:Fory 读写
1.6 加密与脚本清单
crypto/Ed25519Utils:签名/验签crypto/ScriptManifestUtils:脚本清单与签名处理
1.7 选择器
selector/AreaSelector:区域选择selector/EntitySelector/MaterialSelectorselector/DataMatcher/CompareOperator/MatchFlag
1.8 其它通用工具
collection/LoreMap:Lore 结构化映射io/FileWatcher:文件监听lazy/LazyMaker:懒加载time/TimeCycle:时间轮询game/ColorUtils:颜色工具
2. forge 工具(客户端)
路径:project/runtime-forge/src/main/kotlin/com/behemiron/engine/forge/util
2.1 AOP 运行时
aop/AopBackend/AopProxyFactory/AopUtilsaop/impl/ByteBuddyAopBackend/ByteBuddyProxyFactory
2.2 动画与插值
anim/AnimationTicker:动画 tick 驱动anim/Easing/Interpolation:插值曲线anim/LerpedFloat:平滑插值
2.3 集合/树形结构
collection/ElasticArray:可伸缩数组collection/HistoryStack:历史栈collection/TreeBuilder/TreeNode/ITreeNodecollection/FileNode:文件树
2.4 数学与几何
math/BasicMathUtils/AngleUtils/GeometryUtilsmath/CoordinateUtils/Vec3Utils/Vector3fUtils/Vector4fUtilsmath/Matrix4fUtils/QuaternionUtilsmath/ColorUtils/RandomUtils/MathConstantsmath/EasingUtils/InterpolationUtils/CurveMathmath/ShapeMathmath/noise/PerlinNoise
2.5 渲染缓冲与状态
render/buffer/SuperByteBuffer/SuperByteBufferBuilderrender/buffer/SuperByteBufferCacherender/buffer/TemplateMesh/MutableTemplateMeshrender/state/RenderState/RenderStateBuilder/RenderStateSnapshotrender/state/BlendMode/BlendFactor/DepthFunc
2.6 渲染 DSL
render/dsl/RenderTypeDsl/ShaderDsl/PoseStackDslrender/dsl/RenderSystemDsl/BlendDsl/DepthDslrender/dsl/RenderTypePresets/DslParallelRenderType
2.7 轮廓/高亮
render/outliner/Outlinerrender/outliner/Outline/OutlineParamsrender/outliner/AABBOutline/LineOutlinerender/outliner/BlockClusterOutline/ChasingAABBOutlinerender/outliner/OutlineRenderTypes
2.8 渲染辅助
render/NativeImageUtils/BillboardUtils/UVAnimationUtilsrender/matrix/EnhancedPoseStack/PoseStackExtensionsrender/GlStateDebugger
2.9 媒体(音视频)
media/codec/FFmpegVideoDecodermedia/codec/GifDecodermedia/codec/PcmAudioPlayermedia/codec/PlaybackSynchronizermedia/concurrent/ByteBufferPool/FrameQueue/VideoDecodeThreadmedia/data/DecodedFramemedia/render/VideoRenderermedia/fix/JavaCppLoaderFix
2.10 反射与 Unsafe
reflection/ReflectionUtils/ReflectionBackendreflection/impl/MagicReflectionBackend/UnsafeAccess
2.11 脚本与 DSL
script/dsl/JavetDslscript/dsl/MolangDsl
2.12 序列化
serialization/gson/ForgeGsonExtensions/ForgeGsonUtils
2.13 运行时与兼容
game/Minecraft/MinecraftForge/ForgeLocationcompact/IrisCompat
3. spigot 工具(服务端)
路径:project/runtime-spigot/src/main/kotlin/com/behemiron/engine/spigot/util
3.1 AOP 运行时
aop/AopBackend/AopProxyFactory/AopUtilsaop/impl/ByteBuddyAopBackend/ByteBuddyProxyFactory
3.2 跨端与 CPDC
crossplatform/CPDCExtensionscrossplatform/WrapperExtensions
3.3 选择器提供器
selector/EntityProvidersselector/ItemProviders
3.4 序列化
serialization/gson/SpigotGsonExtensions/SpigotGsonUtils
4. 快速定位建议(避免重复造轮子)
| 目标 | 推荐入口 |
|---|---|
| 缓存 | common util/cache |
| SpEL | common util/expression/SpelParser |
| 签名/验签 | common util/crypto/Ed25519Utils |
| 序列化 | common util/serialization |
| 脏数据/同步 | common util/data |
| 渲染/高亮 | forge util/render / util/render/outliner |
| 动画插值 | forge util/anim |
| 数学/颜色 | forge util/math |
| 媒体播放 | forge util/media |
| 选择器 | common / spigot util/selector |