Skip to content

Commit dede0db

Browse files
committed
Fix crash on start (due to new changes)
and fix typos like "Scren"
1 parent 9d39a91 commit dede0db

File tree

7 files changed

+121
-96
lines changed

7 files changed

+121
-96
lines changed

src/main/java/nekiplay/meteorplus/features/modules/render/ItemHighlightPlus.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import meteordevelopment.meteorclient.systems.modules.Module;
99
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
1010
import nekiplay.meteorplus.MeteorPlusAddon;
11-
import nekiplay.meteorplus.settings.items.HiglightItemData;
11+
import nekiplay.meteorplus.settings.items.HighlightItemData;
1212
import nekiplay.meteorplus.settings.items.ItemDataSetting;
1313
import net.minecraft.item.Item;
1414
import net.minecraft.item.Items;
@@ -31,17 +31,17 @@ public ItemHighlightPlus() {
3131
.build()
3232
);
3333

34-
public final Setting<HiglightItemData> defaultBlockConfig = sgGeneral.add(new GenericSetting.Builder<HiglightItemData>()
34+
public final Setting<HighlightItemData> defaultBlockConfig = sgGeneral.add(new GenericSetting.Builder<HighlightItemData>()
3535
.name("whitelist-default-config")
3636
.description("Default item config.")
3737
.defaultValue(
38-
new HiglightItemData(
38+
new HighlightItemData(
3939
new SettingColor(0, 255, 200, 25)
4040
)
4141
)
4242
.build()
4343
);
44-
public final Setting<Map<Item, HiglightItemData>> itemsConfigs = sgGeneral.add(new ItemDataSetting.Builder<HiglightItemData>()
44+
public final Setting<Map<Item, HighlightItemData>> itemsConfigs = sgGeneral.add(new ItemDataSetting.Builder<HighlightItemData>()
4545
.name("whitelist-items-configs")
4646
.description("Config for each highlight.")
4747
.defaultData(defaultBlockConfig)

src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/ItemHighlightMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import meteordevelopment.meteorclient.systems.modules.Modules;
55
import meteordevelopment.meteorclient.systems.modules.render.ItemHighlight;
66
import nekiplay.meteorplus.features.modules.render.ItemHighlightPlus;
7-
import nekiplay.meteorplus.settings.items.HiglightItemData;
7+
import nekiplay.meteorplus.settings.items.HighlightItemData;
88
import net.minecraft.item.ItemStack;
99
import org.spongepowered.asm.mixin.Mixin;
1010
import org.spongepowered.asm.mixin.injection.At;
@@ -20,7 +20,7 @@ private void getColor(ItemStack stack, CallbackInfoReturnable<Integer> cir) {
2020
ItemHighlightPlus itemHighlightPlus = Modules.get().get(ItemHighlightPlus.class);
2121
if (itemHighlightPlus != null && itemHighlightPlus.isActive()) {
2222
if (itemHighlightPlus.whitelist.get().contains(stack.getItem().asItem())) {
23-
HiglightItemData espItemData = itemHighlightPlus.itemsConfigs.get().get(stack.getItem());
23+
HighlightItemData espItemData = itemHighlightPlus.itemsConfigs.get().get(stack.getItem());
2424
if (espItemData != null) {
2525
cir.setReturnValue(espItemData.Color.getPacked());
2626
}

src/main/java/nekiplay/meteorplus/settings/items/ESPItemData.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
import meteordevelopment.meteorclient.gui.GuiTheme;
44
import meteordevelopment.meteorclient.gui.WidgetScreen;
5-
import meteordevelopment.meteorclient.gui.utils.IScreenFactory;
5+
import meteordevelopment.meteorclient.settings.GenericSetting;
66
import meteordevelopment.meteorclient.renderer.ShapeMode;
7+
import meteordevelopment.meteorclient.settings.IGeneric;
78
import meteordevelopment.meteorclient.utils.misc.IChangeable;
89
import meteordevelopment.meteorclient.utils.misc.ICopyable;
9-
import meteordevelopment.meteorclient.utils.misc.ISerializable;
1010
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
1111
import net.minecraft.item.Item;
1212
import net.minecraft.nbt.NbtCompound;
1313

14-
public class ESPItemData implements ICopyable<ESPItemData>, ISerializable<ESPItemData>, IChangeable, IItemData<ESPItemData>, IScreenFactory {
14+
public class ESPItemData implements IGeneric<ESPItemData>, IChangeable, IItemData<ESPItemData> {
1515
public ShapeMode shapeMode;
1616
public SettingColor lineColor;
1717
public SettingColor sideColor;
@@ -36,8 +36,8 @@ public WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting<ESP
3636
}
3737

3838
@Override
39-
public WidgetScreen createScreen(GuiTheme theme) {
40-
return new ESPItemDataScreen(theme, this, null, null);
39+
public WidgetScreen createScreen(GuiTheme theme, GenericSetting<ESPItemData> setting) {
40+
return new ESPItemDataScreen(theme, this, setting);
4141
}
4242

4343
@Override

src/main/java/nekiplay/meteorplus/settings/items/ESPItemDataScreen.java

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,25 @@
66
import meteordevelopment.meteorclient.settings.*;
77
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
88
import net.minecraft.item.Item;
9+
import org.jetbrains.annotations.Nullable;
910

1011
public class ESPItemDataScreen extends WindowScreen {
1112
private final ESPItemData blockData;
12-
private final Item block;
13-
private final ItemDataSetting<ESPItemData> setting;
13+
private final Setting<?> setting;
14+
private final @Nullable Runnable firstChangeConsumer;
1415

1516
public ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, Item block, ItemDataSetting<ESPItemData> setting) {
17+
this(theme, blockData, setting, () -> setting.get().put(block, blockData));
18+
}
19+
public ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, GenericSetting<ESPItemData> setting) {
20+
this(theme, blockData, setting, null);
21+
}
22+
private ESPItemDataScreen(GuiTheme theme, ESPItemData blockData, Setting<?> setting, @Nullable Runnable firstChangeConsumer) {
1623
super(theme, "Configure Items");
1724

1825
this.blockData = blockData;
19-
this.block = block;
2026
this.setting = setting;
27+
this.firstChangeConsumer = firstChangeConsumer;
2128
}
2229

2330
@Override
@@ -32,8 +39,10 @@ public void initWidgets() {
3239
.defaultValue(ShapeMode.Lines)
3340
.onModuleActivated(shapeModeSetting -> shapeModeSetting.set(blockData.shapeMode))
3441
.onChanged(shapeMode -> {
35-
blockData.shapeMode = shapeMode;
36-
changed(blockData, block, setting);
42+
if (blockData.shapeMode != shapeMode) {
43+
blockData.shapeMode = shapeMode;
44+
onChanged();
45+
}
3746
})
3847
.build()
3948
);
@@ -42,10 +51,12 @@ public void initWidgets() {
4251
.name("line-color")
4352
.description("Color of lines.")
4453
.defaultValue(new SettingColor(0, 255, 200))
45-
.onModuleActivated(settingColorSetting -> settingColorSetting.set(blockData.lineColor))
54+
.onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.lineColor))
4655
.onChanged(settingColor -> {
47-
blockData.lineColor.set(settingColor);
48-
changed(blockData, block, setting);
56+
if (!blockData.lineColor.equals(settingColor)) {
57+
blockData.lineColor.set(settingColor);
58+
onChanged();
59+
}
4960
})
5061
.build()
5162
);
@@ -54,10 +65,12 @@ public void initWidgets() {
5465
.name("side-color")
5566
.description("Color of sides.")
5667
.defaultValue(new SettingColor(0, 255, 200, 25))
57-
.onModuleActivated(settingColorSetting -> settingColorSetting.set(blockData.sideColor))
68+
.onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.sideColor))
5869
.onChanged(settingColor -> {
59-
blockData.sideColor.set(settingColor);
60-
changed(blockData, block, setting);
70+
if (!blockData.sideColor.equals(settingColor)) {
71+
blockData.sideColor.set(settingColor);
72+
onChanged();
73+
}
6174
})
6275
.build()
6376
);
@@ -68,8 +81,10 @@ public void initWidgets() {
6881
.defaultValue(true)
6982
.onModuleActivated(booleanSetting -> booleanSetting.set(blockData.tracer))
7083
.onChanged(aBoolean -> {
71-
blockData.tracer = aBoolean;
72-
changed(blockData, block, setting);
84+
if (blockData.tracer != aBoolean) {
85+
blockData.tracer = aBoolean;
86+
onChanged();
87+
}
7388
})
7489
.build()
7590
);
@@ -80,8 +95,10 @@ public void initWidgets() {
8095
.defaultValue(new SettingColor(0, 255, 200, 125))
8196
.onModuleActivated(settingColorSetting -> settingColorSetting.set(blockData.tracerColor))
8297
.onChanged(settingColor -> {
83-
blockData.tracerColor = settingColor;
84-
changed(blockData, block, setting);
98+
if (!blockData.tracerColor.equals(settingColor)) {
99+
blockData.tracerColor.set(settingColor);
100+
onChanged();
101+
}
85102
})
86103
.build()
87104
);
@@ -90,12 +107,12 @@ public void initWidgets() {
90107
add(theme.settings(settings)).expandX();
91108
}
92109

93-
private void changed(ESPItemData blockData, Item block, ItemDataSetting<ESPItemData> setting) {
94-
if (!blockData.isChanged() && block != null && setting != null) {
95-
setting.get().put(block, blockData);
96-
setting.onChanged();
110+
private void onChanged() {
111+
if (!blockData.isChanged() && firstChangeConsumer != null) {
112+
firstChangeConsumer.run();
97113
}
98114

115+
setting.onChanged();
99116
blockData.changed();
100117
}
101118
}

src/main/java/nekiplay/meteorplus/settings/items/HiglightItemData.java renamed to src/main/java/nekiplay/meteorplus/settings/items/HighlightItemData.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
11
package nekiplay.meteorplus.settings.items;
22

33
import meteordevelopment.meteorclient.gui.GuiTheme;
4-
import meteordevelopment.meteorclient.gui.WidgetScreen;
5-
import meteordevelopment.meteorclient.gui.utils.IScreenFactory;
4+
import meteordevelopment.meteorclient.gui.WidgetScreen;
5+
import meteordevelopment.meteorclient.settings.GenericSetting;
66
import meteordevelopment.meteorclient.renderer.ShapeMode;
7+
import meteordevelopment.meteorclient.settings.IGeneric;
78
import meteordevelopment.meteorclient.utils.misc.IChangeable;
8-
import meteordevelopment.meteorclient.utils.misc.ICopyable;
9-
import meteordevelopment.meteorclient.utils.misc.ISerializable;
109
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
1110
import net.minecraft.item.Item;
1211
import net.minecraft.nbt.NbtCompound;
1312

14-
public class HiglightItemData implements ICopyable<HiglightItemData>, ISerializable<HiglightItemData>, IChangeable, IItemData<HiglightItemData>, IScreenFactory {
13+
public class HighlightItemData implements IGeneric<HighlightItemData>, IChangeable, IItemData<HighlightItemData> {
1514
public SettingColor Color;
1615
private boolean changed;
1716

18-
public HiglightItemData(SettingColor color) {
17+
public HighlightItemData(SettingColor color) {
1918
this.Color = color;
2019
}
2120

2221
@Override
23-
public WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting<HiglightItemData> setting) {
24-
return new HiglightItemDataScren(theme, this, block, setting);
22+
public WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting<HighlightItemData> setting) {
23+
return new HighlightItemDataScreen(theme, this, block, setting);
2524
}
2625

2726
@Override
28-
public WidgetScreen createScreen(GuiTheme theme) {
29-
return new HiglightItemDataScren(theme, this, null, null);
27+
public WidgetScreen createScreen(GuiTheme theme, GenericSetting<HighlightItemData> setting) {
28+
return new HighlightItemDataScreen(theme, this, setting);
3029
}
3130

3231
@Override
@@ -43,16 +42,16 @@ public void tickRainbow() {
4342
}
4443

4544
@Override
46-
public HiglightItemData set(HiglightItemData value) {
45+
public HighlightItemData set(HighlightItemData value) {
4746
Color.set(value.Color);
4847
changed = value.changed;
4948

5049
return this;
5150
}
5251

5352
@Override
54-
public HiglightItemData copy() {
55-
return new HiglightItemData(new SettingColor(Color));
53+
public HighlightItemData copy() {
54+
return new HighlightItemData(new SettingColor(Color));
5655
}
5756

5857
@Override
@@ -66,7 +65,7 @@ public NbtCompound toTag() {
6665
}
6766

6867
@Override
69-
public HiglightItemData fromTag(NbtCompound tag) {
68+
public HighlightItemData fromTag(NbtCompound tag) {
7069
Color.fromTag(tag.getCompound("color").get());
7170
changed = tag.getBoolean("changed").get();
7271

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package nekiplay.meteorplus.settings.items;
2+
3+
import meteordevelopment.meteorclient.gui.GuiTheme;
4+
import meteordevelopment.meteorclient.gui.WindowScreen;
5+
import meteordevelopment.meteorclient.renderer.ShapeMode;
6+
import meteordevelopment.meteorclient.settings.*;
7+
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
8+
import net.minecraft.item.Item;
9+
import org.jetbrains.annotations.Nullable;
10+
11+
public class HighlightItemDataScreen extends WindowScreen {
12+
private final HighlightItemData blockData;
13+
private final Setting<?> setting;
14+
private final @Nullable Runnable firstChangeConsumer;
15+
16+
public HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, Item block, ItemDataSetting<HighlightItemData> setting) {
17+
this(theme, blockData, setting, () -> setting.get().put(block, blockData));
18+
}
19+
public HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, GenericSetting<HighlightItemData> setting) {
20+
this(theme, blockData, setting, null);
21+
}
22+
private HighlightItemDataScreen(GuiTheme theme, HighlightItemData blockData, Setting<?> setting, @Nullable Runnable firstChangeConsumer) {
23+
super(theme, "Configure Items");
24+
25+
this.blockData = blockData;
26+
this.setting = setting;
27+
this.firstChangeConsumer = firstChangeConsumer;
28+
}
29+
30+
@Override
31+
public void initWidgets() {
32+
Settings settings = new Settings();
33+
SettingGroup sgGeneral = settings.getDefaultGroup();
34+
35+
sgGeneral.add(new ColorSetting.Builder()
36+
.name("color")
37+
.description("Color of item.")
38+
.defaultValue(new SettingColor(0, 255, 200))
39+
.onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.Color))
40+
.onChanged(settingColor -> {
41+
if (!blockData.Color.equals(settingColor)) {
42+
blockData.Color.set(settingColor);
43+
onChanged();
44+
}
45+
})
46+
.build()
47+
);
48+
49+
settings.onActivated();
50+
add(theme.settings(settings)).expandX();
51+
}
52+
53+
private void onChanged() {
54+
if (!blockData.isChanged() && firstChangeConsumer != null) {
55+
firstChangeConsumer.run();
56+
}
57+
58+
setting.onChanged();
59+
blockData.changed();
60+
}
61+
}

src/main/java/nekiplay/meteorplus/settings/items/HiglightItemDataScren.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)