Skip to content

Commit 87ba763

Browse files
committed
new API methods, scripting language upgrade
1 parent 6495bb4 commit 87ba763

7 files changed

Lines changed: 64 additions & 9 deletions

File tree

.github/workflows/build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
- '1.21'
77
- '1.21.[1-9]'
88
- '1.21.1[0-9]'
9+
- '1.21.11-dev'
910

1011
jobs:
1112
build:

common/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
mod_version=3.15.1
1+
mod_version=3.15.2

common/java/com/zergatul/cheatutils/scripting/modules/GameApi.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,23 @@ public int findClosestEntityByClass(String className) {
351351
return target == null ? Integer.MIN_VALUE : target.getId();
352352
}
353353

354+
@MethodDescription("""
355+
Returns integer entity id by its UUID
356+
""")
357+
public int findByUuid(UUIDWrapper uuid) {
358+
if (mc.level == null || mc.player == null) {
359+
return Integer.MIN_VALUE;
360+
}
361+
362+
for (Entity entity : mc.level.entitiesForRendering()) {
363+
if (entity.getUUID().equals(uuid.getRaw())) {
364+
return entity.getId();
365+
}
366+
}
367+
368+
return Integer.MIN_VALUE;
369+
}
370+
354371
public Position3d getPosition(int entityId) {
355372
return getValue(
356373
entityId,

common/java/com/zergatul/cheatutils/scripting/types/StyleWrapper.java

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
import net.minecraft.network.chat.HoverEvent;
1111
import net.minecraft.network.chat.Style;
1212
import net.minecraft.network.chat.TextColor;
13+
import net.minecraft.world.item.ItemStack;
14+
15+
import java.util.UUID;
1316

1417
@CustomType(name = "TextStyle")
1518
public class StyleWrapper {
@@ -94,12 +97,37 @@ public ComponentWrapper getHoverText() {
9497
if (event == null) {
9598
return ComponentWrapper.EMPTY;
9699
}
97-
if (event.action() == HoverEvent.Action.SHOW_TEXT) {
98-
HoverEvent.ShowText showText = (HoverEvent.ShowText) event;
99-
return new ComponentWrapper(showText.value());
100-
} else {
101-
return ComponentWrapper.EMPTY;
100+
101+
return switch (event.action()) {
102+
case SHOW_TEXT -> new ComponentWrapper(((HoverEvent.ShowText) event).value());
103+
default -> ComponentWrapper.EMPTY;
104+
};
105+
}
106+
107+
@Getter(name = "hoverItem")
108+
public ItemStackWrapper getHoverItem() {
109+
HoverEvent event = inner.getHoverEvent();
110+
if (event == null) {
111+
return new ItemStackWrapper(ItemStack.EMPTY);
112+
}
113+
114+
return switch (event.action()) {
115+
case SHOW_ITEM -> new ItemStackWrapper(((HoverEvent.ShowItem) event).item());
116+
default -> new ItemStackWrapper(ItemStack.EMPTY);
117+
};
118+
}
119+
120+
@Getter(name = "hoverEntity")
121+
public UUIDWrapper getHoverEntity() {
122+
HoverEvent event = inner.getHoverEvent();
123+
if (event == null) {
124+
return null;
102125
}
126+
127+
return switch (event.action()) {
128+
case SHOW_ENTITY -> new UUIDWrapper(((HoverEvent.ShowEntity) event).entity().uuid);
129+
default -> null;
130+
};
103131
}
104132

105133
@Getter(name = "clickCommand")
@@ -110,8 +138,11 @@ public String getClickCommand() {
110138
}
111139

112140
return switch (event.action()) {
141+
case OPEN_URL -> ((ClickEvent.OpenUrl) event).uri().toString();
142+
case OPEN_FILE -> ((ClickEvent.OpenFile) event).path();
113143
case RUN_COMMAND -> ((ClickEvent.RunCommand) event).command();
114144
case SUGGEST_COMMAND -> ((ClickEvent.SuggestCommand) event).command();
145+
case COPY_TO_CLIPBOARD -> ((ClickEvent.CopyToClipboard) event).value();
115146
default -> "";
116147
};
117148
}

common/java/com/zergatul/cheatutils/scripting/types/UUIDWrapper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.zergatul.cheatutils.scripting.types;
22

3+
import com.zergatul.cheatutils.scripting.HiddenMethod;
34
import com.zergatul.scripting.type.CustomType;
45

56
import java.util.UUID;
@@ -13,6 +14,11 @@ public UUIDWrapper(UUID id) {
1314
this.id = id;
1415
}
1516

17+
@HiddenMethod
18+
public UUID getRaw() {
19+
return id;
20+
}
21+
1622
@Override
1723
public String toString() {
1824
return id.toString();

common/java/com/zergatul/cheatutils/webui/ApiGenHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private void buildType(List<String> lines, SType type) {
145145
baseClass != null && baseClass != Object.class ? " : " + formatType(SType.fromJavaType(type.getJavaClass().getSuperclass())) : ""));
146146

147147
for (PropertyReference property : type.getStaticProperties()) {
148-
lines.add(String.format("\tstatic %s %s { %s%s }", property.getType(), property.getName(), property.canGet() ? "get;" : "", property.canSet() ? "set;" : ""));
148+
lines.add(String.format("\tstatic %s %s { %s%s }", property.getType(), property.getName(), property.canLoad() ? "get;" : "", property.canStore() ? "set;" : ""));
149149
}
150150
for (MethodReference method : type.getStaticMethods()) {
151151
formatMethod(lines, "static ", method);
@@ -154,7 +154,7 @@ private void buildType(List<String> lines, SType type) {
154154
lines.add(String.format("\tconstructor(%s);", formatParameters(constructor.getParameters())));
155155
}
156156
for (PropertyReference property : type.getInstanceProperties()) {
157-
lines.add(String.format("\t%s %s { %s%s }", formatType(property.getType()), property.getName(), property.canGet() ? "get;" : "", property.canSet() ? "set;" : ""));
157+
lines.add(String.format("\t%s %s { %s%s }", formatType(property.getType()), property.getName(), property.canLoad() ? "get;" : "", property.canStore() ? "set;" : ""));
158158
}
159159
for (MethodReference method : type.getDeclaredInstanceMethods()) {
160160
formatMethod(lines, "", method);

java-scripting-language

0 commit comments

Comments
 (0)