[FEAT] APIs for Player Revive mod and Whitelist changes

This commit is contained in:
2025-02-01 15:30:30 +02:00
parent 74701a7817
commit a4aa7108e5
202 changed files with 2410 additions and 96 deletions

View File

@@ -9,6 +9,8 @@ dependencies {
stupidRemapArch("dev.ftb.mods:ftb-ranks-forge:${ftb_ranks}")
modImplementation("me.shedaniel.cloth:cloth-config-forge:${cloth_config}")
modImplementation("unimaven.curseforge:playerrevive-266890:${player_revive}")
modImplementation("unimaven.curseforge:creativecore-257814:${creative_core}")
// Do not edit or remove
implementation project(":Common")

View File

@@ -2,6 +2,7 @@ package com.hypherionmc.craterlib;
import com.hypherionmc.craterlib.api.events.client.LateInitEvent;
import com.hypherionmc.craterlib.common.ForgeServerEvents;
import com.hypherionmc.craterlib.compat.PlayerReviveEvents;
import com.hypherionmc.craterlib.compat.Vanish;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import com.hypherionmc.craterlib.core.networking.CraterPacketNetwork;
@@ -37,5 +38,9 @@ public class CraterLib {
if (ModloaderEnvironment.INSTANCE.isModLoaded("vmod")) {
MinecraftForge.EVENT_BUS.register(new Vanish());
}
if (ModloaderEnvironment.INSTANCE.isModLoaded("playerrevive")) {
MinecraftForge.EVENT_BUS.register(new PlayerReviveEvents());
}
}
}

View File

@@ -3,6 +3,8 @@ package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.core.platform.CompatUtils;
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import team.creative.playerrevive.api.IBleeding;
import team.creative.playerrevive.server.PlayerReviveServer;
import redstonedubstep.mods.vanishmod.VanishUtil;
public class ForgeCompatHelper implements CompatUtils {
@@ -19,4 +21,30 @@ public class ForgeCompatHelper implements CompatUtils {
public String getSkinUUID(BridgedPlayer player) {
return player.getStringUUID();
}
@Override
public boolean isPlayerBleeding(BridgedPlayer player) {
if (!ModloaderEnvironment.INSTANCE.isModLoaded("playerrevive"))
return false;
return PlayerReviveServer.isBleeding(player.toMojangServerPlayer());
}
@Override
public boolean playerBledOut(BridgedPlayer player) {
if (!ModloaderEnvironment.INSTANCE.isModLoaded("playerrevive"))
return false;
IBleeding bleeding = PlayerReviveServer.getBleeding(player.toMojangServerPlayer());
return bleeding != null && bleeding.bledOut();
}
@Override
public boolean playerRevived(BridgedPlayer player) {
if (!ModloaderEnvironment.INSTANCE.isModLoaded("playerrevive"))
return false;
IBleeding bleeding = PlayerReviveServer.getBleeding(player.toMojangServerPlayer());
return bleeding != null && bleeding.revived();
}
}

View File

@@ -0,0 +1,23 @@
package com.hypherionmc.craterlib.compat;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
import lombok.NoArgsConstructor;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import team.creative.playerrevive.api.event.PlayerBleedOutEvent;
import team.creative.playerrevive.api.event.PlayerRevivedEvent;
@NoArgsConstructor
public class PlayerReviveEvents {
@SubscribeEvent
public void playerRevived(PlayerRevivedEvent event) {
CraterEventBus.INSTANCE.postEvent(com.hypherionmc.craterlib.api.events.compat.PlayerRevivedEvent.of(BridgedPlayer.of(event.getEntity())));
}
@SubscribeEvent
public void playerBledOutEvent(PlayerBleedOutEvent event) {
CraterEventBus.INSTANCE.postEvent(com.hypherionmc.craterlib.api.events.compat.PlayerRevivedEvent.of(BridgedPlayer.of(event.getEntity())));
}
}