mirror of
https://github.com/FabricMC/fabric.git
synced 2024-11-14 19:25:23 -05:00
Add a system property for a custom output directory for gametest structures (#3509)
* Add a check for the output directory in the test command
* Fix style and add a run configuration with the output directory set
* Update fabric-gametest-api-v1/build.gradle
---------
Co-authored-by: modmuss <modmuss50@gmail.com>
(cherry picked from commit a21facc05f
)
This commit is contained in:
parent
bb43a8b9bf
commit
51ad78441b
3 changed files with 57 additions and 0 deletions
|
@ -2,6 +2,17 @@ version = getSubprojectVersion(project)
|
|||
|
||||
loom {
|
||||
accessWidenerPath = file("src/main/resources/fabric-gametest-api-v1.accesswidener")
|
||||
|
||||
runs {
|
||||
testmodClient {
|
||||
client()
|
||||
name = "Testmod Client"
|
||||
vmArg "-Dfabric-api.gametest.structures.output-dir=${file("src/testmod/resources/data/fabric-gametest-api-v1-testmod/gametest/structures")}"
|
||||
|
||||
ideConfigGenerated = false
|
||||
source sourceSets.testmodClient
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
moduleDependencies(project, [
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.fabricmc.fabric.mixin.gametest;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
|
||||
import net.minecraft.server.command.TestCommand;
|
||||
|
||||
@Mixin(TestCommand.class)
|
||||
public class TestCommandMixin {
|
||||
@Unique
|
||||
private static final String OUTPUT_DIR = System.getProperty("fabric-api.gametest.structures.output-dir");
|
||||
|
||||
@ModifyArg(
|
||||
method = "executeExport(Lnet/minecraft/server/command/ServerCommandSource;Ljava/lang/String;)I",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
target = "Ljava/nio/file/Paths;get(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;"
|
||||
)
|
||||
)
|
||||
private static String useCustomOutputDirectory(String first) {
|
||||
if (OUTPUT_DIR != null) {
|
||||
return OUTPUT_DIR;
|
||||
}
|
||||
|
||||
return first;
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@
|
|||
"CommandManagerMixin",
|
||||
"MinecraftServerMixin",
|
||||
"StructureTemplateManagerMixin",
|
||||
"TestCommandMixin",
|
||||
"TestFunctionsMixin",
|
||||
"TestServerMixin"
|
||||
],
|
||||
|
|
Loading…
Reference in a new issue