Removed reach command and functionality to break multiple blocks in survival.

This commit is contained in:
Christian Knaapen
2022-02-13 01:11:02 +01:00
parent a1d30fd752
commit 780d5cc972
4 changed files with 1 additions and 123 deletions

View File

@@ -54,33 +54,12 @@ public class BuildConfig {
} }
public static class SurvivalBalancers { public static class SurvivalBalancers {
public final ForgeConfigSpec.ConfigValue<Boolean> breakFar;
public final ForgeConfigSpec.ConfigValue<Boolean> increasedMiningTime;
public final ForgeConfigSpec.ConfigValue<Integer> miningTimePercentage;
public final ForgeConfigSpec.ConfigValue<Integer> quickReplaceMiningLevel; public final ForgeConfigSpec.ConfigValue<Integer> quickReplaceMiningLevel;
public final ForgeConfigSpec.ConfigValue<Integer> undoStackSize; public final ForgeConfigSpec.ConfigValue<Integer> undoStackSize;
public SurvivalBalancers(ForgeConfigSpec.Builder builder) { public SurvivalBalancers(ForgeConfigSpec.Builder builder) {
builder.push("SurvivalBalancers"); builder.push("SurvivalBalancers");
breakFar = builder
.comment("Allows a survival player to break blocks that are far away, in addition to placing blocks.",
"Note: this allows insta-breaking of blocks in survival.")
.define("breakFar", false);
increasedMiningTime = builder
.comment("Increases the time to mine a block when breaking multiple at once.",
"Mining time depends on how many blocks, what type of blocks, and the percentage below.",
"Example: breaking 1 dirt + 1 obsidian takes the time of breaking 1 dirt + 1 obsidian.")
.define("increasedMiningTime", true);
miningTimePercentage = builder
.comment("How much the mining time of each additional block counts towards an increased mining time.",
"A percentage between 0% and 100%, where 0% is the same as disabling it,",
"and 100% takes as much time as breaking each block individually.",
"The block in front of you always counts as 100%.")
.defineInRange("miningTimePercentage", 50, 0, 200);
quickReplaceMiningLevel = builder quickReplaceMiningLevel = builder
.comment("Determines what blocks can be replaced in survival.", .comment("Determines what blocks can be replaced in survival.",
"-1: only blocks that can be harvested by hand (default)", "-1: only blocks that can be harvested by hand (default)",

View File

@@ -1,13 +1,10 @@
package nl.requios.effortlessbuilding; package nl.requios.effortlessbuilding;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.AttachCapabilitiesEvent;
import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.RegisterCommandsEvent;
@@ -18,21 +15,16 @@ import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.PacketDistributor;
import nl.requios.effortlessbuilding.buildmode.BuildModes; import nl.requios.effortlessbuilding.buildmode.BuildModes;
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager; import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;
import nl.requios.effortlessbuilding.buildmodifier.BuildModifiers;
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager; import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
import nl.requios.effortlessbuilding.buildmodifier.UndoRedo; import nl.requios.effortlessbuilding.buildmodifier.UndoRedo;
import nl.requios.effortlessbuilding.capability.ModeCapabilityManager; import nl.requios.effortlessbuilding.capability.ModeCapabilityManager;
import nl.requios.effortlessbuilding.capability.ModifierCapabilityManager; import nl.requios.effortlessbuilding.capability.ModifierCapabilityManager;
import nl.requios.effortlessbuilding.command.ReachCommand;
import nl.requios.effortlessbuilding.helper.ReachHelper; import nl.requios.effortlessbuilding.helper.ReachHelper;
import nl.requios.effortlessbuilding.helper.SurvivalHelper;
import nl.requios.effortlessbuilding.network.AddUndoMessage; import nl.requios.effortlessbuilding.network.AddUndoMessage;
import nl.requios.effortlessbuilding.network.ClearUndoMessage; import nl.requios.effortlessbuilding.network.ClearUndoMessage;
import nl.requios.effortlessbuilding.network.PacketHandler; import nl.requios.effortlessbuilding.network.PacketHandler;
import nl.requios.effortlessbuilding.network.RequestLookAtMessage; import nl.requios.effortlessbuilding.network.RequestLookAtMessage;
import java.util.List;
@Mod.EventBusSubscriber(modid = EffortlessBuilding.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE) @Mod.EventBusSubscriber(modid = EffortlessBuilding.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE)
public class EventHandler { public class EventHandler {
@@ -45,11 +37,6 @@ public class EventHandler {
} }
} }
@SubscribeEvent
public void onRegisterCommands(RegisterCommandsEvent event) {
ReachCommand.register(event.getDispatcher());
}
@SubscribeEvent @SubscribeEvent
public static void onBlockPlaced(BlockEvent.EntityPlaceEvent event) { public static void onBlockPlaced(BlockEvent.EntityPlaceEvent event) {
if (event.getWorld().isClientSide()) return; if (event.getWorld().isClientSide()) return;
@@ -111,45 +98,6 @@ public class EventHandler {
} }
} }
// @SubscribeEvent
// public static void breakSpeed(PlayerEvent.BreakSpeed event) {
// //Disable if config says so
// if (!BuildConfig.survivalBalancers.increasedMiningTime.get()) return;
//
// if (event.getPlayer() instanceof FakePlayer) return;
//
// Player player = event.getPlayer();
// Level world = player.level;
// BlockPos pos = event.getPos();
//
// //EffortlessBuilding.log(player, String.valueOf(event.getNewSpeed()));
//
// float originalBlockHardness = event.getState().getDestroySpeed(world, pos);
// if (originalBlockHardness < 0) return; //Dont break bedrock
// float totalBlockHardness = 0;
// //get coordinates
// List<BlockPos> coordinates = BuildModifiers.findCoordinates(player, pos);
// for (int i = 1; i < coordinates.size(); i++) {
// BlockPos coordinate = coordinates.get(i);
// //get existing blockstates at those coordinates
// BlockState blockState = world.getBlockState(coordinate);
// //add hardness for each blockstate, if can break
// if (SurvivalHelper.canBreak(world, player, coordinate))
// totalBlockHardness += blockState.getDestroySpeed(world, coordinate);
// }
//
// //Grabbing percentage from config
// float percentage = (float) BuildConfig.survivalBalancers.miningTimePercentage.get() / 100;
// totalBlockHardness *= percentage;
// totalBlockHardness += originalBlockHardness;
//
// float newSpeed = event.getOriginalSpeed() / totalBlockHardness * originalBlockHardness;
// if (Float.isNaN(newSpeed) || newSpeed == 0f) newSpeed = 1f;
// event.setNewSpeed(newSpeed);
//
// //EffortlessBuilding.log(player, String.valueOf(event.getNewSpeed()));
// }
@SubscribeEvent @SubscribeEvent
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getPlayer() instanceof FakePlayer) return; if (event.getPlayer() instanceof FakePlayer) return;

View File

@@ -1,49 +0,0 @@
package nl.requios.effortlessbuilding.command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.IntegerArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.network.chat.TextComponent;
import net.minecraftforge.network.PacketDistributor;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
import nl.requios.effortlessbuilding.network.ModifierSettingsMessage;
import nl.requios.effortlessbuilding.network.PacketHandler;
public class ReachCommand {
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
dispatcher.register(
Commands.literal("reach")
.then(Commands.literal("set")
.then(Commands.argument("level", IntegerArgumentType.integer(0, 3))
.executes((context) -> {
return setReachLevel(context.getSource().getPlayerOrException(), IntegerArgumentType.getInteger(context, "level"));
})))
.then(Commands.literal("get").executes((context -> {
return getReachLevel(context.getSource().getPlayerOrException());
}))));
}
private static int setReachLevel(ServerPlayer player, int level) {
ModifierSettingsManager.ModifierSettings modifierSettings = ModifierSettingsManager.getModifierSettings(player);
modifierSettings.setReachUpgrade(level);
ModifierSettingsManager.setModifierSettings(player, modifierSettings);
//Send to client
PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), new ModifierSettingsMessage(modifierSettings));
player.sendMessage(new TextComponent("Reach level of " + player.getName().getString() + " set to " + modifierSettings.getReachUpgrade()), player.getUUID());
return 1;
}
private static int getReachLevel(ServerPlayer player) {
int reachUpgrade = ModifierSettingsManager.getModifierSettings(player).getReachUpgrade();
EffortlessBuilding.log(player, "Current reach: level " + reachUpgrade);
return 1;
}
}

View File

@@ -49,6 +49,6 @@ public class ReachHelper {
} }
public static boolean canBreakFar(Player player) { public static boolean canBreakFar(Player player) {
return player.isCreative() || BuildConfig.survivalBalancers.breakFar.get(); return player.isCreative();
} }
} }