settings ported to the annotation based system
This commit is contained in:
1 parent
79495eccd0
commit
734dc95dab
84 files changed
+299
-1238
No files matched your search
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
@@ -19,13 +19,13 @@ public class CameraModeCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> camera = literal("c").
|
||||
requires((player) -> CarpetSettings.getBool("commandCameramode")).
|
||||
requires((player) -> CarpetSettings.commandCameramode).
|
||||
executes((c) -> cameraMode(c.getSource(), c.getSource().getPlayer())).
|
||||
then(argument("player", EntityArgumentType.player()).
|
||||
executes( (c) -> cameraMode(c.getSource(), EntityArgumentType.getPlayer(c, "player"))));
|
||||
|
||||
LiteralArgumentBuilder<ServerCommandSource> survival = literal("s").
|
||||
requires((player) -> CarpetSettings.getBool("commandCameramode")).
|
||||
requires((player) -> CarpetSettings.commandCameramode).
|
||||
executes((c) -> survivalMode(
|
||||
c.getSource(),
|
||||
c.getSource().getPlayer())).
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.CarpetSettings.CarpetSettingEntry;
|
||||
import carpet.CarpetServer;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.settings.ParsedRule;
|
||||
import carpet.settings.SettingsManager;
|
||||
import carpet.utils.Messenger;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.server.command.CommandManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.text.BaseText;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.server.command.CommandManager.argument;
|
||||
@@ -25,46 +26,49 @@ public class CarpetCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("carpet").requires((player) ->
|
||||
player.hasPermissionLevel(2) && !CarpetSettings.locked);
|
||||
player.hasPermissionLevel(2) && !CarpetServer.settingsManager.locked);
|
||||
|
||||
literalargumentbuilder.executes((context)->listAllSettings(context.getSource())).
|
||||
then(literal("list").
|
||||
executes( (c) -> listSettings(c.getSource(),
|
||||
"All CarpetMod Settings",
|
||||
CarpetSettings.findAll(null))).
|
||||
SettingsManager.getRules())).
|
||||
then(literal("defaults").
|
||||
executes( (c)-> listSettings(c.getSource(),
|
||||
"Current CarpetMod Startup Settings from carpet.conf",
|
||||
CarpetSettings.findStartupOverrides(c.getSource().getMinecraftServer())))).
|
||||
CarpetServer.settingsManager.findStartupOverrides()))).
|
||||
then(argument("tag",StringArgumentType.word()).
|
||||
suggests( (c, b)->suggestMatching(CarpetSettings.default_tags, b)).
|
||||
suggests( (c, b)->suggestMatching(SettingsManager.getCategories(), b)).
|
||||
executes( (c) -> listSettings(c.getSource(),
|
||||
String.format("CarpetMod Settings matching \"%s\"", StringArgumentType.getString(c, "tag")),
|
||||
CarpetSettings.findAll(StringArgumentType.getString(c, "tag"))))));
|
||||
CarpetServer.settingsManager.getRulesMatching(StringArgumentType.getString(c, "tag"))))));
|
||||
|
||||
for (CarpetSettingEntry rule: CarpetSettings.getAllCarpetSettings())
|
||||
for (ParsedRule<?> rule: SettingsManager.getRules())
|
||||
{
|
||||
literalargumentbuilder.then(literal(rule.getName()).executes( (context) ->
|
||||
literalargumentbuilder.then(literal(rule.name).executes( (context) ->
|
||||
displayRuleMenu(context.getSource(),rule)));
|
||||
literalargumentbuilder.then(literal("removeDefault").
|
||||
then(literal(rule.getName()).executes((context) ->
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(literal(rule.name).executes((context) ->
|
||||
removeDefault(context.getSource(), rule))));
|
||||
literalargumentbuilder.then(literal(rule.getName()).
|
||||
literalargumentbuilder.then(literal(rule.name).
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(argument("value", StringArgumentType.word()).
|
||||
suggests((c, b)-> suggestMatching(rule.getOptions(),b)).
|
||||
suggests((c, b)-> suggestMatching(rule.options,b)).
|
||||
executes((context) ->
|
||||
setRule(context.getSource(), rule, StringArgumentType.getString(context, "value")))));
|
||||
setRule(context.getSource(), rule, StringArgumentType.getString(context, "value")))));
|
||||
literalargumentbuilder.then(literal("setDefault").
|
||||
then(literal(rule.getName()).
|
||||
then(argument("value", StringArgumentType.word()).
|
||||
suggests((c, b)-> suggestMatching(rule.getOptions(),b)).
|
||||
executes((context) ->
|
||||
setDefault(context.getSource(), rule, StringArgumentType.getString(context, "value"))))));
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(literal(rule.name).
|
||||
then(argument("value", StringArgumentType.word()).
|
||||
suggests((c, b)-> suggestMatching(rule.options,b)).
|
||||
executes((context) ->
|
||||
setDefault(context.getSource(), rule, StringArgumentType.getString(context, "value"))))));
|
||||
}
|
||||
dispatcher.register(literalargumentbuilder);
|
||||
}
|
||||
|
||||
private static int displayRuleMenu(ServerCommandSource source, CarpetSettingEntry rule)
|
||||
private static int displayRuleMenu(ServerCommandSource source, ParsedRule<?> rule)
|
||||
{
|
||||
PlayerEntity player;
|
||||
try
|
||||
@@ -73,19 +77,19 @@ public class CarpetCommand
|
||||
}
|
||||
catch (CommandSyntaxException e)
|
||||
{
|
||||
Messenger.m(source, "w "+rule.getName() +" is set to: ","wb "+rule.getStringValue());
|
||||
Messenger.m(source, "w "+rule.name +" is set to: ","wb "+rule.getAsString());
|
||||
return 1;
|
||||
}
|
||||
|
||||
Messenger.m(player, "");
|
||||
Messenger.m(player, "wb "+rule.getName(),"!/carpet "+rule.getName(),"^g refresh");
|
||||
Messenger.m(player, "w "+rule.getToast());
|
||||
Messenger.m(player, "wb "+rule.name,"!/carpet "+rule.name,"^g refresh");
|
||||
Messenger.m(player, "w "+rule.description);
|
||||
|
||||
Arrays.stream(rule.getInfo()).forEach(s -> Messenger.m(player, "g "+s));
|
||||
rule.extraInfo.forEach(s -> Messenger.m(player, "g "+s));
|
||||
|
||||
List<BaseText> tags = new ArrayList<>();
|
||||
tags.add(Messenger.c("w Tags: "));
|
||||
for (String t: rule.getTags())
|
||||
for (String t: rule.categories)
|
||||
{
|
||||
tags.add(Messenger.c("c ["+t+"]", "^g list all "+t+" settings","!/carpet list "+t));
|
||||
tags.add(Messenger.c("w , "));
|
||||
@@ -93,15 +97,12 @@ public class CarpetCommand
|
||||
tags.remove(tags.size()-1);
|
||||
Messenger.m(player, tags.toArray(new Object[0]));
|
||||
|
||||
Messenger.m(player, "w Current value: ",String.format("%s %s (%s value)",rule.getBoolValue()?"lb":"nb", rule.getStringValue(),rule.isDefault()?"default":"modified"));
|
||||
Messenger.m(player, "w Current value: ",String.format("%s %s (%s value)",rule.getBoolValue()?"lb":"nb", rule.getAsString(),rule.isDefault()?"default":"modified"));
|
||||
List<BaseText> options = new ArrayList<>();
|
||||
options.add(Messenger.c("w Options: ", "y [ "));
|
||||
for (String o: rule.getOptions())
|
||||
for (String o: rule.options)
|
||||
{
|
||||
options.add(Messenger.c(
|
||||
String.format("%s%s %s",(o.equals(rule.getDefault()))?"u":"", (o.equals(rule.getStringValue()))?"bl":"y", o ),
|
||||
"^g switch to "+o,
|
||||
String.format("?/carpet %s %s",rule.getName(),o)));
|
||||
options.add(makeSetRuleButton(rule, o, false));
|
||||
options.add(Messenger.c("w "));
|
||||
}
|
||||
options.remove(options.size()-1);
|
||||
@@ -111,80 +112,85 @@ public class CarpetCommand
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int setRule(ServerCommandSource source, CarpetSettingEntry rule, String newValue)
|
||||
private static int setRule(ServerCommandSource source, ParsedRule<?> rule, String newValue)
|
||||
{
|
||||
CarpetSettings.set(source, rule.getName(), newValue);
|
||||
Messenger.m(source, "w "+rule.toString()+", ", "c [change permanently?]",
|
||||
"^w Click to keep the settings in carpet.conf to save across restarts",
|
||||
"?/carpet setDefault "+rule.getName()+" "+rule.getStringValue());
|
||||
if (rule.set(source, newValue) != null)
|
||||
Messenger.m(source, "w "+rule.toString()+", ", "c [change permanently?]",
|
||||
"^w Click to keep the settings in carpet.conf to save across restarts",
|
||||
"?/carpet setDefault "+rule.name+" "+rule.getAsString());
|
||||
return 1;
|
||||
}
|
||||
private static int setDefault(ServerCommandSource source, CarpetSettingEntry rule, String defaultValue)
|
||||
private static int setDefault(ServerCommandSource source, ParsedRule<?> rule, String defaultValue)
|
||||
{
|
||||
CarpetSettings.setDefaultRule(source, rule.getName(), defaultValue);
|
||||
Messenger.m(source ,"gi rule "+ rule.getName()+" will now default to "+ defaultValue);
|
||||
if (CarpetServer.settingsManager.setDefaultRule(source, rule.name, defaultValue))
|
||||
Messenger.m(source ,"gi rule "+ rule.name+" will now default to "+ defaultValue);
|
||||
return 1;
|
||||
}
|
||||
private static int removeDefault(ServerCommandSource source, CarpetSettingEntry rule)
|
||||
private static int removeDefault(ServerCommandSource source, ParsedRule<?> rule)
|
||||
{
|
||||
CarpetSettings.removeDefaultRule(source, rule.getName());
|
||||
Messenger.m(source ,"gi rule "+ rule.getName()+" defaults to Vanilla");
|
||||
if (CarpetServer.settingsManager.removeDefaultRule(source, rule.name))
|
||||
Messenger.m(source ,"gi rule "+ rule.name+" defaults to Vanilla");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
private static BaseText displayInteractiveSetting(CarpetSettingEntry e)
|
||||
private static BaseText displayInteractiveSetting(ParsedRule<?> rule)
|
||||
{
|
||||
List<Object> args = new ArrayList<>();
|
||||
args.add("w - "+e.getName()+" ");
|
||||
args.add("!/carpet "+e.getName());
|
||||
args.add("^y "+e.getToast());
|
||||
for (String option: e.getOptions())
|
||||
args.add("w - "+rule.name+" ");
|
||||
args.add("!/carpet "+rule.name);
|
||||
args.add("^y "+rule.description);
|
||||
for (String option: rule.options)
|
||||
{
|
||||
String style = e.isDefault()?"g":(option.equalsIgnoreCase(e.getDefault())?"y":"e");
|
||||
if (option.equalsIgnoreCase(e.getDefault()))
|
||||
style = style+"b";
|
||||
else if (option.equalsIgnoreCase(e.getStringValue()))
|
||||
style = style+"u";
|
||||
args.add(style+" ["+option+"]");
|
||||
if (!option.equalsIgnoreCase(e.getStringValue()))
|
||||
{
|
||||
args.add("!/carpet " + e.getName() + " " + option);
|
||||
args.add("^w switch to " + option);
|
||||
}
|
||||
args.add(makeSetRuleButton(rule, option, true));
|
||||
args.add("w ");
|
||||
}
|
||||
args.remove(args.size()-1);
|
||||
return Messenger.c(args.toArray(new Object[0]));
|
||||
}
|
||||
|
||||
private static int listSettings(ServerCommandSource source, String title, CarpetSettingEntry[] settings_list)
|
||||
private static BaseText makeSetRuleButton(ParsedRule<?> rule, String option, boolean brackets) {
|
||||
String style = rule.isDefault()?"g":(option.equalsIgnoreCase(rule.defaultAsString)?"y":"e");
|
||||
if (option.equalsIgnoreCase(rule.defaultAsString))
|
||||
style = style+"b";
|
||||
else if (option.equalsIgnoreCase(rule.getAsString()))
|
||||
style = style+"u";
|
||||
String baseText = style + (brackets ? " [" : " ") + option + (brackets ? "]" : "");
|
||||
if (CarpetServer.settingsManager.locked) {
|
||||
return Messenger.c(baseText, "^g Settings are locked");
|
||||
}
|
||||
if (option.equalsIgnoreCase(rule.getAsString()))
|
||||
return Messenger.c(baseText);
|
||||
return Messenger.c(baseText, "^g Switch to " + option, "?/carpet " + rule.name + " " + option);
|
||||
}
|
||||
|
||||
private static int listSettings(ServerCommandSource source, String title, Collection<ParsedRule<?>> settings_list)
|
||||
{
|
||||
try
|
||||
{
|
||||
PlayerEntity player = source.getPlayer();
|
||||
Messenger.m(player,String.format("wb %s:",title));
|
||||
Arrays.stream(settings_list).forEach(e -> Messenger.m(player,displayInteractiveSetting(e)));
|
||||
settings_list.forEach(e -> Messenger.m(player,displayInteractiveSetting(e)));
|
||||
|
||||
}
|
||||
catch (CommandSyntaxException e)
|
||||
{
|
||||
Messenger.m(source, "w s:"+title);
|
||||
Arrays.stream(settings_list).forEach(r -> Messenger.m(source, "w - "+ r.toString()));
|
||||
settings_list.forEach(r -> Messenger.m(source, "w - "+ r.toString()));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
private static int listAllSettings(ServerCommandSource source)
|
||||
{
|
||||
listSettings(source, "Current CarpetMod Settings", CarpetSettings.find_nondefault(source.getMinecraftServer()));
|
||||
listSettings(source, "Current CarpetMod Settings", CarpetServer.settingsManager.getNonDefault());
|
||||
|
||||
Messenger.m(source, "Carpet Mod version: "+CarpetSettings.carpetVersion);
|
||||
Messenger.m(source, "Carpet Mod version: "+ CarpetSettings.carpetVersion);
|
||||
try
|
||||
{
|
||||
PlayerEntity player = source.getPlayer();
|
||||
List<Object> tags = new ArrayList<>();
|
||||
tags.add("w Browse Categories:\n");
|
||||
for (String t : CarpetSettings.default_tags)
|
||||
for (String t : SettingsManager.getCategories())
|
||||
{
|
||||
tags.add("c [" + t+"]");
|
||||
tags.add("^g list all " + t + " settings");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.helpers.HopperCounter;
|
||||
import carpet.utils.Messenger;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
@@ -17,7 +17,7 @@ public class CounterCommand
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = CommandManager.literal("counter").executes((context)
|
||||
-> listAllCounters(context.getSource(), false)).requires((player) ->
|
||||
CarpetSettings.getBool("hopperCounters"));
|
||||
CarpetSettings.hopperCounters);
|
||||
|
||||
literalargumentbuilder.
|
||||
then((CommandManager.literal("reset").executes( (p_198489_1_)->
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.utils.DistanceCalculator;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
@@ -15,7 +15,7 @@ public class DistanceCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> command = literal("distance").
|
||||
requires((player) -> CarpetSettings.getBool("commandDistance")).
|
||||
requires((player) -> CarpetSettings.commandDistance).
|
||||
then(literal("from").
|
||||
executes( (c) -> DistanceCalculator.setStart(c.getSource(), c.getSource().getPosition())).
|
||||
then(argument("from", Vec3ArgumentType.create()).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.utils.Messenger;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
@@ -29,7 +29,7 @@ public class DrawCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> command = literal("draw").
|
||||
requires((player) -> CarpetSettings.getBool("commandDraw")).
|
||||
requires((player) -> CarpetSettings.commandDraw).
|
||||
then(literal("sphere").
|
||||
then(argument("center",BlockPosArgumentType.create()).
|
||||
then(argument("radius",IntegerArgumentType.integer(1)).
|
||||
@@ -113,6 +113,7 @@ public class DrawCommand
|
||||
}
|
||||
}
|
||||
|
||||
CarpetSettings.impendingFillSkipUpdates = !CarpetSettings.fillUpdates;
|
||||
for (int xmod = -1; xmod < 2; xmod+= 2)
|
||||
{
|
||||
for (int ymod = -1; ymod < 2; ymod += 2)
|
||||
@@ -129,11 +130,7 @@ public class DrawCommand
|
||||
((Inventory)tileentity).clear();
|
||||
}
|
||||
|
||||
if (block.setBlockState(
|
||||
world,
|
||||
mbpos,
|
||||
2 | (CarpetSettings.getBool("fillUpdates") ?0:1024)
|
||||
))
|
||||
if (block.setBlockState(world, mbpos,2))
|
||||
{
|
||||
list.add(mbpos.toImmutable());
|
||||
++affected;
|
||||
@@ -142,10 +139,11 @@ public class DrawCommand
|
||||
}
|
||||
}
|
||||
}
|
||||
CarpetSettings.impendingFillSkipUpdates = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CarpetSettings.getBool("fillUpdates"))
|
||||
if (CarpetSettings.fillUpdates)
|
||||
{
|
||||
|
||||
for (BlockPos blockpos1 : list)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.utils.BlockInfo;
|
||||
import carpet.utils.EntityInfo;
|
||||
import carpet.utils.Messenger;
|
||||
@@ -29,7 +29,7 @@ public class InfoCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> command = literal("info").
|
||||
requires((player) -> CarpetSettings.getBool("commandInfo")).
|
||||
requires((player) -> CarpetSettings.commandInfo).
|
||||
then(literal("block").
|
||||
then(argument("block position", BlockPosArgumentType.create()).
|
||||
executes( (c) -> infoBlock(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.logging.Logger;
|
||||
import carpet.logging.LoggerRegistry;
|
||||
import carpet.utils.Messenger;
|
||||
@@ -26,7 +26,7 @@ public class LogCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = CommandManager.literal("log").
|
||||
requires((player) -> CarpetSettings.getBool("commandLog")).
|
||||
requires((player) -> CarpetSettings.commandLog).
|
||||
executes((context) -> listLogs(context.getSource())).
|
||||
then(CommandManager.literal("clear").
|
||||
executes( (c) -> unsubFromAll(c.getSource(), c.getSource().getName())).
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetServer;
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.ParsedRule;
|
||||
import carpet.settings.SettingsManager;
|
||||
import carpet.utils.Messenger;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.text.BaseText;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.server.command.CommandManager.argument;
|
||||
import static net.minecraft.server.command.CommandManager.literal;
|
||||
import static net.minecraft.server.command.CommandSource.suggestMatching;
|
||||
|
||||
public class ParcetCommand
|
||||
{
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("parcet").requires((player) ->
|
||||
player.hasPermissionLevel(2) && !CarpetServer.settingsManager.locked);
|
||||
|
||||
literalargumentbuilder.executes((context)->listAllSettings(context.getSource())).
|
||||
then(literal("list").
|
||||
executes( (c) -> listSettings(c.getSource(),
|
||||
"All CarpetMod Settings",
|
||||
SettingsManager.getRules())).
|
||||
then(literal("defaults").
|
||||
executes( (c)-> listSettings(c.getSource(),
|
||||
"Current CarpetMod Startup Settings from carpet.conf",
|
||||
CarpetServer.settingsManager.findStartupOverrides()))).
|
||||
then(argument("tag",StringArgumentType.word()).
|
||||
suggests( (c, b)->suggestMatching(SettingsManager.getCategories(), b)).
|
||||
executes( (c) -> listSettings(c.getSource(),
|
||||
String.format("CarpetMod Settings matching \"%s\"", StringArgumentType.getString(c, "tag")),
|
||||
CarpetServer.settingsManager.getRulesMatching(StringArgumentType.getString(c, "tag"))))));
|
||||
|
||||
for (ParsedRule<?> rule: SettingsManager.getRules())
|
||||
{
|
||||
literalargumentbuilder.then(literal(rule.name).executes( (context) ->
|
||||
displayRuleMenu(context.getSource(),rule)));
|
||||
literalargumentbuilder.then(literal("removeDefault").
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(literal(rule.name).executes((context) ->
|
||||
removeDefault(context.getSource(), rule))));
|
||||
literalargumentbuilder.then(literal(rule.name).
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(argument("value", StringArgumentType.word()).
|
||||
suggests((c, b)-> suggestMatching(rule.options,b)).
|
||||
executes((context) ->
|
||||
setRule(context.getSource(), rule, StringArgumentType.getString(context, "value")))));
|
||||
literalargumentbuilder.then(literal("setDefault").
|
||||
requires(s -> !CarpetServer.settingsManager.locked).
|
||||
then(literal(rule.name).
|
||||
then(argument("value", StringArgumentType.word()).
|
||||
suggests((c, b)-> suggestMatching(rule.options,b)).
|
||||
executes((context) ->
|
||||
setDefault(context.getSource(), rule, StringArgumentType.getString(context, "value"))))));
|
||||
}
|
||||
dispatcher.register(literalargumentbuilder);
|
||||
}
|
||||
|
||||
private static int displayRuleMenu(ServerCommandSource source, ParsedRule<?> rule)
|
||||
{
|
||||
PlayerEntity player;
|
||||
try
|
||||
{
|
||||
player = source.getPlayer();
|
||||
}
|
||||
catch (CommandSyntaxException e)
|
||||
{
|
||||
Messenger.m(source, "w "+rule.name +" is set to: ","wb "+rule.getAsString());
|
||||
return 1;
|
||||
}
|
||||
|
||||
Messenger.m(player, "");
|
||||
Messenger.m(player, "wb "+rule.name,"!/carpet "+rule.name,"^g refresh");
|
||||
Messenger.m(player, "w "+rule.description);
|
||||
|
||||
rule.extraInfo.forEach(s -> Messenger.m(player, "g "+s));
|
||||
|
||||
List<BaseText> tags = new ArrayList<>();
|
||||
tags.add(Messenger.c("w Tags: "));
|
||||
for (String t: SettingsManager.getCategories())
|
||||
{
|
||||
tags.add(Messenger.c("c ["+t+"]", "^g list all "+t+" settings","!/carpet list "+t));
|
||||
tags.add(Messenger.c("w , "));
|
||||
}
|
||||
tags.remove(tags.size()-1);
|
||||
Messenger.m(player, tags.toArray(new Object[0]));
|
||||
|
||||
Messenger.m(player, "w Current value: ",String.format("%s %s (%s value)",rule.getBoolValue()?"lb":"nb", rule.getAsString(),rule.isDefault()?"default":"modified"));
|
||||
List<BaseText> options = new ArrayList<>();
|
||||
options.add(Messenger.c("w Options: ", "y [ "));
|
||||
for (String o: rule.options)
|
||||
{
|
||||
options.add(makeSetRuleButton(rule, o, false));
|
||||
options.add(Messenger.c("w "));
|
||||
}
|
||||
options.remove(options.size()-1);
|
||||
options.add(Messenger.c("y ]"));
|
||||
Messenger.m(player, options.toArray(new Object[0]));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int setRule(ServerCommandSource source, ParsedRule<?> rule, String newValue)
|
||||
{
|
||||
if (rule.set(source, newValue) != null)
|
||||
Messenger.m(source, "w "+rule.toString()+", ", "c [change permanently?]",
|
||||
"^w Click to keep the settings in carpet.conf to save across restarts",
|
||||
"?/carpet setDefault "+rule.name+" "+rule.getAsString());
|
||||
return 1;
|
||||
}
|
||||
private static int setDefault(ServerCommandSource source, ParsedRule<?> rule, String defaultValue)
|
||||
{
|
||||
CarpetServer.settingsManager.setDefaultRule(source, rule.name, defaultValue);
|
||||
Messenger.m(source ,"gi rule "+ rule.name+" will now default to "+ defaultValue);
|
||||
return 1;
|
||||
}
|
||||
private static int removeDefault(ServerCommandSource source, ParsedRule<?> rule)
|
||||
{
|
||||
CarpetServer.settingsManager.removeDefaultRule(source, rule.name);
|
||||
Messenger.m(source ,"gi rule "+ rule.name+" defaults to Vanilla");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
private static BaseText displayInteractiveSetting(ParsedRule<?> rule)
|
||||
{
|
||||
List<Object> args = new ArrayList<>();
|
||||
args.add("w - "+rule.name+" ");
|
||||
args.add("!/carpet "+rule.name);
|
||||
args.add("^y "+rule.description);
|
||||
for (String option: rule.options)
|
||||
{
|
||||
args.add(makeSetRuleButton(rule, option, true));
|
||||
args.add("w ");
|
||||
}
|
||||
args.remove(args.size()-1);
|
||||
return Messenger.c(args.toArray(new Object[0]));
|
||||
}
|
||||
|
||||
private static BaseText makeSetRuleButton(ParsedRule<?> rule, String option, boolean brackets) {
|
||||
String color = "";
|
||||
if (option.equals(rule.defaultAsString) && !brackets) color += "u";
|
||||
color += option.equals(rule.getAsString()) ? "bl" : "y";
|
||||
String baseText = color + (brackets ? " [" : " ") + option + (brackets ? "]" : "");
|
||||
if (CarpetServer.settingsManager.locked) {
|
||||
return Messenger.c(baseText, "^g Settings are locked");
|
||||
}
|
||||
return Messenger.c(baseText, "^g Switch to " + option, "?/carpet " + rule.name + " " + option);
|
||||
}
|
||||
|
||||
private static int listSettings(ServerCommandSource source, String title, Collection<ParsedRule<?>> settings_list)
|
||||
{
|
||||
try
|
||||
{
|
||||
PlayerEntity player = source.getPlayer();
|
||||
Messenger.m(player,String.format("wb %s:",title));
|
||||
settings_list.forEach(e -> Messenger.m(player,displayInteractiveSetting(e)));
|
||||
|
||||
}
|
||||
catch (CommandSyntaxException e)
|
||||
{
|
||||
Messenger.m(source, "w s:"+title);
|
||||
settings_list.forEach(r -> Messenger.m(source, "w - "+ r.toString()));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
private static int listAllSettings(ServerCommandSource source)
|
||||
{
|
||||
listSettings(source, "Current CarpetMod Settings", CarpetServer.settingsManager.getNonDefault());
|
||||
|
||||
Messenger.m(source, "Carpet Mod version: "+ CarpetSettings.carpetVersion);
|
||||
try
|
||||
{
|
||||
PlayerEntity player = source.getPlayer();
|
||||
List<Object> tags = new ArrayList<>();
|
||||
tags.add("w Browse Categories:\n");
|
||||
for (String t : SettingsManager.getCategories())
|
||||
{
|
||||
tags.add("c [" + t+"]");
|
||||
tags.add("^g list all " + t + " settings");
|
||||
tags.add("!/carpet list " + t);
|
||||
tags.add("w ");
|
||||
}
|
||||
tags.remove(tags.size() - 1);
|
||||
Messenger.m(player, tags.toArray(new Object[0]));
|
||||
}
|
||||
catch (CommandSyntaxException e)
|
||||
{
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.utils.Messenger;
|
||||
import carpet.utils.PerimeterDiagnostics;
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
@@ -22,7 +22,7 @@ public class PerimeterInfoCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> command = literal("perimeterinfo").
|
||||
requires((player) -> CarpetSettings.getBool("commandPerimeterInfo")).
|
||||
requires((player) -> CarpetSettings.commandPerimeterInfo).
|
||||
executes( (c) -> perimeterDiagnose(
|
||||
c.getSource(),
|
||||
new BlockPos(c.getSource().getPosition()),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.fakes.ServerPlayerEntityInterface;
|
||||
import carpet.patches.EntityPlayerMPFake;
|
||||
import carpet.utils.Messenger;
|
||||
@@ -38,7 +38,7 @@ public class PlayerCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("player").
|
||||
requires((player) -> CarpetSettings.getBool("commandPlayer")).
|
||||
requires((player) -> CarpetSettings.commandPlayer).
|
||||
then(argument("player", word()).
|
||||
suggests( (c, b) -> suggestMatching(getPlayers(c.getSource()), b)).
|
||||
then(literal("stop").
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetServer;
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.script.CarpetEventServer;
|
||||
import carpet.script.CarpetExpression;
|
||||
import carpet.script.Expression;
|
||||
@@ -26,8 +26,6 @@ import net.minecraft.util.Clearable;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.util.math.MutableIntBoundingBox;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -228,10 +226,10 @@ public class ScriptCommand
|
||||
|
||||
|
||||
dispatcher.register(literal("script").
|
||||
requires((player) -> CarpetSettings.getBool("commandScript")).
|
||||
requires((player) -> CarpetSettings.commandScript).
|
||||
then(b).then(u).then(o).then(l).then(s).then(c).then(h).then(i).then(e).then(t).then(a).then(f).then(q));
|
||||
dispatcher.register(literal("script").
|
||||
requires((player) -> CarpetSettings.getBool("commandScript")).
|
||||
requires((player) -> CarpetSettings.commandScript).
|
||||
then(literal("in").
|
||||
then(argument("package", StringArgumentType.word()).
|
||||
suggests( (cc, bb) -> suggestMatching(CarpetServer.scriptServer.modules.keySet(), bb)).
|
||||
@@ -379,12 +377,13 @@ public class ScriptCommand
|
||||
MutableIntBoundingBox area = new MutableIntBoundingBox(a, b);
|
||||
CarpetExpression cexpr = new CarpetExpression(expr, source, origin);
|
||||
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
||||
if (int_1 > CarpetSettings.getInt("fillLimit"))
|
||||
if (int_1 > CarpetSettings.fillLimit)
|
||||
{
|
||||
Messenger.m(source, "r too many blocks to evaluate: " + int_1);
|
||||
return 1;
|
||||
}
|
||||
int successCount = 0;
|
||||
CarpetSettings.impendingFillSkipUpdates = !CarpetSettings.fillUpdates;
|
||||
try
|
||||
{
|
||||
for (int x = area.minX; x <= area.maxX; x++)
|
||||
@@ -409,6 +408,10 @@ public class ScriptCommand
|
||||
Messenger.m(source, "r Error while processing command: "+exc);
|
||||
return 0;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CarpetSettings.impendingFillSkipUpdates = false;
|
||||
}
|
||||
Messenger.m(source, "w Expression successful in " + successCount + " out of " + int_1 + " blocks");
|
||||
return successCount;
|
||||
|
||||
@@ -423,7 +426,7 @@ public class ScriptCommand
|
||||
MutableIntBoundingBox area = new MutableIntBoundingBox(a, b);
|
||||
CarpetExpression cexpr = new CarpetExpression(expr, source, origin);
|
||||
int int_1 = area.getBlockCountX() * area.getBlockCountY() * area.getBlockCountZ();
|
||||
if (int_1 > CarpetSettings.getInt("fillLimit"))
|
||||
if (int_1 > CarpetSettings.fillLimit)
|
||||
{
|
||||
Messenger.m(source, "r too many blocks to evaluate: "+ int_1);
|
||||
return 1;
|
||||
@@ -434,7 +437,6 @@ public class ScriptCommand
|
||||
BlockPos.Mutable mbpos = new BlockPos.Mutable(origin);
|
||||
ServerWorld world = source.getWorld();
|
||||
|
||||
|
||||
for (int x = area.minX; x <= area.maxX; x++)
|
||||
{
|
||||
for (int y = area.minY; y <= area.maxY; y++)
|
||||
@@ -490,6 +492,8 @@ public class ScriptCommand
|
||||
volume = newVolume;
|
||||
}
|
||||
int affected = 0;
|
||||
|
||||
CarpetSettings.impendingFillSkipUpdates = !CarpetSettings.fillUpdates;
|
||||
for (int x = 0; x <= maxx; x++)
|
||||
{
|
||||
for (int y = 0; y <= maxy; y++)
|
||||
@@ -505,11 +509,7 @@ public class ScriptCommand
|
||||
BlockEntity tileentity = world.getBlockEntity(mbpos);
|
||||
Clearable.clear(tileentity);
|
||||
|
||||
if (block.setBlockState(
|
||||
world,
|
||||
mbpos,
|
||||
2 | (CarpetSettings.getBool("fillUpdates") ?0:1024)
|
||||
))
|
||||
if (block.setBlockState(world, mbpos,2))
|
||||
{
|
||||
++affected;
|
||||
}
|
||||
@@ -518,7 +518,9 @@ public class ScriptCommand
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CarpetSettings.getBool("fillUpdates") && block != null)
|
||||
CarpetSettings.impendingFillSkipUpdates = false;
|
||||
|
||||
if (CarpetSettings.fillUpdates && block != null)
|
||||
{
|
||||
for (int x = 0; x <= maxx; x++)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.helpers.HopperCounter;
|
||||
import carpet.helpers.TickSpeed;
|
||||
import carpet.utils.Messenger;
|
||||
@@ -37,7 +37,7 @@ public class SpawnCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("spawn").
|
||||
requires((player) -> CarpetSettings.getBool("commandSpawn"));
|
||||
requires((player) -> CarpetSettings.commandSpawn);
|
||||
|
||||
literalargumentbuilder.
|
||||
then(literal("list").
|
||||
|
||||
@@ -23,7 +23,7 @@ public class TestCommand
|
||||
|
||||
private static int test(CommandContext<ServerCommandSource> c, String term)
|
||||
{
|
||||
Messenger.m(c.getSource(),"w term is: ",term.substring(0,1)+"b "+term);
|
||||
Messenger.m(c.getSource(),term.substring(0,1)+" "+term+": how did you get here?");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package carpet.commands;
|
||||
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.helpers.TickSpeed;
|
||||
import carpet.utils.CarpetProfiler;
|
||||
import carpet.utils.Messenger;
|
||||
@@ -26,7 +26,7 @@ public class TickCommand
|
||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||
{
|
||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("tick").
|
||||
requires((player) -> CarpetSettings.getBool("commandTick")).
|
||||
requires((player) -> CarpetSettings.commandTick).
|
||||
then(literal("rate").
|
||||
executes((c) -> queryTps(c.getSource())).
|
||||
then(argument("rate", floatArg(0.1F, 500.0F)).
|
||||
|
||||
Reference in new issue
Block a user