Skip to content

工具库(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 / PotionEffectWrapper
  • crossplatform/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 / MaterialSelector
  • selector/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 / AopUtils
  • aop/impl/ByteBuddyAopBackend / ByteBuddyProxyFactory

2.2 动画与插值

  • anim/AnimationTicker:动画 tick 驱动
  • anim/Easing / Interpolation:插值曲线
  • anim/LerpedFloat:平滑插值

2.3 集合/树形结构

  • collection/ElasticArray:可伸缩数组
  • collection/HistoryStack:历史栈
  • collection/TreeBuilder / TreeNode / ITreeNode
  • collection/FileNode:文件树

2.4 数学与几何

  • math/BasicMathUtils / AngleUtils / GeometryUtils
  • math/CoordinateUtils / Vec3Utils / Vector3fUtils / Vector4fUtils
  • math/Matrix4fUtils / QuaternionUtils
  • math/ColorUtils / RandomUtils / MathConstants
  • math/EasingUtils / InterpolationUtils / CurveMath
  • math/ShapeMath
  • math/noise/PerlinNoise

2.5 渲染缓冲与状态

  • render/buffer/SuperByteBuffer / SuperByteBufferBuilder
  • render/buffer/SuperByteBufferCache
  • render/buffer/TemplateMesh / MutableTemplateMesh
  • render/state/RenderState / RenderStateBuilder / RenderStateSnapshot
  • render/state/BlendMode / BlendFactor / DepthFunc

2.6 渲染 DSL

  • render/dsl/RenderTypeDsl / ShaderDsl / PoseStackDsl
  • render/dsl/RenderSystemDsl / BlendDsl / DepthDsl
  • render/dsl/RenderTypePresets / DslParallelRenderType

2.7 轮廓/高亮

  • render/outliner/Outliner
  • render/outliner/Outline / OutlineParams
  • render/outliner/AABBOutline / LineOutline
  • render/outliner/BlockClusterOutline / ChasingAABBOutline
  • render/outliner/OutlineRenderTypes

2.8 渲染辅助

  • render/NativeImageUtils / BillboardUtils / UVAnimationUtils
  • render/matrix/EnhancedPoseStack / PoseStackExtensions
  • render/GlStateDebugger

2.9 媒体(音视频)

  • media/codec/FFmpegVideoDecoder
  • media/codec/GifDecoder
  • media/codec/PcmAudioPlayer
  • media/codec/PlaybackSynchronizer
  • media/concurrent/ByteBufferPool / FrameQueue / VideoDecodeThread
  • media/data/DecodedFrame
  • media/render/VideoRenderer
  • media/fix/JavaCppLoaderFix

2.10 反射与 Unsafe

  • reflection/ReflectionUtils / ReflectionBackend
  • reflection/impl/MagicReflectionBackend / UnsafeAccess

2.11 脚本与 DSL

  • script/dsl/JavetDsl
  • script/dsl/MolangDsl

2.12 序列化

  • serialization/gson/ForgeGsonExtensions / ForgeGsonUtils

2.13 运行时与兼容

  • game/Minecraft / MinecraftForge / ForgeLocation
  • compact/IrisCompat

3. spigot 工具(服务端)

路径:project/runtime-spigot/src/main/kotlin/com/behemiron/engine/spigot/util

3.1 AOP 运行时

  • aop/AopBackend / AopProxyFactory / AopUtils
  • aop/impl/ByteBuddyAopBackend / ByteBuddyProxyFactory

3.2 跨端与 CPDC

  • crossplatform/CPDCExtensions
  • crossplatform/WrapperExtensions

3.3 选择器提供器

  • selector/EntityProviders
  • selector/ItemProviders

3.4 序列化

  • serialization/gson/SpigotGsonExtensions / SpigotGsonUtils

4. 快速定位建议(避免重复造轮子)

目标推荐入口
缓存common util/cache
SpELcommon 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