Merge branch 'master' into inventory
This commit is contained in:
commit
546134969d
9 files changed
+46
-35
No files matched your search
@@ -4,6 +4,7 @@
|
|||||||
build/
|
build/
|
||||||
out/
|
out/
|
||||||
classes/
|
classes/
|
||||||
|
publish/
|
||||||
|
|
||||||
# idea
|
# idea
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -7,7 +7,7 @@ sourceCompatibility = JavaVersion.VERSION_1_8
|
|||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
|
|
||||||
archivesBaseName = project.archives_base_name
|
archivesBaseName = project.archives_base_name
|
||||||
version = project.mod_version
|
version = project.minecraft_version+'-'+project.mod_version
|
||||||
group = project.maven_group
|
group = project.maven_group
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
@@ -76,5 +76,8 @@ publishing {
|
|||||||
repositories {
|
repositories {
|
||||||
// uncomment to publish to the local maven
|
// uncomment to publish to the local maven
|
||||||
// mavenLocal()
|
// mavenLocal()
|
||||||
|
maven {
|
||||||
|
url "$projectDir/publish"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -9,7 +9,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
loader_version=0.4.8+build.155
|
loader_version=0.4.8+build.155
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 0.1a
|
mod_version = 1.0.0+v190627
|
||||||
maven_group = carpet
|
maven_group = carpet
|
||||||
archives_base_name = fabric-carpet
|
archives_base_name = fabric-carpet
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import carpet.utils.Messenger;
|
|||||||
import com.mojang.brigadier.CommandDispatcher;
|
import com.mojang.brigadier.CommandDispatcher;
|
||||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||||
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||||
|
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
|
||||||
import net.minecraft.server.command.ServerCommandSource;
|
import net.minecraft.server.command.ServerCommandSource;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.text.BaseText;
|
import net.minecraft.text.BaseText;
|
||||||
@@ -23,6 +25,14 @@ import static net.minecraft.server.command.CommandSource.suggestMatching;
|
|||||||
|
|
||||||
public class CarpetCommand
|
public class CarpetCommand
|
||||||
{
|
{
|
||||||
|
private static ParsedRule<?> getRule(CommandContext<ServerCommandSource> ctx) throws CommandSyntaxException
|
||||||
|
{
|
||||||
|
String ruleName = StringArgumentType.getString(ctx, "rule");
|
||||||
|
ParsedRule<?> rule = SettingsManager.getRule(ruleName);
|
||||||
|
if (rule == null)
|
||||||
|
throw new SimpleCommandExceptionType(Messenger.c("rb Unknown rule: "+ruleName)).create();
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
public static void register(CommandDispatcher<ServerCommandSource> dispatcher)
|
||||||
{
|
{
|
||||||
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("carpet").requires((player) ->
|
LiteralArgumentBuilder<ServerCommandSource> literalargumentbuilder = literal("carpet").requires((player) ->
|
||||||
@@ -41,30 +51,27 @@ public class CarpetCommand
|
|||||||
suggests( (c, b)->suggestMatching(SettingsManager.getCategories(), b)).
|
suggests( (c, b)->suggestMatching(SettingsManager.getCategories(), b)).
|
||||||
executes( (c) -> listSettings(c.getSource(),
|
executes( (c) -> listSettings(c.getSource(),
|
||||||
String.format("CarpetMod Settings matching \"%s\"", StringArgumentType.getString(c, "tag")),
|
String.format("CarpetMod Settings matching \"%s\"", StringArgumentType.getString(c, "tag")),
|
||||||
CarpetServer.settingsManager.getRulesMatching(StringArgumentType.getString(c, "tag"))))));
|
CarpetServer.settingsManager.getRulesMatching(StringArgumentType.getString(c, "tag")))))).
|
||||||
|
then(literal("removeDefault").
|
||||||
|
requires(s -> !CarpetServer.settingsManager.locked).
|
||||||
|
then(argument("rule", StringArgumentType.word()).
|
||||||
|
suggests( (c, b) -> suggestMatching(SettingsManager.getRules().stream().map(r -> r.name), b)).
|
||||||
|
executes((c) -> removeDefault(c.getSource(), getRule(c))))).
|
||||||
|
then(literal("setDefault").
|
||||||
|
requires(s -> !CarpetServer.settingsManager.locked).
|
||||||
|
then(argument("rule", StringArgumentType.word()).
|
||||||
|
suggests( (c, b) -> suggestMatching(SettingsManager.getRules().stream().map(r -> r.name), b)).
|
||||||
|
then(argument("value", StringArgumentType.word()).
|
||||||
|
suggests((c, b)-> suggestMatching(getRule(c).options, b)).
|
||||||
|
executes((c) -> setDefault(c.getSource(), getRule(c), StringArgumentType.getString(c, "value")))))).
|
||||||
|
then(argument("rule", StringArgumentType.word()).
|
||||||
|
suggests( (c, b) -> suggestMatching(SettingsManager.getRules().stream().map(r -> r.name), b)).
|
||||||
|
requires(s -> !CarpetServer.settingsManager.locked ).
|
||||||
|
executes( (c) -> displayRuleMenu(c.getSource(),getRule(c))).
|
||||||
|
then(argument("value", StringArgumentType.word()).
|
||||||
|
suggests((c, b)-> suggestMatching(getRule(c).options,b)).
|
||||||
|
executes((c) -> setRule(c.getSource(), getRule(c), StringArgumentType.getString(c, "value")))));
|
||||||
|
|
||||||
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);
|
dispatcher.register(literalargumentbuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import static carpet.settings.RuleCategory.SURVIVAL;
|
|||||||
|
|
||||||
public class CarpetSettings
|
public class CarpetSettings
|
||||||
{
|
{
|
||||||
public static final String carpetVersion = "v19_06_24alpha";
|
public static final String carpetVersion = "v190627";
|
||||||
public static final Logger LOG = LogManager.getLogger();
|
public static final Logger LOG = LogManager.getLogger();
|
||||||
public static boolean skipGenerationChecks = false;
|
public static boolean skipGenerationChecks = false;
|
||||||
public static boolean impendingFillSkipUpdates = false;
|
public static boolean impendingFillSkipUpdates = false;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public final class ParsedRule<T> implements Comparable<ParsedRule> {
|
|||||||
if (!value.equals(get()))
|
if (!value.equals(get()))
|
||||||
{
|
{
|
||||||
this.field.set(null, value);
|
this.field.set(null, value);
|
||||||
SettingsManager.notifyRuleChanged(this, stringValue);
|
SettingsManager.notifyRuleChanged(source, this, stringValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IllegalAccessException e)
|
catch (IllegalAccessException e)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import java.lang.annotation.Target;
|
|||||||
*/
|
*/
|
||||||
@Target(ElementType.FIELD)
|
@Target(ElementType.FIELD)
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@interface Rule
|
public @interface Rule
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The rule name, by default the same as the field name
|
* The rule name, by default the same as the field name
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.server.network.ServerPlayerEntity;
|
|||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.apache.logging.log4j.util.TriConsumer;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -25,7 +26,6 @@ import java.util.Locale;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.function.BiConsumer;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class SettingsManager
|
public class SettingsManager
|
||||||
@@ -34,7 +34,7 @@ public class SettingsManager
|
|||||||
private static Map<String, ParsedRule<?>> rules = new HashMap<>();
|
private static Map<String, ParsedRule<?>> rules = new HashMap<>();
|
||||||
public boolean locked;
|
public boolean locked;
|
||||||
private MinecraftServer server;
|
private MinecraftServer server;
|
||||||
private static List<BiConsumer<ParsedRule<?>, String>> observers = new ArrayList<>();
|
private static List<TriConsumer<ServerCommandSource, ParsedRule<?>, String>> observers = new ArrayList<>();
|
||||||
|
|
||||||
public SettingsManager(MinecraftServer server)
|
public SettingsManager(MinecraftServer server)
|
||||||
{
|
{
|
||||||
@@ -53,14 +53,14 @@ public class SettingsManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addRuleObserver(BiConsumer<ParsedRule<?>, String> observer)
|
public static void addRuleObserver(TriConsumer<ServerCommandSource, ParsedRule<?>, String> observer)
|
||||||
{
|
{
|
||||||
observers.add(observer);
|
observers.add(observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void notifyRuleChanged(ParsedRule<?> rule, String userTypedValue)
|
static void notifyRuleChanged(ServerCommandSource source, ParsedRule<?> rule, String userTypedValue)
|
||||||
{
|
{
|
||||||
observers.forEach(observer -> observer.accept(rule, userTypedValue));
|
observers.forEach(observer -> observer.accept(source, rule, userTypedValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Iterable<String> getCategories()
|
public static Iterable<String> getCategories()
|
||||||
@@ -71,7 +71,7 @@ public class SettingsManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ParsedRule getRule(String name)
|
public static ParsedRule<?> getRule(String name)
|
||||||
{
|
{
|
||||||
return rules.get(name);
|
return rules.get(name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"id": "carpet",
|
"id": "carpet",
|
||||||
"version": "0.1",
|
"version": "${version}",
|
||||||
|
|
||||||
"name": "Carpet Mod in Fabric",
|
"name": "Carpet Mod in Fabric",
|
||||||
"description": "Carpet made out of fabric",
|
"description": "Carpet made out of fabric",
|
||||||
|
|||||||
Reference in new issue
Block a user