本文整理汇总了Java中ch.njol.skript.Skript.warning方法的典型用法代码示例。如果您正苦于以下问题:Java Skript.warning方法的具体用法?Java Skript.warning怎么用?Java Skript.warning使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ch.njol.skript.Skript
的用法示例。
在下文中一共展示了Skript.warning方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: execute
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
protected void execute(Event e) {
String cls = className.getSingle(e);
if (cls == null) {
return;
}
JavaType javaType;
try {
javaType = new JavaType(LibraryLoader.getClassLoader().loadClass(cls));
} catch (ClassNotFoundException ex) {
Skript.warning(cls + " refers to a non-existent class.");
return;
}
if (var == null) {
Variables.setVariable(javaType.getJavaClass().getSimpleName().toLowerCase(), javaType, e,
false);
} else {
var.change(e, new Object[]{javaType}, Changer.ChangeMode.SET);
}
}
示例2: walk
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
protected TriggerItem walk(Event e) {
if (e instanceof CustomEffect.EffectEvent) {
if (((CustomEffect.EffectEvent) e).isSync()) {
Skript.warning("Synchronous events should not be continued. " +
"Call 'delay effect' to delay the effect's execution.");
} else {
TriggerItem.walk(((CustomEffect.EffectEvent) e).getNext(),
((CustomEffect.EffectEvent) e).getDirectEvent());
}
} else if (e instanceof CustomExpression.ExpressionGetEvent) {
if (objects != null) {
((CustomExpression.ExpressionGetEvent) e).setOutput(objects.getAll(e));
} else {
((CustomExpression.ExpressionGetEvent) e).setOutput(new Object[0]);
}
} else if (e instanceof CustomCondition.ConditionEvent) {
((CustomCondition.ConditionEvent) e).markContinue();
}
return null;
}
示例3: propagateErrors
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@SuppressWarnings("ThrowableNotThrown")
public static <T, R> Function<T, R> propagateErrors(ExceptionalFunction<T, R> function) {
return t -> {
try {
return function.apply(t);
} catch (Exception e) {
Skript.warning(
String.format("skript-mirror encountered a %s: %s%n" +
"Run Skript with the verbosity 'very high' for the stack trace.",
e.getClass().getSimpleName(), e.getMessage()));
if (Skript.logVeryHigh()) {
StringWriter errors = new StringWriter();
e.printStackTrace(new PrintWriter(errors));
Skript.warning(errors.toString());
}
}
return null;
};
}
示例4: setScope
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
public void setScope() {
TriggerItem possibleCatch = scope.getNext();
if (possibleCatch instanceof Conditional) {
try {
Condition catchCond = (Condition) CustomScope.condition.get(possibleCatch);
if (catchCond instanceof ScopeCatch) {
this.scopeCatch = (ScopeCatch) catchCond;
} else {
Skript.warning("It is recommended to use a catch statement after a try statement");
}
} catch (IllegalAccessException e) {
Logging.reportException(this, e);
}
} else {
Skript.warning("It is recommended to use a catch statement after a try statement");
}
last.setNext(null);
}
示例5: onValueChange
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
protected void onValueChange() {
String value = getValue();
if (value == null) {
plural = singular = key;
gender = 0;
return;
}
final int g = value.lastIndexOf('@');
if (g != -1) {
gender = getGender("" + value.substring(g + 1).trim(), key);
value = "" + value.substring(0, g).trim();
} else {
gender = 0;
}
final NonNullPair<String, String> p = Noun.getPlural(value);
singular = p.getFirst();
plural = p.getSecond();
if (gender == PLURAL && !Objects.equals(singular, plural))
Skript.warning("Noun '" + key + "' is of gender 'plural', but has different singular and plural values.");
}
示例6: insertFunction
import ch.njol.skript.Skript; //导入方法依赖的package包/类
private final static void insertFunction(final PrintWriter pw, final JavaFunction<?> func) {
final StringBuilder params = new StringBuilder();
for (final Parameter<?> p : func.getParameters()) {
if (params.length() != 0)
params.append(", ");
params.append(p.toString());
}
final String desc = validateHTML(StringUtils.join(func.getDescription(), "<br/>"), "functions");
final String since = validateHTML(func.getSince(), "functions");
if (desc == null || since == null) {
Skript.warning("Function " + func.getName() + "'s description or 'since' is invalid");
return;
}
replaceInto(pw, "functions", "name, parameters, description, examples, since",
escapeHTML(func.getName()),
escapeHTML(params.toString()),
desc,
escapeHTML(StringUtils.join(func.getExamples(), "\n")),
since);
}
示例7: acceptChange
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
if (mode == ChangeMode.REMOVE_ALL)
return null;
if (ScriptLoader.isCurrentEvent(PlayerRespawnEvent.class) && !ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Cannot change a player's level in a respawn event. Add a delay of 1 tick or change the 'new level' in a death event.");
return null;
}
if (ScriptLoader.isCurrentEvent(PlayerDeathEvent.class) && getTime() == 0 && getExpr().isDefault() && !ScriptLoader.hasDelayBefore.isTrue()) {
Skript.warning("Changing the player's level in a death event will change the player's level before he dies. " +
"Use either 'past level of player' or 'new level of player' to clearly state whether to change the level before or after he dies.");
}
if (getTime() == -1 && !ScriptLoader.isCurrentEvent(PlayerDeathEvent.class))
return null;
return new Class[] {Number.class};
}
示例8: init
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(final Expression<?>[] exprs, final int matchedPattern, final Kleenean isDelayed, final ParseResult parseResult) {
effects = (Expression<VisualEffect>) exprs[0];
direction = (Expression<Direction>) exprs[1];
where = exprs[2];
players = (Expression<Player>) exprs[3];
if (effects instanceof Literal) {
final VisualEffect[] effs = effects.getAll(null);
boolean hasLocationEffect = false, hasEntityEffect = false;
for (final VisualEffect e : effs) {
if (e.isEntityEffect())
hasEntityEffect = true;
else
hasLocationEffect = true;
}
if (!hasLocationEffect && players != null)
Skript.warning("Entity effects are visible to all players");
if (!hasLocationEffect && !direction.isDefault())
Skript.warning("Entity effects are always played on an entity");
if (hasEntityEffect && !Entity.class.isAssignableFrom(where.getReturnType()))
Skript.warning("Entity effects can only be played on entities");
}
return true;
}
示例9: save
import ch.njol.skript.Skript; //导入方法依赖的package包/类
/**
* May be called from a different thread than Bukkit's main thread.
*/
final void save(final SerializedVariable var) {
if (changesQueue.size() > FIRST_WARNING && lastWarning < System.currentTimeMillis() - WARNING_INTERVAL * 1000) {
Skript.warning("Cannot write variables to the database '" + databaseName + "' at sufficient speed; server performance may suffer and many variables will be lost if the server crashes. (this warning will be repeated at most once every " + WARNING_INTERVAL + " seconds)");
lastWarning = System.currentTimeMillis();
}
if (!changesQueue.offer(var)) {
if (lastError < System.currentTimeMillis() - ERROR_INTERVAL * 1000) {
Skript.error("Skript cannot save any variables to the database '" + databaseName + "'. The server will hang and may crash if no more variables can be saved.");
lastError = System.currentTimeMillis();
}
while (true) {
try {
// REMIND add repetitive error and/or stop saving variables altogether?
changesQueue.put(var);
break;
} catch (final InterruptedException e) {}
}
}
}
示例10: insertSyntaxElement
import ch.njol.skript.Skript; //导入方法依赖的package包/类
private final static void insertSyntaxElement(final PrintWriter pw, final SyntaxElementInfo<?> info, final String type) {
if (info.c.getAnnotation(NoDoc.class) != null)
return;
if (info.c.getAnnotation(Name.class) == null || info.c.getAnnotation(Description.class) == null || info.c.getAnnotation(Examples.class) == null || info.c.getAnnotation(Since.class) == null) {
Skript.warning("" + info.c.getSimpleName() + " is missing information");
return;
}
final String desc = validateHTML(StringUtils.join(info.c.getAnnotation(Description.class).value(), "<br/>"), type + "s");
final String since = validateHTML(info.c.getAnnotation(Since.class).value(), type + "s");
if (desc == null || since == null) {
Skript.warning("" + info.c.getSimpleName() + "'s description or 'since' is invalid");
return;
}
final String patterns = cleanPatterns(StringUtils.join(info.patterns, "\n", 0, info.c == CondCompare.class ? 8 : info.patterns.length));
insertOnDuplicateKeyUpdate(pw, "syntax_elements",
"id, name, type, patterns, description, examples, since",
"patterns = TRIM(LEADING '\n' FROM CONCAT(patterns, '\n', '" + escapeSQL(patterns) + "'))",
escapeHTML("" + info.c.getSimpleName()),
escapeHTML(info.c.getAnnotation(Name.class).value()),
type,
patterns,
desc,
escapeHTML(StringUtils.join(info.c.getAnnotation(Examples.class).value(), "\n")),
since);
}
示例11: toString
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@Override
public String toString() {
validate();
if (Skript.testing())
Skript.warning("Invalid use of Adjective.toString()");
return "" + def;
}
示例12: init
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(final Expression<?>[] vars, final int matchedPattern, final Kleenean isDelayed, final ParseResult parser) {
setExpr((Expression<ItemType>) vars[0]);
if (parser.mark != 1) {
single = true;
if (!getExpr().isSingle() || (getExpr() instanceof Literal && ((Literal<ItemType>) getExpr()).getSingle().getTypes().size() != 1)) {
Skript.warning("'" + getExpr() + "' has multiple ids");
single = false;
}
}
return true;
}
示例13: init
import ch.njol.skript.Skript; //导入方法依赖的package包/类
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(final Expression<?>[] exprs, final int matchedPattern, final Kleenean isDelayed, final ParseResult parseResult) {
invis = (Expression<Inventory>) exprs[0];
if (invis instanceof Variable && !invis.isSingle() && parseResult.mark != 1)
Skript.warning("'items in {variable::*}' does not actually represent the items stored in the variable. Use either '{variable::*}' (e.g. 'loop {variable::*}') if the variable contains items, or 'items in inventories {variable::*}' if the variable contains inventories.");
return true;
}
示例14: insertEvent
import ch.njol.skript.Skript; //导入方法依赖的package包/类
private final static void insertEvent(final PrintWriter pw, final SkriptEventInfo<?> info) {
if (info.getDescription() == SkriptEventInfo.NO_DOC)
return;
if (info.getDescription() == null || info.getExamples() == null || info.getSince() == null) {
Skript.warning("" + info.getName() + " (" + info.c.getSimpleName() + ") is missing information");
return;
}
for (final SkriptEventInfo<?> i : Skript.getEvents()) {
if (info.getId().equals(i.getId()) && info != i && i.getDescription() != null && i.getDescription() != SkriptEventInfo.NO_DOC) {
Skript.warning("Duplicate event id '" + info.getId() + "'");
return;
}
}
final String desc = validateHTML(StringUtils.join(info.getDescription(), "<br/>"), "events");
final String since = validateHTML(info.getSince(), "events");
if (desc == null || since == null) {
Skript.warning("description or 'since' of " + info.getName() + " (" + info.c.getSimpleName() + ") is invalid");
return;
}
final String patterns = cleanPatterns(info.getName().startsWith("On ") ? "[on] " + StringUtils.join(info.patterns, "\n[on] ") : StringUtils.join(info.patterns, "\n"));
insertOnDuplicateKeyUpdate(pw, "syntax_elements",
"id, name, type, patterns, description, examples, since",
"patterns = '" + escapeSQL(patterns) + "'",
escapeHTML(info.getId()),
escapeHTML(info.getName()),
"event",
patterns,
desc,
escapeHTML(StringUtils.join(info.getExamples(), "\n")),
since);
}
示例15: checkVariableConflicts
import ch.njol.skript.Skript; //导入方法依赖的package包/类
private static void checkVariableConflicts(final String name, final StringMode mode, final @Nullable Iterable<Object> string) {
if (mode != StringMode.VARIABLE_NAME || variableNames.containsKey(name))
return;
if (name.startsWith("%")) {// inside the if to only print this message once per variable
final Config script = ScriptLoader.currentScript;
if (script != null)
Skript.warning("Starting a variable's name with an expression is discouraged ({" + name + "}). You could prefix it with the script's name: {" + StringUtils.substring(script.getFileName(), 0, -3) + "." + name + "}");
}
final Pattern pattern;
if (string != null) {
final StringBuilder p = new StringBuilder();
stringLoop: for (final Object o : string) {
if (o instanceof Expression) {
for (final ClassInfo<?> ci : Classes.getClassInfos()) {
final Parser<?> parser = ci.getParser();
if (parser != null && ci.getC().isAssignableFrom(((Expression<?>) o).getReturnType())) {
p.append("(?!%)" + parser.getVariableNamePattern() + "(?<!%)");
continue stringLoop;
}
}
p.append("[^%*](.*[^%*])?"); // [^*] to not report {var::%index%}/{var::*} as conflict
} else {
p.append(Pattern.quote(o.toString()));
}
}
pattern = Pattern.compile(p.toString());
} else {
pattern = Pattern.compile(Pattern.quote(name));
}
if (!SkriptConfig.disableVariableConflictWarnings.value()) {
for (final Entry<String, Pattern> e : variableNames.entrySet()) {
if (e.getValue().matcher(name).matches() || pattern.matcher(e.getKey()).matches()) {
Skript.warning("Possible name conflict of variables {" + name + "} and {" + e.getKey() + "} (there might be more conflicts).");
break;
}
}
}
variableNames.put(name, pattern);
}