Skip to content

弃用清单

本页列出 UltiTools-API 已弃用的每一个成员,数据来自框架自身的弃用登记表。每一行记录该成员被标记弃用的版本、计划移除的目标版本,以及移除已经落地后,它实际离开 API 的版本。

本页更新速度较慢

本表反映的是本页最近一次同步时冻结的登记表快照。要看权威、实时的状态,请查阅 Javadoc 文档

符号状态起始版本目标移除版本实际移除版本替代方案
com.ultikits.ultitools.abstracts.AbstractCommandExecutorREMOVED6.2.06.3.06.3.0This class is maintained for backward compatibility. Use BaseCommandExecutor instead, which provides better architecture with Chain of Responsibility pattern.
com.ultikits.ultitools.abstracts.AbstractCommendExecutorREMOVED6.2.16.3.06.3.0Use AbstractCommandExecutor instead.
com.ultikits.ultitools.abstracts.AbstractDataEntityREMOVED6.2.06.3.06.3.0This class uses Object type for ID which is not type-safe. Use BaseDataEntity instead, which provides generic ID type and lifecycle hooks.
com.ultikits.ultitools.abstracts.guis.OkCancelPageREMOVED6.2.06.3.06.3.0Use BaseConfirmationPage instead, which provides better template method pattern, builder support, and code organization.
com.ultikits.ultitools.abstracts.guis.PagingPageREMOVED6.2.06.3.06.3.0Use BasePaginationPage instead, which provides better template method pattern and code organization.
com.ultikits.ultitools.abstracts.UltiToolsPlugin#getVersionWrapper(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils instead.
com.ultikits.ultitools.abstracts.UltiToolsPlugin#UltiToolsPlugin(...)REMOVED6.0.86.3.06.3.0Use the seven-argument constructor and pass {@code resourceFolderPath} explicitly. This overload hard-codes it to {@code <dataFolder>/pluginConfig/<pluginName>}.
com.ultikits.ultitools.annotations.command.OptionalParamREMOVED6.0.76.3.06.3.0Never implemented — no code reads this annotation, so applying it has no effect on command parsing. There is no replacement: declare a separate {@code @CmdMapping} format for each accepted argument shape.
com.ultikits.ultitools.context.UltiToolsBean#getVersionWrapper(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils instead.
com.ultikits.ultitools.interfaces.DataStore#getOperator(...)ANNOUNCED6.3.06.4.0Carries no ownership check of its own (D-14/D-18) -- a {@code DataStore} implementation that overrides this method directly must call checkOwnership(UltiToolsPlugin, Class) as its own first statement to get the refusal; the three backends shipped by this framework all do (02-12). Framework- internal callers ({@code UltiToolsPlugin.getDataOperator}) already check ownership themselves before calling this. Use getOperator(DataScope, Class).
com.ultikits.ultitools.interfaces.DataStore#getOperator(...)ANNOUNCED6.3.06.4.0Enforces D-18's ownership check via checkOwnership(java.io.File, Class) as its own first statement -- a {@code DataStore} implementation that overrides this method directly must call the same helper to get the refusal; the three backends shipped by this framework all do (02-12). Framework-internal callers ({@code UltiToolsAPI.getDataOperator}) already check ownership themselves before calling this. Use getOperator(DataScope, Class).
com.ultikits.ultitools.interfaces.impl.DefaultVersionWrapperREMOVED6.2.06.3.06.3.0Use XVersionUtils directly instead.
com.ultikits.ultitools.interfaces.impl.PlayerTempListenerREMOVED6.1.06.3.06.3.0Use TempListener#common(Class) and filter by player instead.
com.ultikits.ultitools.interfaces.impl.SimpleTempListener#SimpleTempListener(...)ANNOUNCED6.3.06.3.0Use the four-argument {@code (Class, EventPriority, TempEventHandler, Function)} constructor (Lombok-generated via {@code @AllArgsConstructor}, so it has no source declaration to link to) or TempListener#common(Class). Scheduled for removal in Phase 7 of the 6.3.0 milestone.
com.ultikits.ultitools.interfaces.impl.SimpleTempListener#SimpleTempListener(...)ANNOUNCED6.3.06.3.0Use the four-argument {@code (Class, EventPriority, TempEventHandler, Function)} constructor (Lombok-generated via {@code @AllArgsConstructor}, so it has no source declaration to link to) or TempListener#common(Class). Scheduled for removal in Phase 7 of the 6.3.0 milestone.
com.ultikits.ultitools.interfaces.impl.SimpleTempListener#SimpleTempListener(...)ANNOUNCED6.3.06.3.0Use the four-argument {@code (Class, EventPriority, TempEventHandler, Function)} constructor (Lombok-generated via {@code @AllArgsConstructor}, so it has no source declaration to link to) or TempListener#common(Class). Scheduled for removal in Phase 7 of the 6.3.0 milestone.
com.ultikits.ultitools.interfaces.impl.SimpleTempListener#SimpleTempListener(...)ANNOUNCED6.3.06.3.0Use the four-argument {@code (Class, EventPriority, TempEventHandler, Function)} constructor (Lombok-generated via {@code @AllArgsConstructor}, so it has no source declaration to link to) or TempListener#common(Class). Scheduled for removal in Phase 7 of the 6.3.0 milestone.
com.ultikits.ultitools.interfaces.TempListener#player(...)REMOVED6.1.06.3.06.3.0Use common(Class) instead. You can use DefaultTempListenerBuilder#filter(Function) to filter player events.
com.ultikits.ultitools.interfaces.TempListener$PlayerTempListenerBuilderREMOVED6.1.06.3.06.3.0Use common(Class) instead, narrowing with DefaultTempListenerBuilder#filter(Function).
com.ultikits.ultitools.interfaces.TransactionManager#getConnection(...)ANNOUNCED6.3.06.4.0JDBC-specific; not every {@code TransactionManager} backs a DataSource. Program against JdbcTransactionManager#getConnection() instead. This default throws UnsupportedOperationException for any backend that only implements the base interface.
com.ultikits.ultitools.interfaces.TransactionManager#setIsolationLevel(...)ANNOUNCED6.3.06.4.0JDBC-specific; program against JdbcTransactionManager#setIsolationLevel(int) instead. This default throws UnsupportedOperationException for any backend that only implements the base interface.
com.ultikits.ultitools.interfaces.TransactionManager#setReadOnly(...)ANNOUNCED6.3.06.4.0JDBC-specific; program against JdbcTransactionManager#setReadOnly(boolean) instead. This default throws UnsupportedOperationException for any backend that only implements the base interface.
com.ultikits.ultitools.interfaces.VersionWrapperREMOVED6.2.06.3.06.3.0Use XVersionUtils static methods instead. This interface is kept for backward compatibility only. Will be removed in a future version.
com.ultikits.ultitools.interfaces.VersionWrapper#getBed(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getBed(Colors) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getBlockFace(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getBlockFace(Block) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getColoredPlaneGlass(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getColoredPlaneGlass(Colors) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getEmailMaterial(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getEmailMaterial(boolean) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getEndEye(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getEndEye() instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getGrassBlock(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getGrassBlock() instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getHead(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getHead(OfflinePlayer) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getItemDurability(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getItemDurability(ItemStack) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getItemInHand(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getItemInHand(Player, boolean) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getSign(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getSign() instead.
com.ultikits.ultitools.interfaces.VersionWrapper#getSound(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#getSound(Sounds) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#registerNewObjective(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#registerNewObjective(Scoreboard, String, String, String) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#sendActionBar(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#sendActionBar(Player, String) instead.
com.ultikits.ultitools.interfaces.VersionWrapper#sendPlayerList(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils#sendPlayerList(Player, String, String) instead.
com.ultikits.ultitools.manager.CommandManager#register(...)REMOVED6.0.56.3.06.3.0Use register(UltiToolsPlugin, Class, String, String, String...) instead.
com.ultikits.ultitools.manager.CommandManager#register(...)REMOVED6.0.56.3.06.3.0Use register(UltiToolsPlugin, Class) instead.
com.ultikits.ultitools.manager.CommandManager#registerAll(...)REMOVED6.2.56.3.06.3.0This overload casts every scanned class to AbstractCommandExecutor, which is itself scheduled for removal in 6.3.0. A command class written against the current BaseCommandExecutor does not extend that type, so the cast throws ClassCastException — and the surrounding catch lists only the four reflective checked exceptions, so it escapes. Use registerAll(UltiToolsPlugin), which resolves command classes as beans from the plugin's container and performs no cast. See issue #272.
com.ultikits.ultitools.manager.ListenerManager#register(...)REMOVED6.0.56.3.06.3.0Use register(UltiToolsPlugin, Class) instead; this overload takes an already-constructed instance and therefore performs no dependency injection.
com.ultikits.ultitools.manager.ListenerManager#registerAll(...)REMOVED6.3.06.3.06.3.0This overload reflectively scans and instantiates every {@code @EventListener} class in {@code packageName} without ever consulting EventListener#manualRegister() -- a listener its author deliberately withheld from auto-registration is registered anyway. After plan 04-08, PluginManager#registerBukkit no longer has an in-framework caller for this overload either; both registration entry points resolve listeners as beans from the module's own container instead. Use registerAll(UltiToolsPlugin), which does honour {@code manualRegister()}. See issue #337.
com.ultikits.ultitools.manager.PluginDependencyResolver$PluginNode#getAllDependencies(...)ANNOUNCED6.3.06.4.0use getAllDependencies(Set, Map), which resolves each entry through the plugin.yml-name alias map (D-12) before checking availability
com.ultikits.ultitools.manager.PluginManager#initializePlugin(...)REMOVED6.3.06.3.06.3.0This reflective, with-args construction path has failed on every release since 6.2.0 (Phase 1 D-15, measured): SecurityPolicy#isSafeParameterType matches collection arguments by exact runtime-class-name prefix ({@code java.util.List}, {@code java.util.ArrayList}, ...), and neither {@code Arrays.asList(...)}'s runtime type ({@code java.util.Arrays$ArrayList}) nor any {@code Collections.*} wrapper type matches any of those prefixes -- the list-typed arguments a caller actually supplies are rejected before construction ever runs. This path is scheduled for removal (issue #332) rather than repair; only the seven-argument register(Class, String, String, List, List, int, String) calls it with a non-empty argument array.
com.ultikits.ultitools.manager.PluginManager#register(...)REMOVED6.3.06.3.06.3.0This overload's reflective, with-args construction has failed on every release since 6.2.0 (Phase 1 D-15, measured): SecurityPolicy#isSafeParameterType rejects the runtime types {@code authors} and {@code loadAfter} actually are ({@code Arrays.asList(...)}'s {@code java.util.Arrays$ArrayList}, or any {@code Collections.*} wrapper) before the module's constructor ever runs. This overload existed to bypass {@code plugin.yml}-based metadata for connector callers; use register(UltiToolsPlugin) instead, which takes an already-constructed plugin instance and has no reflective construction path of its own. See issue #332.
com.ultikits.ultitools.UltiTools#getVersionWrapper(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils instead.
com.ultikits.ultitools.UltiTools#versionWrapper(...)REMOVED6.2.06.3.06.3.0Use XVersionUtils instead.
com.ultikits.ultitools.utils.AnnotationUtils#findAnnotation(...)ANNOUNCED6.3.06.4.0This legacy lookup only walks one meta-annotation level and never merges {@code @AliasFor} overrides. Use MergedAnnotationResolver#find instead, which walks the whole annotation tree and applies any {@code @AliasFor} override found along the way.
com.ultikits.ultitools.utils.SecurityPolicy#addDangerousClass(...)DEPRECATED6.3.0Since 6.3.0 (GEN-07): this method no longer mutates {@code ClassloadFilterAudit.SYSTEM_DANGEROUS_CLASSES} or anything else. The signature is retained because it is {@code public static} on a published class.
com.ultikits.ultitools.utils.SecurityPolicy#addTrustedPackage(...)DEPRECATED6.3.0Since 6.3.0 (GEN-07): this method no longer mutates {@code ClassloadFilterAudit.TRUSTED_PACKAGE_PREFIXES} or anything else. The signature is retained because it is {@code public static} on a published class.
com.ultikits.ultitools.utils.SecurityPolicy#isSafeClassName(...)DEPRECATED6.3.0Since 6.3.0 (GEN-07) this method is an unconditional no-op -- the three name-based classload filter layers it enforced never protected anything (they evaluated already-trusted, already-loaded classes, not arbitrary untrusted input), and the trusted-package whitelist alone would have refused nearly every third-party module class. The signature is retained because it is {@code public static} on a published class and cannot be removed without breaking a downstream caller's compile. See the package-private {@code ClassloadFilterAudit} for what these removed layers would have refused, now recorded as telemetry.
com.ultikits.ultitools.utils.SecurityPolicy#isSafeParameterType(...)DEPRECATED6.3.0Since 6.3.0 (GEN-07), for the same reason as isSafeClassName(String) -- its only in-tree caller (the seven-argument {@code PluginManager.register}/with-args reflective-construction path) was deleted by GEN-04, which is what dissolved this method's former "shared-field, can't safely delete the whitelist" objection.

如何读这张表

状态 只有三种取值。DEPRECATED 表示该成员带 @Deprecated,但没有计划移除,签名会为兼容性保留,替代方案说明了原因。ANNOUNCED 表示该成员带 @Deprecated(forRemoval = true) 且仍然存在,目标移除版本 记录它将在哪个版本消失。REMOVED 表示该成员已经从当前 API 中消失,实际移除版本 记录它是在哪个版本被移除的,过了那个版本这个类型或方法就不再存在。

目标移除版本实际移除版本 可能与 起始版本相差不止一个发布周期。一个成员可能在某个版本被标记弃用,之后又保留了好几个发布周期,直到目标版本真正发布了那次移除。

贡献者

The avatar of contributor named as Ling Bao Ling Bao

页面历史

基于 MIT 许可发布