Skip to content

Commit

Permalink
Revert "String -> UUID (SkriptLang#7497)"
Browse files Browse the repository at this point in the history
This reverts commit 2c9571e.
  • Loading branch information
Nuutrai committed Mar 2, 2025
1 parent 4326b22 commit 09ca234
Show file tree
Hide file tree
Showing 10 changed files with 56 additions and 351 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
import org.skriptlang.skript.lang.comparator.Relation;

import java.util.Objects;
import java.util.UUID;

@SuppressWarnings({"rawtypes"})
public class DefaultComparators {
Expand Down Expand Up @@ -666,10 +665,6 @@ public Relation compare(EntitySnapshot snap1, EntitySnapshot snap2) {
}
});
}

// UUID
Comparators.registerComparator(UUID.class, UUID.class, (one, two) -> Relation.get(one.equals(two)));
Comparators.registerComparator(UUID.class, String.class, (one, two) -> Relation.get(one.toString().equals(two)));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
import org.skriptlang.skript.lang.converter.Converters;
import org.skriptlang.skript.lang.script.Script;

import java.util.UUID;

public class DefaultConverters {

public DefaultConverters() {}
Expand Down Expand Up @@ -279,9 +277,6 @@ public void setAmount(Number amount) {
Converters.registerConverter(Script.class, Config.class, Script::getConfig);
Converters.registerConverter(Config.class, Node.class, Config::getMainNode);

// UUID -> String
Converters.registerConverter(UUID.class, String.class, UUID::toString);

// // Entity - String (UUID) // Very slow, thus disabled for now
// Converters.registerConverter(String.class, Entity.class, new Converter<String, Entity>() {
//
Expand Down
28 changes: 9 additions & 19 deletions src/main/java/ch/njol/skript/classes/data/DefaultFunctions.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
import ch.njol.skript.lang.util.SimpleLiteral;
import ch.njol.skript.registrations.Classes;
import ch.njol.skript.registrations.DefaultClasses;
import ch.njol.skript.util.*;
import ch.njol.skript.util.Color;
import ch.njol.skript.util.ColorRGB;
import ch.njol.skript.util.Contract;
import ch.njol.skript.util.Date;
import ch.njol.util.Math2;
import ch.njol.util.StringUtils;
import ch.njol.util.coll.CollectionUtils;
Expand Down Expand Up @@ -541,8 +544,9 @@ public Player[] executeSimple(Object[][] params) {
boolean isExact = (boolean) params[1][0];
UUID uuid = null;
if (name.length() > 16 || name.contains("-")) { // shortcut
if (Utils.isValidUUID(name))
try {
uuid = UUID.fromString(name);
} catch (IllegalArgumentException ignored) {}
}
return CollectionUtils.array(uuid != null ? Bukkit.getPlayer(uuid) : (isExact ? Bukkit.getPlayerExact(name) : Bukkit.getPlayer(name)));
}
Expand All @@ -565,8 +569,10 @@ public OfflinePlayer[] executeSimple(Object[][] params) {
String name = (String) params[0][0];
UUID uuid = null;
if (name.length() > 16 || name.contains("-")) { // shortcut
if (Utils.isValidUUID(name))
try {
uuid = UUID.fromString(name);
} catch (IllegalArgumentException ignored) {
}
}
OfflinePlayer result;

Expand Down Expand Up @@ -705,22 +711,6 @@ public String[] executeSimple(Object[][] params) {
"\t\tset {_money} to formatNumber({money::%sender's uuid%})",
"\t\tsend \"Your balance: %{_money}%\" to sender")
.since("2.10");

Functions.registerFunction(new SimpleJavaFunction<>("uuid", new Parameter[]{
new Parameter<>("uuid", DefaultClasses.STRING, true, null)
}, Classes.getExactClassInfo(UUID.class), true) {
@Override
public UUID[] executeSimple(Object[][] params) {
String uuid = (String) params[0][0];
if (Utils.isValidUUID(uuid))
return CollectionUtils.array(UUID.fromString(uuid));
return new UUID[0];
}
}
.description("Returns a UUID from the given string. The string must be in the format of a UUID.")
.examples("uuid(\"069a79f4-44e9-4726-a5be-fca90e38aaf5\")")
.since("INSERT VERSION")
);
}

}
72 changes: 0 additions & 72 deletions src/main/java/ch/njol/skript/classes/data/JavaClasses.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
import org.jetbrains.annotations.Nullable;
import org.joml.Quaternionf;

import java.io.StreamCorruptedException;
import java.util.UUID;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -327,19 +325,6 @@ public String toVariableNameString(Quaternionf quaternion) {
return null;
}
}));

