Skip to content

Commit 0b243e8

Browse files
no funds
1 parent 15adab0 commit 0b243e8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3177
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//Deobfuscated with https://github.com/SimplyProgrammer/Minecraft-Deobfuscator3000 using mappings "C:\Users\u1\Documents\Java Decompiler\1.12 stable mappings"!
2+
3+
//Decompiled by Procyon!
4+
5+
package com.veteran.hack.setting;
6+
7+
public interface ISettingUnknown
8+
{
9+
String getName();
10+
11+
Class getValueClass();
12+
13+
String getValueAsString();
14+
15+
boolean isVisible();
16+
17+
void setValueFromString(final String p0);
18+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
//Deobfuscated with https://github.com/SimplyProgrammer/Minecraft-Deobfuscator3000 using mappings "C:\Users\u1\Documents\Java Decompiler\1.12 stable mappings"!
2+
3+
//Decompiled by Procyon!
4+
5+
package com.veteran.hack.setting;
6+
7+
import com.veteran.hack.setting.converter.*;
8+
import java.util.function.*;
9+
import com.google.gson.*;
10+
11+
public abstract class Setting<T> implements ISettingUnknown, Convertable<T>
12+
{
13+
String name;
14+
T value;
15+
private Predicate<T> restriction;
16+
private Predicate<T> visibilityPredicate;
17+
private BiConsumer<T, T> consumer;
18+
private final Class valueType;
19+
20+
public Setting(final T value, final Predicate<T> restriction, final BiConsumer<T, T> consumer, final String name, final Predicate<T> visibilityPredicate) {
21+
this.value = value;
22+
this.valueType = value.getClass();
23+
this.restriction = restriction;
24+
this.consumer = consumer;
25+
this.name = name;
26+
this.visibilityPredicate = visibilityPredicate;
27+
}
28+
29+
public String getName() {
30+
return this.name;
31+
}
32+
33+
public T getValue() {
34+
return this.value;
35+
}
36+
37+
public Class getValueClass() {
38+
return this.valueType;
39+
}
40+
41+
public boolean setValue(final T value) {
42+
final T old = this.getValue();
43+
if (!this.restriction.test(value)) {
44+
return false;
45+
}
46+
this.value = value;
47+
this.consumer.accept(old, value);
48+
return true;
49+
}
50+
51+
public boolean isVisible() {
52+
return this.visibilityPredicate.test(this.getValue());
53+
}
54+
55+
public BiConsumer<T, T> changeListener() {
56+
return this.consumer;
57+
}
58+
59+
public void setValueFromString(final String value) {
60+
final JsonParser jp = new JsonParser();
61+
this.setValue(this.converter().reverse().convert((Object)jp.parse(value)));
62+
}
63+
64+
public String getValueAsString() {
65+
return ((JsonElement)this.converter().convert(this.getValue())).toString();
66+
}
67+
}
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
//Deobfuscated with https://github.com/SimplyProgrammer/Minecraft-Deobfuscator3000 using mappings "C:\Users\u1\Documents\Java Decompiler\1.12 stable mappings"!
2+
3+
//Decompiled by Procyon!
4+
5+
package com.veteran.hack.setting;
6+
7+
import com.veteran.hack.setting.builder.primitive.*;
8+
import com.veteran.hack.setting.builder.numerical.*;
9+
import com.google.common.base.*;
10+
import java.util.function.*;
11+
import com.veteran.hack.setting.builder.*;
12+
13+
public class Settings
14+
{
15+
public static FloatSettingBuilder floatBuilder() {
16+
return new FloatSettingBuilder();
17+
}
18+
19+
public static DoubleSettingBuilder doubleBuilder() {
20+
return new DoubleSettingBuilder();
21+
}
22+
23+
public static IntegerSettingBuilder integerBuilder() {
24+
return new IntegerSettingBuilder();
25+
}
26+
27+
public static BooleanSettingBuilder booleanBuilder() {
28+
return new BooleanSettingBuilder();
29+
}
30+
31+
public static StringSettingBuilder stringBuilder() {
32+
return new StringSettingBuilder();
33+
}
34+
35+
public static EnumSettingBuilder enumBuilder(final Class<? extends Enum> clazz) {
36+
return new EnumSettingBuilder((Class)clazz);
37+
}
38+
39+
public static Setting<Float> f(final String name, final float value) {
40+
return (Setting<Float>)floatBuilder(name).withValue((Number)value).build();
41+
}
42+
43+
public static Setting<Double> d(final String name, final double value) {
44+
return (Setting<Double>)doubleBuilder(name).withValue((Number)value).build();
45+
}
46+
47+
public static Setting<Integer> i(final String name, final int value) {
48+
return (Setting<Integer>)integerBuilder(name).withValue((Number)value).build();
49+
}
50+
51+
public static Setting<Boolean> b(final String name, final boolean value) {
52+
return (Setting<Boolean>)booleanBuilder(name).withValue((Object)value).build();
53+
}
54+
55+
public static Setting<Boolean> b(final String name) {
56+
return (Setting<Boolean>)booleanBuilder(name).withValue((Object)true).build();
57+
}
58+
59+
public static Setting<String> s(final String name, final String value) {
60+
return (Setting<String>)stringBuilder(name).withValue((Object)value).build();
61+
}
62+
63+
public static <T extends Enum> Setting<T> e(final String name, final Enum value) {
64+
return (Setting<T>)enumBuilder(value.getClass()).withName(name).withValue((Object)value).build();
65+
}
66+
67+
public static NumericalSettingBuilder<Float> floatBuilder(final String name) {
68+
return (NumericalSettingBuilder<Float>)new FloatSettingBuilder().withName(name);
69+
}
70+
71+
public static NumericalSettingBuilder<Double> doubleBuilder(final String name) {
72+
return (NumericalSettingBuilder<Double>)new DoubleSettingBuilder().withName(name);
73+
}
74+
75+
public static NumericalSettingBuilder<Integer> integerBuilder(final String name) {
76+
return (NumericalSettingBuilder<Integer>)new IntegerSettingBuilder().withName(name);
77+
}
78+
79+
public static BooleanSettingBuilder booleanBuilder(final String name) {
80+
return new BooleanSettingBuilder().withName(name);
81+
}
82+
83+
public static StringSettingBuilder stringBuilder(final String name) {
84+
return (StringSettingBuilder)new StringSettingBuilder().withName(name);
85+
}
86+
87+
public static <T> SettingBuilder<T> custom(final String name, final T initialValue, final Converter converter, final Predicate<T> restriction, final BiConsumer<T, T> consumer, final Predicate<T> visibilityPredicate) {
88+
return (SettingBuilder<T>)new SettingBuilder<T>() {
89+
public Setting<T> build() {
90+
return new Setting<T>(this.initialValue, this.predicate(), this.consumer, this.name, this.visibilityPredicate()) {
91+
public Converter converter() {
92+
return converter;
93+
}
94+
};
95+
}
96+
}.withName(name).withValue((Object)initialValue).withConsumer((BiConsumer)consumer).withVisibility((Predicate)visibilityPredicate).withRestriction((Predicate)restriction);
97+
}
98+
99+
public static <T> SettingBuilder<T> custom(final String name, final T initialValue, final Converter converter, final Predicate<T> restriction, final BiConsumer<T, T> consumer, final boolean hidden) {
100+
return custom(name, initialValue, converter, restriction, consumer, t -> !hidden);
101+
}
102+
103+
public static <T> SettingBuilder<T> custom(final String name, final T initialValue, final Converter converter, final Predicate<T> restriction, final boolean hidden) {
104+
return custom(name, initialValue, converter, restriction, (t, t2) -> {}, hidden);
105+
}
106+
107+
public static <T> SettingBuilder<T> custom(final String name, final T initialValue, final Converter converter, final boolean hidden) {
108+
return custom(name, initialValue, converter, input -> true, (t, t2) -> {}, hidden);
109+
}
110+
111+
public static <T> SettingBuilder<T> custom(final String name, final T initialValue, final Converter converter) {
112+
return custom(name, initialValue, converter, input -> true, (t, t2) -> {}, false);
113+
}
114+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
//Deobfuscated with https://github.com/SimplyProgrammer/Minecraft-Deobfuscator3000 using mappings "C:\Users\u1\Documents\Java Decompiler\1.12 stable mappings"!
2+
3+
//Decompiled by Procyon!
4+
5+
package com.veteran.hack.setting;
6+
7+
import com.veteran.hack.util.*;
8+
import java.util.*;
9+
10+
public class SettingsRegister
11+
{
12+
public static final SettingsRegister ROOT;
13+
public HashMap<String, SettingsRegister> registerHashMap;
14+
public HashMap<String, Setting> settingHashMap;
15+
16+
public SettingsRegister() {
17+
this.registerHashMap = new HashMap<String, SettingsRegister>();
18+
this.settingHashMap = new HashMap<String, Setting>();
19+
}
20+
21+
public SettingsRegister subregister(final String name) {
22+
if (this.registerHashMap.containsKey(name)) {
23+
return this.registerHashMap.get(name);
24+
}
25+
final SettingsRegister register = new SettingsRegister();
26+
this.registerHashMap.put(name, register);
27+
return register;
28+
}
29+
30+
private void put(final String name, final Setting setting) {
31+
this.settingHashMap.put(name, setting);
32+
}
33+
34+
public static void register(final String name, final Setting setting) {
35+
final Pair<String, SettingsRegister> pair = dig(name);
36+
pair.getValue().put(pair.getKey(), setting);
37+
}
38+
39+
public Setting getSetting(final String group) {
40+
return this.settingHashMap.get(group);
41+
}
42+
43+
public static Setting get(final String group) {
44+
final Pair<String, SettingsRegister> pair = dig(group);
45+
return pair.getValue().getSetting(pair.getKey());
46+
}
47+
48+
private static Pair<String, SettingsRegister> dig(final String group) {
49+
SettingsRegister current = SettingsRegister.ROOT;
50+
final StringTokenizer tokenizer = new StringTokenizer(group, ".");
51+
String previousToken = null;
52+
while (tokenizer.hasMoreTokens()) {
53+
if (previousToken == null) {
54+
previousToken = tokenizer.nextToken();
55+
}
56+
else {
57+
final String token = tokenizer.nextToken();
58+
current = current.subregister(previousToken);
59+
previousToken = token;
60+
}
61+
}
62+
return new Pair<String, SettingsRegister>((previousToken == null) ? "" : previousToken, current);
63+
}
64+
65+
static {
66+
ROOT = new SettingsRegister();
67+
}
68+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
//Deobfuscated with https://github.com/SimplyProgrammer/Minecraft-Deobfuscator3000 using mappings "C:\Users\u1\Documents\Java Decompiler\1.12 stable mappings"!
2+
3+
//Decompiled by Procyon!
4+
5+
package com.veteran.hack.setting.builder;
6+
7+
import java.util.function.*;
8+
import java.util.*;
9+
import com.google.common.base.*;
10+
import com.veteran.hack.setting.*;
11+
12+
public abstract class SettingBuilder<T>
13+
{
14+
protected String name;
15+
protected T initialValue;
16+
protected BiConsumer<T, T> consumer;
17+
protected List<Predicate<T>> predicateList;
18+
private Predicate<T> visibilityPredicate;
19+
20+
public SettingBuilder() {
21+
this.predicateList = new ArrayList<Predicate<T>>();
22+
}
23+
24+
public SettingBuilder<T> withValue(final T value) {
25+
this.initialValue = value;
26+
return this;
27+
}
28+
29+
protected Predicate<T> predicate() {
30+
return this.predicateList.isEmpty() ? (t -> true) : (t -> this.predicateList.stream().allMatch(tPredicate -> tPredicate.test(t)));
31+
}
32+
33+
protected Predicate<T> visibilityPredicate() {
34+
return (Predicate<T>)MoreObjects.firstNonNull((Object)this.visibilityPredicate, t -> true);
35+
}
36+
37+
protected BiConsumer<T, T> consumer() {
38+
return (BiConsumer<T, T>)MoreObjects.firstNonNull((Object)this.consumer, (a, b) -> {});
39+
}
40+
41+
public SettingBuilder<T> withConsumer(final BiConsumer<T, T> consumer) {
42+
this.consumer = consumer;
43+
return this;
44+
}
45+
46+
public SettingBuilder<T> withVisibility(final Predicate<T> predicate) {
47+
this.visibilityPredicate = predicate;
48+
return this;
49+
}
50+
51+
public SettingBuilder<T> withName(final String name) {
52+
this.name = name;
53+
return this;
54+
}
55+
56+
public SettingBuilder<T> withRestriction(final Predicate<T> predicate) {
57+
this.predicateList.add(predicate);
58+
return this;
59+
}
60+
61+
public abstract Setting<T> build();
62+
63+
public final Setting<T> buildAndRegister(final String group) {
64+
return register(this.build(), group);
65+
}
66+
67+
public static <T> Setting<T> register(final Setting<T> setting, final String group) {
68+
final String name = setting.getName();
69+
if (name == null || name.isEmpty()) {
70+
throw new RuntimeException("Can't register nameless setting");
71+
}
72+
SettingsRegister.register(group + "." + name, setting);
73+
return setting;
74+
}
75+
}

0 commit comments

Comments
 (0)