forked from BRNSystems/tweaks
init
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
package systems.brn.justteleportalready;
|
||||
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory;
|
||||
import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry;
|
||||
import net.minecraft.world.GameRules;
|
||||
|
||||
public class Justteleportalready implements ModInitializer {
|
||||
public static final GameRules.Key<GameRules.IntRule> Entity_Portal_Cooldown =
|
||||
GameRuleRegistry.register("entityPortalCooldown", GameRules.Category.MOBS, GameRuleFactory.createIntRule(300));
|
||||
public static final GameRules.Key<GameRules.IntRule> Enderpearl_Damage =
|
||||
GameRuleRegistry.register("enderpearlDamage", GameRules.Category.PLAYER, GameRuleFactory.createIntRule(5));
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package systems.brn.justteleportalready.mixin;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.damage.DamageSource;
|
||||
import net.minecraft.world.World;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
import static systems.brn.justteleportalready.Justteleportalready.Enderpearl_Damage;
|
||||
|
||||
@Mixin(net.minecraft.entity.projectile.thrown.EnderPearlEntity.class)
|
||||
public class DontHurtMePearlMixin {
|
||||
|
||||
@Redirect(method = "onCollision(Lnet/minecraft/util/hit/HitResult;)V",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/entity/Entity;damage(Lnet/minecraft/entity/damage/DamageSource;F)Z"))
|
||||
private boolean redirectDamage(Entity entity, DamageSource source, float amount) {
|
||||
World world = entity.getWorld();
|
||||
entity.damage(source, world.getGameRules().getInt(Enderpearl_Damage));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package systems.brn.justteleportalready.mixin;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import static systems.brn.justteleportalready.Justteleportalready.Entity_Portal_Cooldown;
|
||||
|
||||
@Mixin(net.minecraft.entity.Entity.class)
|
||||
public class JustTeleportAlreadyMixin {
|
||||
@Shadow private World world;
|
||||
|
||||
@Inject(method = "getDefaultPortalCooldown",
|
||||
at = @At(value = "RETURN"),
|
||||
cancellable = true)
|
||||
private void getDefaultPortalCooldown(CallbackInfoReturnable<Integer> cir) {
|
||||
cir.setReturnValue(world.getGameRules().getInt(Entity_Portal_Cooldown));
|
||||
}
|
||||
|
||||
@Shadow protected int portalCooldown;
|
||||
@Inject(method = "tickPortalCooldown", at = @At(value = "RETURN"))
|
||||
private void tickPortalCooldown(CallbackInfo ci) {
|
||||
int maxCooldown = world.getGameRules().getInt(Entity_Portal_Cooldown);
|
||||
if (portalCooldown > maxCooldown) {
|
||||
portalCooldown = maxCooldown;
|
||||
}
|
||||
}
|
||||
}
|
||||
27
src/main/resources/fabric.mod.json
Normal file
27
src/main/resources/fabric.mod.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "justteleportalready",
|
||||
"version": "${version}",
|
||||
"name": "justteleportalready",
|
||||
"description": "",
|
||||
"authors": [],
|
||||
"contact": {
|
||||
"repo": "https://git.brn.systems/BRNSystems/justteleportalreadyatencryptor"
|
||||
},
|
||||
"license": "MIT",
|
||||
"icon": "assets/justteleportalready/icon.png",
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"main": [
|
||||
"systems.brn.justteleportalready.Justteleportalready"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
"justteleportalready.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
"fabricloader": ">=${loader_version}",
|
||||
"fabric": "*",
|
||||
"minecraft": "${minecraft_version}"
|
||||
}
|
||||
}
|
||||
12
src/main/resources/justteleportalready.mixins.json
Normal file
12
src/main/resources/justteleportalready.mixins.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "systems.brn.justteleportalready.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"mixins": [
|
||||
"DontHurtMePearlMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user