Skip to content

Commit

Permalink
No more monkeys jumping on the bed
Browse files Browse the repository at this point in the history
  • Loading branch information
kyrptonaught committed Dec 31, 2023
1 parent 7597097 commit bdf1439
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 10 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# Server Utils

For Fabric 1.19.4
For Fabric 1.20.1

A group of utilities for fabric servers.

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ loader_version=0.14.24
fabric_version=0.90.4+1.20.1

# Mod Properties
mod_version=1.0.7b1-1.20.1
mod_version=1.0.7b2-1.20.1
maven_group=net.kyrptonaught
archives_base_name=ServerUtils

Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import com.mojang.brigadier.arguments.BoolArgumentType;
import net.kyrptonaught.serverutils.Module;
import net.minecraft.command.argument.EntityArgumentType;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.network.packet.s2c.play.EntityStatusEffectS2CPacket;
import net.minecraft.network.packet.s2c.play.RemoveEntityStatusEffectS2CPacket;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
Expand All @@ -21,29 +25,70 @@ public void registerCommands(CommandDispatcher<ServerCommandSource> dispatcher)
.requires((source) -> source.hasPermissionLevel(2))

.then(CommandManager.argument("enabled", BoolArgumentType.bool())
.executes(context -> execute(null, BoolArgumentType.getBool(context, "enabled"))))
.executes(context -> executeLockdown(null, BoolArgumentType.getBool(context, "enabled"))))

.then(CommandManager.argument("players", EntityArgumentType.players())
.then(CommandManager.argument("enabled", BoolArgumentType.bool())
.executes(context -> execute(EntityArgumentType.getPlayers(context, "players"), BoolArgumentType.getBool(context, "enabled")))))
.executes(context -> executeLockdown(EntityArgumentType.getPlayers(context, "players"), BoolArgumentType.getBool(context, "enabled")))))

.then(CommandManager.literal("clear")
.executes(context -> {
GLOBAL_LOCKDOWN = false;
LOCKEDDOWNPLAYERS.clear();
return 1;
})));
dispatcher.register(CommandManager.literal("playerfreeze")
.requires((source) -> source.hasPermissionLevel(2))

.then(CommandManager.argument("players", EntityArgumentType.players())
.then(CommandManager.argument("enabled", BoolArgumentType.bool())
.executes(context -> executeFreeze(EntityArgumentType.getPlayers(context, "players"), BoolArgumentType.getBool(context, "enabled")))))

.then(CommandManager.literal("clear")
.executes(context -> {
executeFreeze(context.getSource().getServer().getPlayerManager().getPlayerList(), false);
return 1;
})));
}

private static int execute(Collection<ServerPlayerEntity> players, boolean enabled) {
private static int executeLockdown(Collection<ServerPlayerEntity> players, boolean enabled) {
if (players == null) {
GLOBAL_LOCKDOWN = enabled;
return 1;
}
players.forEach(serverPlayerEntity -> {
if (enabled) LOCKEDDOWNPLAYERS.add(serverPlayerEntity.getUuidAsString());
else LOCKEDDOWNPLAYERS.remove(serverPlayerEntity.getUuidAsString());
});
for (ServerPlayerEntity serverPlayerEntity : players) {
if (enabled) {
LOCKEDDOWNPLAYERS.add(serverPlayerEntity.getUuidAsString());
} else {
LOCKEDDOWNPLAYERS.remove(serverPlayerEntity.getUuidAsString());
}
}

return 1;
}

private static int executeFreeze(Collection<ServerPlayerEntity> players, boolean enabled) {
for (ServerPlayerEntity serverPlayerEntity : players) {
if (enabled) {
serverPlayerEntity.getAbilities().setFlySpeed(0);
serverPlayerEntity.getAbilities().setWalkSpeed(0);
serverPlayerEntity.getAbilities().flying = false;
serverPlayerEntity.sendAbilitiesUpdate();
serverPlayerEntity.startFallFlying();
serverPlayerEntity.networkHandler.sendPacket(new EntityStatusEffectS2CPacket(serverPlayerEntity.getId(), new StatusEffectInstance(StatusEffects.JUMP_BOOST, -1, 250, false, false)));

} else {
serverPlayerEntity.getAbilities().setFlySpeed(.05f);
serverPlayerEntity.getAbilities().setWalkSpeed(.1f);

StatusEffectInstance effect = serverPlayerEntity.getStatusEffect(StatusEffects.JUMP_BOOST);
if (effect != null) {
serverPlayerEntity.networkHandler.sendPacket(new EntityStatusEffectS2CPacket(serverPlayerEntity.getId(), effect));
} else {
serverPlayerEntity.networkHandler.sendPacket(new RemoveEntityStatusEffectS2CPacket(serverPlayerEntity.getId(), StatusEffects.JUMP_BOOST));
}
}
}

return 1;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "serverutils",
"version": "1.0.7b1-1.20.1",
"version": "1.0.7b2-1.20.1",
"name": "Server Utils",
"description": "A group of utilities for servers",
"authors": [
Expand Down

0 comments on commit bdf1439

Please sign in to comment.