Skip to content

Commit

Permalink
Partial requested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
sovdeeth committed Dec 17, 2024
1 parent 1578ee6 commit 5efd862
Show file tree
Hide file tree
Showing 14 changed files with 91 additions and 51 deletions.
1 change: 0 additions & 1 deletion src/main/java/ch/njol/skript/Skript.java
Original file line number Diff line number Diff line change
Expand Up @@ -1976,7 +1976,6 @@ public static void error(final CommandSender sender, final String error) {
sender.sendMessage(Utils.replaceEnglishChatStyles(getSkriptPrefix() + ChatColor.DARK_RED + error));
}


/**
* Gets the updater instance currently used by Skript.
* @return SkriptUpdater instance.
Expand Down
16 changes: 8 additions & 8 deletions src/main/java/ch/njol/skript/SkriptConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -332,17 +332,17 @@ private static void userDisableHooks(Class<? extends Hook<?>> hookClass, boolean

public static final Option<Timespan> runtimeErrorFrameDuration = new Option<>("runtime errors.frame duration", new Timespan(Timespan.TimePeriod.SECOND, 1));

public static final Option<Integer> runtimeErrorLimitTotal = new Option<>("runtime errors.total errors per frame",8);
public static final Option<Integer> runtimeWarningLimitTotal = new Option<>("runtime errors.total warnings per frame",8);
public static final Option<Integer> runtimeErrorLimitTotal = new Option<>("runtime errors.total errors per frame", 8);
public static final Option<Integer> runtimeWarningLimitTotal = new Option<>("runtime errors.total warnings per frame", 8);

public static final Option<Integer> runtimeErrorLimitLine = new Option<>("runtime errors.errors from one line per frame",2);
public static final Option<Integer> runtimeWarningLimitLine = new Option<>("runtime errors.warnings from one line per frame",2);
public static final Option<Integer> runtimeErrorLimitLine = new Option<>("runtime errors.errors from one line per frame", 2);
public static final Option<Integer> runtimeWarningLimitLine = new Option<>("runtime errors.warnings from one line per frame", 2);

public static final Option<Integer> runtimeErrorLimitLineTimeout = new Option<>("runtime errors.error spam timeout limit",4);
public static final Option<Integer> runtimeWarningLimitLineTimeout = new Option<>("runtime errors.warning spam timeout limit",4);
public static final Option<Integer> runtimeErrorLimitLineTimeout = new Option<>("runtime errors.error spam timeout limit", 4);
public static final Option<Integer> runtimeWarningLimitLineTimeout = new Option<>("runtime errors.warning spam timeout limit", 4);

public static final Option<Integer> runtimeErrorTimeoutDuration = new Option<>("runtime errors.error timeout length",10);
public static final Option<Integer> runtimeWarningTimeoutDuration= new Option<>("runtime errors.warning timeout length",10);
public static final Option<Integer> runtimeErrorTimeoutDuration = new Option<>("runtime errors.error timeout length", 10);
public static final Option<Integer> runtimeWarningTimeoutDuration = new Option<>("runtime errors.warning timeout length", 10);

/**
* This should only be used in special cases
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/ch/njol/skript/entity/EntityData.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.io.NotSerializableException;
Expand Down Expand Up @@ -666,6 +667,11 @@ protected boolean deserialize(final String s) {
return false;
}

@Override
public @NotNull String getSyntaxTypeName() {
return "entity data";
}

@SuppressWarnings({"unchecked", "deprecation"})
protected static <E extends Entity> @Nullable E spawn(Location location, Class<E> type, Consumer<E> consumer) {
World world = location.getWorld();
Expand All @@ -687,4 +693,5 @@ protected boolean deserialize(final String s) {
return world.spawn(location, type, consumer);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public Node getNode() {
}

@Override
public String toUnderline() {
public String toHighlight() {
return rawExpr;
}

Expand Down
6 changes: 6 additions & 0 deletions src/main/java/ch/njol/skript/lang/Condition.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import ch.njol.util.Checker;
import ch.njol.util.Kleenean;
import org.bukkit.event.Event;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.skriptlang.skript.lang.condition.Conditional;

Expand Down Expand Up @@ -93,6 +94,11 @@ public final boolean isNegated() {
return negated;
}

@Override
public @NotNull String getSyntaxTypeName() {
return "condition";
}

/**
* Parse a raw string input as a condition.
*
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/ch/njol/skript/lang/Effect.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import ch.njol.skript.log.ParseLogHandler;
import ch.njol.skript.log.SkriptLogger;
import org.bukkit.event.Event;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Iterator;
Expand Down Expand Up @@ -81,4 +82,9 @@ public final boolean run(Event event) {
}
}

@Override
public @NotNull String getSyntaxTypeName() {
return "effect";
}

}
5 changes: 5 additions & 0 deletions src/main/java/ch/njol/skript/lang/Expression.java
Original file line number Diff line number Diff line change
Expand Up @@ -432,4 +432,9 @@ default <R> void changeInPlace(Event event, Function<T, R> changeFunction, boole
return newDelta == null ? delta : newDelta;
}

@Override
default @NotNull String getSyntaxTypeName() {
return "expression";
}

}
6 changes: 6 additions & 0 deletions src/main/java/ch/njol/skript/lang/Section.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import ch.njol.util.Kleenean;
import org.bukkit.event.Event;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;
Expand Down Expand Up @@ -263,4 +264,9 @@ public boolean claimed() {

}

@Override
public @NotNull String getSyntaxTypeName() {
return "section";
}

}
8 changes: 8 additions & 0 deletions src/main/java/ch/njol/skript/lang/SyntaxElement.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import ch.njol.skript.lang.SkriptParser.ParseResult;
import ch.njol.skript.lang.parser.ParserInstance;
import ch.njol.util.Kleenean;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;

/**
* Represents a general part of the syntax.
Expand All @@ -47,4 +49,10 @@ default ParserInstance getParser() {
return ParserInstance.get();
}

/**
* @return A string naming the type of syntax this is. e.g. "expression", "section".
*/
@Contract(pure = true)
@NotNull String getSyntaxTypeName();

}
6 changes: 6 additions & 0 deletions src/main/java/ch/njol/skript/util/visual/VisualEffect.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Objects;
Expand Down Expand Up @@ -178,5 +179,10 @@ public boolean equals(@Nullable Object o) {
VisualEffect that = (VisualEffect) o;
return type == that.type && Objects.equals(data, that.data);
}

