Removed reach command and functionality to break multiple blocks in survival.
This commit is contained in:
@@ -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)",
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user