Merge branch 'master' into inventory

This commit is contained in:
gnembon committed 2019-06-28 23:03:51 -03:00
commit 546134969d
9 files changed
+46 -35

No files matched your search

+1
View File
@@ -4,6 +4,7 @@
build/ build/
out/ out/
classes/ classes/
publish/
# idea # idea
+4 -1
View File
@@ -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
View File
@@ -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)
+1 -1
View File
@@ -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 -1
View File
@@ -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",