@Override
public @NotNull String getSyntaxTypeName() {
return "visual effect"; // why is this a unique syntax element, it really needs to go
}

}
22 changes: 11 additions & 11 deletions src/main/java/org/skriptlang/skript/lang/errors/Frame.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
/**
* Stores the accumulated runtime errors over a span of time, then prints them.
*/
public class Frame {
public final class Frame {

/**
* Store limits for the number of issues a frame can print per frame.
Expand All @@ -24,19 +24,19 @@ public class Frame {
* @param lineTimeoutLimit the limit at which a line will be put in timeout for exceeding.
* @param timeoutDuration the duration a line will stay in timeout, in frames.
*/
public record FrameLimit(int totalLimit, int lineLimit, int lineTimeoutLimit, int timeoutDuration) {}
public record FrameLimit(int totalLimit, int lineLimit, int lineTimeoutLimit, int timeoutDuration) { }

final static String plural = "s were";
final static String singular= " was";
private final static String plural = "s were";
private final static String singular= " was";

final String type;
final FrameLimit limits;
private final String type;
private final FrameLimit limits;

int skipped;
int printed;
Map<Node, Integer> lineTotals;
Map<Node, Integer> lineSkipped;
Map<Node, Integer> timeouts;
private int skipped;
private int printed;
private final Map<Node, Integer> lineTotals;
private final Map<Node, Integer> lineSkipped;
private final Map<Node, Integer> timeouts;

public Frame(String type, FrameLimit limits) {
this.type = type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import ch.njol.skript.SkriptConfig;
import ch.njol.skript.config.Node;
import ch.njol.skript.log.SkriptLogger;
import ch.njol.skript.util.Task;
import ch.njol.skript.util.Timespan;
import org.bukkit.Bukkit;
import org.skriptlang.skript.lang.errors.Frame.FrameLimit;
Expand Down Expand Up @@ -49,7 +50,7 @@ public static void refresh() {
}

private final Frame errorFrame, warningFrame;
private final int taskId;
private final Task task;

/**
* Creates a new error manager, which also creates its own frames.
Expand All @@ -63,13 +64,16 @@ public static void refresh() {
public RuntimeErrorManager(int frameLength, FrameLimit errorLimits, FrameLimit warningLimits) {
errorFrame = new Frame("error", errorLimits);
warningFrame = new Frame("warning", warningLimits);
taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(Skript.getInstance(), () -> {
errorFrame.printFrame();
errorFrame.nextFrame();

warningFrame.printFrame();
warningFrame.nextFrame();
}, frameLength, frameLength);
task = new Task(Skript.getInstance(), frameLength, frameLength, true) {
@Override
public void run() {
errorFrame.printFrame();
errorFrame.nextFrame();

warningFrame.printFrame();
warningFrame.nextFrame();
}
};
}


Expand Down Expand Up @@ -97,6 +101,7 @@ public Frame getWarningFrame() {

@Override
public void close() {
Bukkit.getScheduler().cancelTask(taskId);
task.close();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
import ch.njol.skript.config.Config;
import ch.njol.skript.config.Node;
import ch.njol.skript.doc.Name;
import ch.njol.skript.lang.Condition;
import ch.njol.skript.lang.Effect;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.Section;
import ch.njol.skript.lang.SkriptParser;
import ch.njol.skript.lang.SyntaxElement;
import ch.njol.skript.lang.parser.ParserInstance;
Expand All @@ -16,7 +13,6 @@
import ch.njol.util.Kleenean;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.skriptlang.skript.lang.structure.Structure;

import java.util.logging.Level;

Expand Down Expand Up @@ -52,7 +48,7 @@ public interface RuntimeErrorProducer {
*
* @return The text to underline in the line that produced a runtime error.
*/
String toUnderline();
String toHighlight();

/**
* Dispatches a runtime error with the given text.
Expand All @@ -64,7 +60,7 @@ public interface RuntimeErrorProducer {
* @param message The text to display as the error message.
*/
default void error(String message) {
String formatted = toFormattedErrorString(Level.SEVERE, message, getNode(), toUnderline());
String formatted = toFormattedErrorString(Level.SEVERE, message, getNode(), toHighlight());
Skript.getRuntimeErrorManager().error(getNode(), formatted);
}

Expand All @@ -78,7 +74,7 @@ default void error(String message) {
* @param message The text to display as the error message.
*/
default void warning(String message) {
String formatted = toFormattedErrorString(Level.WARNING, message, getNode(), toUnderline());
String formatted = toFormattedErrorString(Level.WARNING, message, getNode(), toHighlight());
Skript.getRuntimeErrorManager().warning(getNode(), formatted);
}

Expand Down Expand Up @@ -129,25 +125,16 @@ default void warning(String message) {
String from = this.getClass().getAnnotation(Name.class).value().trim().replaceAll("\n", "");

return
String.format(skriptInfo, c.getFileName(), from, getSyntaxType()) +
String.format(skriptInfo, c.getFileName(), from, getSyntaxTypeName()) +
String.format(errorInfo, message.replaceAll("§", "&")) +
String.format(lineInfo, node.getLine(), node.save().trim().replaceAll("§", "&").replaceAll(toUnderline, "§f§n" + toUnderline + "§7"));
}

@Contract(pure = true)
private @NotNull String getSyntaxType() {
if (this instanceof Effect) {
return "effect";
} else if (this instanceof Condition) {
return "condition";
} else if (this instanceof Expression<?>) {
return "expression";
} else if (this instanceof Section) {
return "section";
} else if (this instanceof Structure) {
return "structure";
}
return "syntax";
private @NotNull String getSyntaxTypeName() {
if (this instanceof SyntaxElement syntaxElement)
return syntaxElement.getSyntaxTypeName();
return "unknown syntax type";
}

@Contract(pure = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,11 @@ public String toString() {
return toString(null, false);
}

@Override
public @NotNull String getSyntaxTypeName() {
return "structure";
}

@Nullable
public static Structure parse(String expr, Node node, @Nullable String defaultError) {
return parse(expr, node, defaultError, Skript.getStructures().iterator());
Expand Down

0 comments on commit 5efd862

Please sign in to comment.