Add Back Support for Legacy API (#2409)

* Add back support for the legacy API temporarily

* Bump API to release version
This commit is contained in:
Axionize authored and GitHub committed 2026-01-06 18:04:54 -05:00
1 parent 02f6a3b51b
commit 95e2774f59
6 files changed
+111 -4

No files matched your search

@@ -56,7 +56,7 @@ object BuildConfig {
_shadePE = resolveBool(project, "shadePE", altKey = "SHADE_PE", default = true)
_relocate = resolveBool(project, "relocate", altKey = "RELOCATE_JAR", default = true)
_release = resolveBool(project, "release", default = false)
_mavenLocalOverride = resolveBool(project, "mavenLocalOverride", default = false)
_mavenLocalOverride = resolveBool(project, "mavenLocalOverride", altKey = "MAVEN_LOCAL_OVERRIDE", default = false)
}
// Unified resolution logic (System > Gradle > Env)
+1
View File
@@ -51,6 +51,7 @@ dependencies {
}
implementation(libs.cloud.paper)
implementation(libs.adventure.platform.bukkit)
implementation(libs.grim.bukkit.api)
implementation(project(":common"))
shadow(project(":common"))
@@ -1,8 +1,10 @@
package ac.grim.grimac.platform.bukkit;
import ac.grim.grimac.GrimAPI;
import ac.grim.grimac.GrimExternalAPI;
import ac.grim.grimac.api.GrimAPIProvider;
import ac.grim.grimac.api.GrimAbstractAPI;
import ac.grim.grimac.api.event.EventBus;
import ac.grim.grimac.api.plugin.GrimPlugin;
import ac.grim.grimac.events.GrimExtensionManager;
import ac.grim.grimac.manager.init.Initable;
@@ -132,8 +134,81 @@ public final class GrimACBukkitLoaderPlugin extends JavaPlugin implements Platfo
@Override
public void registerAPIService() {
GrimAPIProvider.init(GrimAPI.INSTANCE.getExternalAPI());
Bukkit.getServicesManager().register(GrimAbstractAPI.class, GrimAPI.INSTANCE.getExternalAPI(), GrimACBukkitLoaderPlugin.LOADER, ServicePriority.Normal);
final GrimExternalAPI externalAPI = GrimAPI.INSTANCE.getExternalAPI();
final EventBus eventBus = externalAPI.getEventBus();
final ac.grim.grimac.api.plugin.GrimPlugin context = GrimAPI.INSTANCE.getGrimPlugin();
eventBus.subscribe(context, ac.grim.grimac.api.event.events.GrimJoinEvent.class, (event) -> {
ac.grim.grimac.api.events.GrimJoinEvent bukkitEvent =
new ac.grim.grimac.api.events.GrimJoinEvent(event.getUser());
Bukkit.getPluginManager().callEvent(bukkitEvent);
});
eventBus.subscribe(context, ac.grim.grimac.api.event.events.GrimQuitEvent.class, (event) -> {
ac.grim.grimac.api.events.GrimQuitEvent bukkitEvent =
new ac.grim.grimac.api.events.GrimQuitEvent(event.getUser());
Bukkit.getPluginManager().callEvent(bukkitEvent);
});
eventBus.subscribe(context, ac.grim.grimac.api.event.events.GrimReloadEvent.class, (event) -> {
ac.grim.grimac.api.events.GrimReloadEvent bukkitEvent =
new ac.grim.grimac.api.events.GrimReloadEvent(event.isSuccess());
Bukkit.getPluginManager().callEvent(bukkitEvent);
});
eventBus.subscribe(context, ac.grim.grimac.api.event.events.FlagEvent.class, (event) -> {
ac.grim.grimac.api.events.FlagEvent bukkitEvent =
new ac.grim.grimac.api.events.FlagEvent(
event.getUser(),
event.getCheck(),
event.getVerbose()
);
Bukkit.getPluginManager().callEvent(bukkitEvent);
if (bukkitEvent.isCancelled()) {
event.setCancelled(true);
}
});
eventBus.subscribe(context, ac.grim.grimac.api.event.events.CommandExecuteEvent.class, (event) -> {
ac.grim.grimac.api.events.CommandExecuteEvent bukkitEvent =
new ac.grim.grimac.api.events.CommandExecuteEvent(
event.getUser(),
event.getCheck(),
event.getVerbose(),
event.getCommand()
);
Bukkit.getPluginManager().callEvent(bukkitEvent);
if (bukkitEvent.isCancelled()) {
event.setCancelled(true);
}
});
eventBus.subscribe(context, ac.grim.grimac.api.event.events.CompletePredictionEvent.class, (event) -> {
// Note: New event doesn't have verbose, passing null or check name is standard fallback
ac.grim.grimac.api.events.CompletePredictionEvent bukkitEvent =
new ac.grim.grimac.api.events.CompletePredictionEvent(
event.getUser(),
event.getCheck(),
"",
event.getOffset()
);
Bukkit.getPluginManager().callEvent(bukkitEvent);
if (bukkitEvent.isCancelled()) {
event.setCancelled(true);
}
});
GrimAPIProvider.init(externalAPI);
Bukkit.getServicesManager().register(GrimAbstractAPI.class, externalAPI, GrimACBukkitLoaderPlugin.LOADER, ServicePriority.Normal);
}
private PlatformScheduler createScheduler() {
@@ -11,6 +11,7 @@ import ac.grim.grimac.platform.api.player.PlatformPlayer;
import ac.grim.grimac.player.GrimPlayer;
import ac.grim.grimac.utils.anticheat.MessageUtil;
import net.kyori.adventure.text.Component;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -368,4 +369,32 @@ public final class AlertManagerImpl implements AlertManager, ConfigReloadable, S
public boolean hasAlertListeners() {
return AlertType.NORMAL.hasListeners();
}
@Override
public boolean hasAlertsEnabled(Player player) {
if (player == null) return false;
GrimUser user = GrimAPI.INSTANCE.getPlayerDataManager().getPlayer(player.getUniqueId());
return hasAlertsEnabled(user);
}
@Override
public void toggleAlerts(Player player) {
if (player == null) return;
GrimUser user = GrimAPI.INSTANCE.getPlayerDataManager().getPlayer(player.getUniqueId());
toggleAlerts(user);
}
@Override
public boolean hasVerboseEnabled(Player player) {
if (player == null) return false;
GrimUser user = GrimAPI.INSTANCE.getPlayerDataManager().getPlayer(player.getUniqueId());
return hasVerboseEnabled(user);
}
@Override
public void toggleVerbose(Player player) {
if (player == null) return;
GrimUser user = GrimAPI.INSTANCE.getPlayerDataManager().getPlayer(player.getUniqueId());
toggleVerbose(user);
}
}
+1
View File
@@ -1,2 +1,3 @@
org.gradle.jvmargs=-Xmx3072M -XX:MaxMetaspaceSize=768m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
mavenLocalOverride=true
+2 -1
View File
@@ -11,7 +11,7 @@ cloud-processors-requirements = "1.0.0-rc.1"
# --- Minecraft-Specific APIs ---
floodgate-api = "2.0-SNAPSHOT"
geyser-base-api = "1.0.2"
grim-api = "1.2.0.0"
grim-api = "1.2.1.0"
packetevents = "2.11.2+a28fb76-SNAPSHOT"
placeholderapi = "2.11.6"
viaversion = "5.5.0"
@@ -49,6 +49,7 @@ configuralize = { group = "github.scarsz", name = "configuralize", version.ref =
floodgate-api = { group = "org.geysermc.floodgate", name = "api", version.ref = "floodgate-api"}
geyser-base-api = { group = "org.geysermc.api", name = "base-api", version.ref = "geyser-base-api" }
grim-api = { group = "ac.grim.grimac", name = "GrimAPI", version.ref = "grim-api" }
grim-bukkit-api = { group = "ac.grim.grimac", name = "grim-bukkit-api", version.ref = "grim-api" }
packetevents-api = { group = "com.github.retrooper", name = "packetevents-api", version.ref = "packetevents" }
packetevents-fabric = { group = "com.github.retrooper", name = "packetevents-fabric", version.ref = "packetevents" }
packetevents-spigot = { group = "com.github.retrooper", name = "packetevents-spigot", version.ref = "packetevents"}