Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
import net.minecraft.util.math.BlockPos;
import org.jetbrains.annotations.Nullable;

import java.util.List;
import java.util.Random;
import java.util.Set;

public class SwarmCommand extends Command {

Expand Down Expand Up @@ -212,7 +212,7 @@ else if (swarm.isWorker()) {
swarm.host.sendMessage(context.getInput());
}
else if (swarm.isWorker()) {
Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
Modules.get().get(InfinityMiner.class).targetBlocks.set(Set.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
runInfinityMiner();
}
}
Expand All @@ -228,8 +228,8 @@ else if (swarm.isWorker()) {
swarm.host.sendMessage(context.getInput());
}
else if (swarm.isWorker()) {
Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
Modules.get().get(InfinityMiner.class).repairBlocks.set(List.of(context.getArgument("repair", BlockStateArgument.class).getBlockState().getBlock()));
Modules.get().get(InfinityMiner.class).targetBlocks.set(Set.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
Modules.get().get(InfinityMiner.class).repairBlocks.set(Set.of(context.getArgument("repair", BlockStateArgument.class).getBlockState().getBlock()));
runInfinityMiner();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

package meteordevelopment.meteorclient.events.render;

import net.minecraft.item.tooltip.TooltipData;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipData;


public class TooltipDataEvent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
import meteordevelopment.meteorclient.gui.widgets.input.WTextBox;
import meteordevelopment.meteorclient.settings.Setting;
import net.minecraft.client.MinecraftClient;
import net.minecraft.registry.*;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.util.Identifier;
import net.minecraft.util.InvalidIdentifierException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
package meteordevelopment.meteorclient.gui.widgets;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public abstract class WMultiLabel extends WLabel {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import meteordevelopment.meteorclient.MeteorClient;
import meteordevelopment.meteorclient.events.render.TooltipDataEvent;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipData;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
package meteordevelopment.meteorclient.mixin;

import it.unimi.dsi.fastutil.ints.Int2ObjectMap;

import net.minecraft.client.render.WorldRenderer;
import net.minecraft.entity.player.BlockBreakingInfo;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@
package meteordevelopment.meteorclient.mixininterface;

import meteordevelopment.meteorclient.mixin.EntityRenderManagerMixin;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.client.render.entity.state.EntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;

public interface IEntityRenderState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@

import baritone.api.BaritoneAPI;
import baritone.api.utils.SettingsUtil;
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
import net.minecraft.block.Block;
import net.minecraft.item.Item;

import java.awt.*;
import java.lang.reflect.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -88,24 +92,24 @@ private void createWrappers() {

Object value = setting.value;

if (value instanceof Boolean) {
Setting<Boolean> wrapper = sgBool.add(new BoolSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((boolean) setting.defaultValue)
.onChanged(aBoolean -> setting.value = aBoolean)
.onModuleActivated(booleanSetting -> booleanSetting.set((Boolean) setting.value))
.build()
);
switch (value) {
case Boolean b -> {
Setting<Boolean> wrapper = sgBool.add(new BoolSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((boolean) setting.defaultValue)
.onChanged(aBoolean -> setting.value = aBoolean)
.onModuleActivated(booleanSetting -> booleanSetting.set((Boolean) setting.value))
.build()
);

switch (wrapper.name) {
case "assumeWalkOnWater" -> walkOnWater = wrapper;
case "assumeWalkOnLava" -> walkOnLava = wrapper;
case "assumeStep" -> step = wrapper;
switch (wrapper.name) {
case "assumeWalkOnWater" -> walkOnWater = wrapper;
case "assumeWalkOnLava" -> walkOnLava = wrapper;
case "assumeStep" -> step = wrapper;
}
}
}
else if (value instanceof Double) {
sgDouble.add(new DoubleSetting.Builder()
case Double v -> sgDouble.add(new DoubleSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((double) setting.defaultValue)
Expand All @@ -115,9 +119,7 @@ else if (value instanceof Double) {
.onModuleActivated(doubleSetting -> doubleSetting.set((Double) setting.value))
.build()
);
}
else if (value instanceof Float) {
sgDouble.add(new DoubleSetting.Builder()
case Float v -> sgDouble.add(new DoubleSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue(((Float) setting.defaultValue).doubleValue())
Expand All @@ -127,82 +129,79 @@ else if (value instanceof Float) {
.onModuleActivated(doubleSetting -> doubleSetting.set(((Float) setting.value).doubleValue()))
.build()
);
}
else if (value instanceof Integer) {
Setting<Integer> wrapper = sgInt.add(new IntSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((int) setting.defaultValue)
.onChanged(integer -> setting.value = integer)
.onModuleActivated(integerSetting -> integerSetting.set((Integer) setting.value))
.build()
);
case Integer i -> {
Setting<Integer> wrapper = sgInt.add(new IntSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((int) setting.defaultValue)
.onChanged(integer -> setting.value = integer)
.onModuleActivated(integerSetting -> integerSetting.set((Integer) setting.value))
.build()
);

if (wrapper.name.equals("maxFallHeightNoWater")) {
noFall = new BoolSetting.Builder()
.name(wrapper.name)
.description(wrapper.description)
.defaultValue(false)
.onChanged(aBoolean -> wrapper.set(aBoolean ? 159159 : wrapper.getDefaultValue()))
.onModuleActivated(booleanSetting -> booleanSetting.set(wrapper.get() >= 255))
.build();
if (wrapper.name.equals("maxFallHeightNoWater")) {
noFall = new BoolSetting.Builder()
.name(wrapper.name)
.description(wrapper.description)
.defaultValue(false)
.onChanged(aBoolean -> wrapper.set(aBoolean ? 159159 : wrapper.getDefaultValue()))
.onModuleActivated(booleanSetting -> booleanSetting.set(wrapper.get() >= 255))
.build();
}
}
}
else if (value instanceof Long) {
sgInt.add(new IntSetting.Builder()
case Long l -> sgInt.add(new IntSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue(((Long) setting.defaultValue).intValue())
.onChanged(integer -> setting.value = integer.longValue())
.onModuleActivated(integerSetting -> integerSetting.set(((Long) setting.value).intValue()))
.build()
);
}
else if (value instanceof String) {
sgString.add(new StringSetting.Builder()
case String s -> sgString.add(new StringSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((String) setting.defaultValue)
.onChanged(string -> setting.value = string)
.onModuleActivated(stringSetting -> stringSetting.set((String) setting.value))
.build()
);
}
else if (value instanceof Color) {
Color c = (Color) setting.value;

sgColor.add(new ColorSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()))
.onChanged(color -> setting.value = new Color(color.r, color.g, color.b, color.a))
.onModuleActivated(colorSetting -> colorSetting.set(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha())))
.build()
);
}
else if (value instanceof List) {
Type listType = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
Type type = ((ParameterizedType) listType).getActualTypeArguments()[0];
case Color color1 -> {
Color c = (Color) setting.value;

if (type == Block.class) {
sgBlockLists.add(new BlockListSetting.Builder()
sgColor.add(new ColorSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((List<Block>) setting.defaultValue)
.onChanged(blockList -> setting.value = blockList)
.onModuleActivated(blockListSetting -> blockListSetting.set((List<Block>) setting.value))
.defaultValue(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()))
.onChanged(color -> setting.value = new Color(color.r, color.g, color.b, color.a))
.onModuleActivated(colorSetting -> colorSetting.set(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha())))
.build()
);
}
else if (type == Item.class) {
sgItemLists.add(new ItemListSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue((List<Item>) setting.defaultValue)
.onChanged(itemList -> setting.value = itemList)
.onModuleActivated(itemListSetting -> itemListSetting.set((List<Item>) setting.value))
.build()
);
case List list -> {
Type listType = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
Type type = ((ParameterizedType) listType).getActualTypeArguments()[0];

if (type == Block.class) {
sgBlockLists.add(new BlockListSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue(new ReferenceOpenHashSet<>((List<Block>) setting.defaultValue))
.onChanged(blockList -> setting.value = blockList)
.onModuleActivated(blockListSetting -> blockListSetting.set(new ReferenceOpenHashSet<>((List<Block>) setting.value)))
.build()
);
} else if (type == Item.class) {
sgItemLists.add(new ItemListSetting.Builder()
.name(setting.getName())
.description(getDescription(setting.getName()))
.defaultValue(new ReferenceOpenHashSet<>((List<Item>) setting.defaultValue))
.onChanged(itemList -> setting.value = itemList)
.onModuleActivated(itemListSetting -> itemListSetting.set(new ReferenceOpenHashSet<>((List<Item>) setting.value)))
.build()
);
}
}
case null, default -> {
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/*
* This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client).
* Copyright (c) Meteor Development.
*/

package meteordevelopment.meteorclient.settings;

import com.google.common.base.Predicates;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;

import java.util.function.Consumer;
import java.util.function.Predicate;

public abstract class AbstractRegistryItemSetting<V> extends Setting<V> {
public final Predicate<V> filter;
public final Registry<V> registry;

protected AbstractRegistryItemSetting(String name, String description, V defaultValue, Consumer<V> onChanged, Consumer<Setting<V>> onModuleActivated, IVisible visible, Predicate<V> filter, Registry<V> registry) {
super(name, description, defaultValue, onChanged, onModuleActivated, visible);

this.filter = filter;
this.registry = registry;
}

@Override
protected final V parseImpl(String str) {
return parseId(registry, str);
}

@Override
protected final boolean isValueValid(V value) {
return value != null && filter.test(value);
}

@Override
public final Iterable<Identifier> getIdentifierSuggestions() {
return registry.getIds();
}

@Override
protected final NbtCompound save(NbtCompound tag) {
tag.putString("value", registry.getId(get()).toString());

return tag;
}

@Override
protected final V load(NbtCompound tag) {
V value = registry.get(Identifier.of(tag.getString("value", "")));

if (!isValueValid(value)) {
resetImpl();
} else {
this.value = value;
}

return get();
}

@SuppressWarnings("unchecked")
protected static abstract class AbstractBuilder<B extends AbstractBuilder<B, V, S>, V, S extends AbstractRegistryItemSetting<V>> extends SettingBuilder<B, V, S> {
protected Predicate<V> filter = Predicates.alwaysTrue();

protected AbstractBuilder() {
super(null);
}

public B filter(Predicate<V> filter) {
this.filter = filter;
return (B) this;
}
}

}

Loading