mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 00:15:35 +00:00
cleanup fabric commands
This commit is contained in:
parent
0f39d64d72
commit
fac4cb43a8
@ -8,5 +8,6 @@ public final class CommandUtil {
|
||||
public static void registerAll(CommandManager manager) throws MalformedCommandException {
|
||||
manager.register("structure", StructureCommand.class);
|
||||
manager.register("profile", ProfileCommand.class);
|
||||
manager.register("reload", ReloadCommand.class);
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,23 @@
|
||||
package com.dfsek.terra.commands;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.command.CommandTemplate;
|
||||
import com.dfsek.terra.api.command.annotation.Command;
|
||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||
import com.dfsek.terra.api.platform.CommandSender;
|
||||
import com.dfsek.terra.config.lang.LangUtil;
|
||||
|
||||
@Command()
|
||||
public class ReloadCommand implements CommandTemplate {
|
||||
@Inject
|
||||
private TerraPlugin main;
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender) {
|
||||
|
||||
if(!main.reload()) {
|
||||
LangUtil.send("command.reload-error", sender);
|
||||
} else {
|
||||
LangUtil.send("command.reload", sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -126,11 +126,11 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
private final CheckedRegistry<ConfigPack> checkedRegistry = new CheckedRegistry<>(registry);
|
||||
private final AddonRegistry addonRegistry = new AddonRegistry(new FabricAddon(this), this);
|
||||
private final LockedRegistry<TerraAddon> addonLockedRegistry = new LockedRegistry<>(addonRegistry);
|
||||
private final PluginConfig plugin = new PluginConfig();
|
||||
private final PluginConfig config = new PluginConfig();
|
||||
private final Transformer<String, Biome> biomeFixer = new Transformer.Builder<String, Biome>()
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse(id)), new NotNullValidator<>())
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse("minecraft:" + id.toLowerCase())), new NotNullValidator<>()).build();
|
||||
private File config;
|
||||
private File dataFolder;
|
||||
|
||||
public static TerraFabricPlugin getInstance() {
|
||||
return instance;
|
||||
@ -161,12 +161,12 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
@Override
|
||||
public PluginConfig getTerraConfig() {
|
||||
return plugin;
|
||||
return config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getDataFolder() {
|
||||
return config;
|
||||
return dataFolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -191,7 +191,18 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
@Override
|
||||
public boolean reload() {
|
||||
return true;
|
||||
config.load(this);
|
||||
LangUtil.load(config.getLanguage(), this); // Load language.
|
||||
boolean succeed = registry.loadAll(this);
|
||||
Map<Long, TerraWorld> newMap = new HashMap<>();
|
||||
worldMap.forEach((seed, tw) -> {
|
||||
tw.getConfig().getSamplerCache().clear();
|
||||
String packID = tw.getConfig().getTemplate().getID();
|
||||
newMap.put(seed, new TerraWorld(tw.getWorld(), registry.get(packID), this));
|
||||
});
|
||||
worldMap.clear();
|
||||
worldMap.putAll(newMap);
|
||||
return succeed;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -266,10 +277,10 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
public void onInitialize() {
|
||||
instance = this;
|
||||
|
||||
this.config = new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra");
|
||||
this.dataFolder = new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra");
|
||||
saveDefaultConfig();
|
||||
plugin.load(this);
|
||||
LangUtil.load(plugin.getLanguage(), this);
|
||||
config.load(this);
|
||||
LangUtil.load(config.getLanguage(), this);
|
||||
logger.info("Initializing Terra...");
|
||||
|
||||
if(!addonRegistry.loadAll()) {
|
||||
@ -324,36 +335,38 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
RequiredArgumentBuilder<ServerCommandSource, String> arg = RequiredArgumentBuilder.argument("arg0", StringArgumentType.string());
|
||||
for(int i = 0; i < max; i++) {
|
||||
System.out.println("arg " + i);
|
||||
int finalI = i;
|
||||
RequiredArgumentBuilder<ServerCommandSource, String> next = RequiredArgumentBuilder.argument("arg" + i, StringArgumentType.string());
|
||||
|
||||
arg = arg.then(next.suggests((context, builder) -> {
|
||||
List<String> args = parseCommand(context.getInput());
|
||||
System.out.println("Tab completing " + finalI);
|
||||
System.out.println(args);
|
||||
try {
|
||||
manager.tabComplete(args.remove(0), FabricAdapter.adapt(context.getSource()), args).forEach(builder::suggest);
|
||||
} catch(CommandException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return builder.buildFuture();
|
||||
}).executes(context -> {
|
||||
List<String> args = parseCommand(context.getInput());
|
||||
try {
|
||||
manager.execute(args.remove(0), FabricAdapter.adapt(context.getSource()), args);
|
||||
} catch(CommandException e) {
|
||||
e.printStackTrace();
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}));
|
||||
arg = arg.then(assemble(next, manager));
|
||||
}
|
||||
dispatcher.register(argumentBuilder.then(arg));
|
||||
dispatcher.register(argumentBuilder.then(assemble(arg, manager)));
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
private RequiredArgumentBuilder<ServerCommandSource, String> assemble(RequiredArgumentBuilder<ServerCommandSource, String> in, CommandManager manager) {
|
||||
return in.suggests((context, builder) -> {
|
||||
List<String> args = parseCommand(context.getInput());
|
||||
System.out.println(args);
|
||||
try {
|
||||
manager.tabComplete(args.remove(0), FabricAdapter.adapt(context.getSource()), args).forEach(builder::suggest);
|
||||
} catch(CommandException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return builder.buildFuture();
|
||||
}).executes(context -> {
|
||||
List<String> args = parseCommand(context.getInput());
|
||||
try {
|
||||
manager.execute(args.remove(0), FabricAdapter.adapt(context.getSource()), args);
|
||||
} catch(CommandException e) {
|
||||
e.printStackTrace();
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
|
||||
private List<String> parseCommand(String command) {
|
||||
if(command.startsWith("/terra ")) command = command.substring("/terra ".length());
|
||||
else if(command.startsWith("/te ")) command = command.substring("/te ".length());
|
||||
|
Loading…
x
Reference in New Issue
Block a user