Classes.registerClass(new ClassInfo<>(UUID.class, "uuid")
.user("uuids?")
.name("UUID")
.description(
"UUIDs are unique identifiers that ensure things can be reliably distinguished from each other. "
+ "They are generated in a way that makes it practically impossible for duplicates to occur.",
"Read more about UUIDs and how they are used in Minecraft "
+ "in <a href='https://minecraft.wiki/w/UUID'>the wiki entry about UUIDs</a>.")
.since("INSERT VERSION")
.parser(new UUIDParser())
.serializer(new UUIDSerializer())
);
}

/**
Expand Down Expand Up @@ -808,61 +793,4 @@ public boolean mustSyncDeserialization() {

}

private static class UUIDParser extends Parser<UUID> {

@Override
public @Nullable UUID parse(String string, ParseContext context) {
if (Utils.isValidUUID(string))
return UUID.fromString(string);
return null;
}

@Override
public String toString(UUID uuid, int flags) {
return uuid.toString();
}

@Override
public String toVariableNameString(UUID uuid) {
return uuid.toString();
}

}

private static class UUIDSerializer extends Serializer<UUID> {

@Override
public Fields serialize(UUID uuid) {
Fields fields = new Fields();

fields.putPrimitive("mostsignificantbits", uuid.getMostSignificantBits());
fields.putPrimitive("leastsignificantbits", uuid.getLeastSignificantBits());

return fields;
}

@Override
public void deserialize(UUID o, Fields f) {
assert false;
}

@Override
protected UUID deserialize(Fields fields) throws StreamCorruptedException {
long mostSignificantBits = fields.getAndRemovePrimitive("mostsignificantbits", long.class);
long leastSignificantBits = fields.getAndRemovePrimitive("leastsignificantbits", long.class);
return new UUID(mostSignificantBits, leastSignificantBits);
}

@Override
public boolean mustSyncDeserialization() {
return false;
}

@Override
protected boolean canBeInstantiated() {
return false;
}

}

}
140 changes: 0 additions & 140 deletions src/main/java/ch/njol/skript/expressions/ExprFromUUID.java

This file was deleted.

29 changes: 15 additions & 14 deletions src/main/java/ch/njol/skript/expressions/ExprRandomUUID.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,36 +19,37 @@
@Name("Random UUID")
@Description("Returns a random UUID.")
@Examples("set {_uuid} to random uuid")
@Since("2.5.1, INSERT VERSION (return UUIDs)")
public class ExprRandomUUID extends SimpleExpression<UUID> {

@Since("2.5.1")
public class ExprRandomUUID extends SimpleExpression<String> {
static {
Skript.registerExpression(ExprRandomUUID.class, UUID.class, ExpressionType.SIMPLE, "[a] random uuid");
Skript.registerExpression(ExprRandomUUID.class, String.class, ExpressionType.SIMPLE, "[a] random uuid");
}

@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
return true;
}

@Override
protected UUID @Nullable [] get(Event e) {
return new UUID[]{ UUID.randomUUID() };
@Nullable
protected String[] get(Event e) {
return new String[] {UUID.randomUUID().toString()};
}

@Override
public boolean isSingle() {
return true;
}

@Override
public Class<? extends UUID> getReturnType() {
return UUID.class;
public Class<? extends String> getReturnType() {
return String.class;
}

@Override
public String toString(@Nullable Event e, boolean debug) {
return "random uuid";
}

}
Loading

0 comments on commit 09ca234

Please sign in to comment.