我有一个扩展Module的类,模块有一个名为values的列表和一个getter和adder。
在我的课程扩展模块中,我写了类似的东西
private ValueFloat threads = new ValueFloat("Threads", 2, 1, 5, 0);
在构造函数中我写
addValue(threads);
现在从其他地方我循环遍历一个类扩展模块的值并更改它们。
但是从类扩展模块,返回threads.getValue();还是老了。
问题是什么?请帮忙!
ValueFloat类:
package me.niklasb.client.utils.ValueStuff;
import me.niklasb.client.main.Client;
public class ValueFloat extends Value {
private String name;
private float value;
private float min;
private float max;
private int round;
public ValueFloat(String name, float value, float min, float max, int round) {
super(name);
this.value = value;
this.min = min;
this.max = max;
this.round = round;
}
public ValueFloat(String name, float value, float min, float max) {
super(name);
this.value = value;
this.min = min;
this.max = max;
this.round = 1;
}
public float getValue() {
return this.value;
}
public void setValue(float value) {
this.value = value;
Client.saveValues();
}
public int getRound() {
return this.round;
}
public float getMin() {
return this.min;
}
public float getMax() {
return this.max;
}
}
示例模块:
package me.niklasb.client.modules;
import com.darkmagician6.eventapi.EventTarget;
import me.niklasb.client.Category;
import me.niklasb.client.Mod;
import me.niklasb.client.Module;
import me.niklasb.client.event.UpdateEvent;
import me.niklasb.client.utils.TimeHelper;
import me.niklasb.client.utils.ValueStuff.ValueString;
import org.lwjgl.input.Keyboard;
import java.util.Random;
@Mod(name = "Spammer", keyCode = Keyboard.KEY_NONE, cat = Category.Misc)
public class Spammer extends Module {
private Random random;
private TimeHelper time;
private ValueString text = new ValueString("Text", "@all Meow! Best client EU West!");
public Spammer() {
addValue(text);
time = new TimeHelper();
random = new Random();
}
@EventTarget
private void onUpdate(UpdateEvent event) {
if (mc.theWorld == null) {
return;
}
if (this.time.isDelayComplete(10000L)) {
Random randomNumber = new Random();
for (int msg = 1; msg <= 10; msg++) {
randomNumber.nextInt(100);
}
mc.thePlayer.sendChatMessage(text.getValue() + " " + random.nextInt(1337));
time.setLastMS();
}
}
}
基本gui元素设置值:
ValueString valueString = (ValueString) value;
GuiTextField textField = new GuiTextField(valueString.getName(), valueString.getValue());
textField.addTextListener(new TextListener() {
@Override
public void keyTyped(char key, String text) {
valueString.setValue(text);
}
@Override
public void stringEntered(String text) {
valueString.setValue(text);
}
});
add(textField);
值在超类中声明,例如&#34; Spammer&#34;
private String name;
private ArrayList<Value> values;
public Module() {
values = new ArrayList<>();
}
简而言之:
它们是在类中声明的变量,此变量的实例保存在列表中。现在,如果我从列表中获取其中一个实例并更改它的值,我希望在声明变量的类中,值也会更改。