Skip to content

Commit 7c34fe1

Browse files
authored
Merge branch 'dev/patch' into fix/junit-reference-not-clearing
2 parents f84bfb3 + 347ab46 commit 7c34fe1

File tree

10 files changed

+65
-19
lines changed

10 files changed

+65
-19
lines changed

.github/workflows/docs/generate-docs/action.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ inputs:
2323
required: false
2424
default: "*"
2525
type: string
26+
generate_javadocs:
27+
description: "Designates whether to generate javadocs for this nightly documentation"
28+
required: false
29+
default: false
30+
type: boolean
2631

2732
outputs:
2833
DOCS_CHANGED:
@@ -41,6 +46,7 @@ runs:
4146
SKRIPT_REPO_DIR: ${{ inputs.skript_repo_dir }}
4247
IS_RELEASE: ${{ inputs.is_release }}
4348
CLEANUP_PATTERN: ${{ inputs.cleanup_pattern }}
49+
GENERATE_JAVADOCS: ${{ inputs.generate_javadocs }}
4450
run: |
4551
replace_in_directory() {
4652
find $1 -type f -exec sed -i -e "s/$2/$3/g" {} \;
@@ -55,7 +61,7 @@ runs:
5561
if [ -d "${DOCS_REPO_DIR}/docs/templates" ]
5662
then
5763
export SKRIPT_DOCS_TEMPLATE_DIR=${DOCS_REPO_DIR}/docs/templates
58-
else
64+
else # compatibility for older versions
5965
export SKRIPT_DOCS_TEMPLATE_DIR=${DOCS_REPO_DIR}/doc-templates
6066
fi
6167
@@ -64,12 +70,16 @@ runs:
6470
cd $SKRIPT_REPO_DIR
6571
if [[ "${IS_RELEASE}" == "true" ]]; then
6672
./gradlew genReleaseDocs releaseJavadoc
67-
else
73+
elif [[ "${GENERATE_JAVADOCS}" == "true" ]]; then
6874
./gradlew genNightlyDocs javadoc
75+
else
76+
./gradlew genNightlyDocs
6977
fi
7078
7179
if [ -d "${DOCS_OUTPUT_DIR}" ]; then
72-
mkdir -p "${SKRIPT_DOCS_OUTPUT_DIR}/javadocs" && cp -a "./build/docs/javadoc/." "$_"
80+
if [[ "${GENERATE_JAVADOCS}" == "true" ]]; then
81+
mkdir -p "${SKRIPT_DOCS_OUTPUT_DIR}/javadocs" && cp -a "./build/docs/javadoc/." "$_"
82+
fi
7383
7484
mkdir -p "/tmp/normalized-output-docs" && cp -a "${DOCS_OUTPUT_DIR}/." "$_"
7585
mkdir -p "/tmp/normalized-generated-docs" && cp -a "${SKRIPT_DOCS_OUTPUT_DIR}/." "$_"

.github/workflows/nightly-docs.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ name: Nightly documentation
33
on:
44
push:
55
branches:
6-
- '**'
6+
- 'dev/feature'
7+
- 'dev/patch'
8+
- 'enhancement/**'
9+
- 'feature/**'
10+
- 'fix/**'
711
tags-ignore:
812
- '**'
913

src/main/java/ch/njol/skript/SkriptCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ else if (args[0].equalsIgnoreCase("info")) {
398398
else if (args[0].equalsIgnoreCase("gen-docs")) {
399399
File templateDir = Documentation.getDocsTemplateDirectory();
400400
if (!templateDir.exists()) {
401-
Skript.error(sender, "Cannot generate docs! Documentation templates not found at 'plugins/Skript/doc-templates/'");
401+
Skript.error(sender, "Cannot generate docs! Documentation templates not found at '" + Documentation.getDocsTemplateDirectory().getPath() + "'");
402402
TestMode.docsFailed = true;
403403
return true;
404404
}

src/main/java/ch/njol/skript/SkriptCommandTabCompleter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package ch.njol.skript;
2020

21+
import ch.njol.skript.doc.Documentation;
2122
import ch.njol.skript.test.runner.TestMode;
2223
import ch.njol.util.StringUtils;
2324
import org.bukkit.command.Command;
@@ -116,7 +117,7 @@ public List<String> onTabComplete(CommandSender sender, Command command, String
116117
options.add("disable");
117118
options.add("update");
118119
options.add("info");
119-
if (new File(Skript.getInstance().getDataFolder() + "/doc-templates").exists())
120+
if (Documentation.getDocsTemplateDirectory().exists())
120121
options.add("gen-docs");
121122
if (TestMode.DEV_MODE)
122123
options.add("test");

src/main/java/ch/njol/skript/structures/StructVariables.java

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,14 @@ public static class DefaultVariables implements ScriptData {
8787

8888
private final Deque<Map<String, Class<?>[]>> hints = new ArrayDeque<>();
8989
private final List<NonNullPair<String, Object>> variables;
90+
private boolean loaded;
9091

9192
public DefaultVariables(Collection<NonNullPair<String, Object>> variables) {
9293
this.variables = ImmutableList.copyOf(variables);
9394
}
9495

95-
@SuppressWarnings("unchecked")
9696
public void add(String variable, Class<?>... hints) {
97-
if (hints == null || hints.length <= 0)
97+
if (hints == null || hints.length == 0)
9898
return;
9999
if (CollectionUtils.containsAll(hints, Object.class)) // Ignore useless type hint.
100100
return;
@@ -115,7 +115,7 @@ public void exitScope() {
115115
/**
116116
* Returns the type hints of a variable.
117117
* Can be null if no type hint was saved.
118-
*
118+
*
119119
* @param variable The variable string of a variable.
120120
* @return type hints of a variable if found otherwise null.
121121
*/
@@ -140,14 +140,24 @@ public boolean hasDefaultVariables() {
140140
public List<NonNullPair<String, Object>> getVariables() {
141141
return variables;
142142
}
143+
144+
private boolean isLoaded() {
145+
return loaded;
146+
}
143147
}
144148

145149
@Override
146150
public boolean init(Literal<?>[] args, int matchedPattern, ParseResult parseResult, EntryContainer entryContainer) {
147151
SectionNode node = entryContainer.getSource();
148152
node.convertToEntries(0, "=");
149-
150-
List<NonNullPair<String, Object>> variables = new ArrayList<>();
153+
List<NonNullPair<String, Object>> variables;
154+
Script script = getParser().getCurrentScript();
155+
DefaultVariables existing = script.getData(DefaultVariables.class); // if the user has TWO variables: sections
156+
if (existing != null && existing.hasDefaultVariables()) {
157+
variables = new ArrayList<>(existing.variables);
158+
} else {
159+
variables = new ArrayList<>();
160+
}
151161
for (Node n : node) {
152162
if (!(n instanceof EntryNode)) {
153163
Skript.error("Invalid line in variables structure");
@@ -227,29 +237,40 @@ public boolean init(Literal<?>[] args, int matchedPattern, ParseResult parseResu
227237
}
228238
variables.add(new NonNullPair<>(name, o));
229239
}
230-
getParser().getCurrentScript().addData(new DefaultVariables(variables));
240+
script.addData(new DefaultVariables(variables)); // we replace the previous entry
231241
return true;
232242
}
233243

234244
@Override
235245
public boolean load() {
236246
DefaultVariables data = getParser().getCurrentScript().getData(DefaultVariables.class);
247+
if (data == null) { // this shouldn't happen
248+
Skript.error("Default variables data missing");
249+
return false;
250+
} else if (data.isLoaded()) {
251+
return true;
252+
}
237253
for (NonNullPair<String, Object> pair : data.getVariables()) {
238254
String name = pair.getKey();
239255
if (Variables.getVariable(name, null, false) != null)
240256
continue;
241-
242257
Variables.setVariable(name, pair.getValue(), null, false);
243258
}
259+
data.loaded = true;
244260
return true;
245261
}
246262

247263
@Override
248264
public void postUnload() {
249265
Script script = getParser().getCurrentScript();
250266
DefaultVariables data = script.getData(DefaultVariables.class);
251-
for (NonNullPair<String, Object> pair : data.getVariables())
252-
Variables.setVariable(pair.getKey(), null, null, false);
267+
if (data == null) // band-aid fix for this section's behaviour being handled by a previous section
268+
return; // see https://github.com/SkriptLang/Skript/issues/6013
269+
for (NonNullPair<String, Object> pair : data.getVariables()) {
270+
String name = pair.getKey();
271+
if (name.contains("<") && name.contains(">")) // probably a template made by us
272+
Variables.setVariable(pair.getKey(), null, null, false);
273+
}
253274
script.removeData(DefaultVariables.class);
254275
}
255276

src/main/resources/lang/english.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ skript command:
4545
changes: Lists all changes since the current version
4646
download: Download the newest version
4747
info: Prints a message with links to Skript's aliases and documentation
48-
gen-docs: Generates documentation using doc-templates in plugin folder
48+
gen-docs: Generates documentation using docs/templates in plugin folder
4949
test: Used for running internal Skript tests
5050

5151
invalid script: Can't find the script <grey>'<gold>%s<grey>'<red> in the scripts folder!

src/main/resources/lang/french.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ skript command:
4545
changes: Liste toutes les modifications apportées depuis la version actuelle
4646
download: Télécharge la dernière version
4747
info: Affiche un message contenant les liens vers les alias et la documentation de Skript
48-
gen-docs: Génère la documentation en utilisant doc-templates dans le dossier du plugin
48+
gen-docs: Génère la documentation en utilisant docs/templates dans le dossier du plugin
4949
test: Utilisé pour exécuter les tests Skript
5050

5151
invalid script: Impossible de trouver le script <grey>'<gold>%s<grey>'<red> dans le dossier des scripts !

src/main/resources/lang/german.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ skript command:
4545
changes: Listet alle Änderungen seit der aktuellen Version auf (auf englisch)
4646
download: Lädt die neueste Version herunter
4747
info: Druckt eine Nachricht mit Links zu den Aliases und der Dokumentation von Skript.
48-
gen-docs: Generiert Dokumentation mithilfe von doc-templates im Plugin-Ordner
48+
gen-docs: Generiert Dokumentation mithilfe von docs/templates im Plugin-Ordner
4949
test: Wird zum Ausführen von Skript-Tests verwendet
5050

5151
invalid script: Das Skript <grey>'<gold>%s<grey>'<red> konnte nicht gefunden werden.

src/main/resources/lang/simplifiedchinese.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ skript command:
4545
changes: 列出自当前版本以来的所有变化
4646
download: 下载最新的版本
4747
info: 打印一个带有Skript的别名和文档链接的信息
48-
gen-docs: 使用插件文件夹中的doc-templates生成文档
48+
gen-docs: 使用插件文件夹中的docs/templates生成文档
4949
test: 用于运行内部的Skript测试
5050

5151
invalid script: 无法在scripts文件夹中找到脚本<grey>“<gold>%s<grey>”<red>!
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
variables:
2+
{variables_test1} = true
3+
4+
variables:
5+
{variables_test1} = false # we hope it doesn't overwrite!
6+
{variables_test2} = true
7+
8+
test "default variables":
9+
assert {variables_test1} is true with "{variables_test1} was not true"
10+
assert {variables_test2} is true with "{variables_test2} was not true"

0 commit comments

Comments
 (0)