Fix setting game rules via the API

This commit is contained in:
md_5 2019-06-21 20:35:22 +10:00
parent fe3930ce00
commit 38fa220f69
2 changed files with 70 additions and 2 deletions

View file

@ -0,0 +1,64 @@
--- a/net/minecraft/server/GameRules.java
+++ b/net/minecraft/server/GameRules.java
@@ -78,7 +78,7 @@
}
public <T extends GameRules.GameRuleValue<T>> T get(GameRules.GameRuleKey<T> gamerules_gamerulekey) {
- return (GameRules.GameRuleValue) this.A.get(gamerules_gamerulekey);
+ return (T) this.A.get(gamerules_gamerulekey); // CraftBukkit - decompile error
}
public NBTTagCompound a() {
@@ -103,7 +103,7 @@
}
private static <T extends GameRules.GameRuleValue<T>> void a(GameRules.GameRuleVisitor gamerules_gamerulevisitor, GameRules.GameRuleKey<?> gamerules_gamerulekey, GameRules.GameRuleDefinition<?> gamerules_gameruledefinition) {
- gamerules_gamerulevisitor.a(gamerules_gamerulekey, gamerules_gameruledefinition);
+ gamerules_gamerulevisitor.a((GameRules.GameRuleKey<T>) gamerules_gamerulekey, (GameRules.GameRuleDefinition<T>) gamerules_gameruledefinition); // CraftBukkit - decompile error
}
public boolean getBoolean(GameRules.GameRuleKey<GameRules.GameRuleBoolean> gamerules_gamerulekey) {
@@ -154,7 +154,7 @@
}
@Override
- protected void setValue(String s) {
+ public void setValue(String s) { // PAIL - private->public
this.a = Boolean.parseBoolean(s);
}
@@ -204,7 +204,7 @@
}
@Override
- protected void setValue(String s) {
+ public void setValue(String s) { // PAIL - private->public
this.a = b(s);
}
@@ -246,14 +246,14 @@
this.a(((CommandListenerWrapper) commandcontext.getSource()).getServer());
}
- protected void a(@Nullable MinecraftServer minecraftserver) {
+ public void a(@Nullable MinecraftServer minecraftserver) { // PAIL - private->public
if (minecraftserver != null) {
this.a.c.accept(minecraftserver, this.e());
}
}
- protected abstract void setValue(String s);
+ public abstract void setValue(String s); // PAIL - private->public
protected abstract String getValue();
@@ -283,7 +283,7 @@
}
public T a() {
- return (GameRules.GameRuleValue) this.b.apply(this);
+ return this.b.apply(this); // CraftBukkit - decompile error
}
}

View file

@ -1904,7 +1904,9 @@ public class CraftWorld implements World {
if (!isGameRule(rule)) return false;
getHandle().getGameRules().get(getGameRulesNMS().get(rule)).b(null, value);
GameRules.GameRuleValue<?> handle = getHandle().getGameRules().get(getGameRulesNMS().get(rule));
handle.setValue(value);
handle.a(getHandle().getMinecraftServer());
return true;
}
@ -1938,7 +1940,9 @@ public class CraftWorld implements World {
if (!isGameRule(rule.getName())) return false;
getHandle().getGameRules().get(getGameRulesNMS().get(rule.getName())).b(null, newValue.toString());
GameRules.GameRuleValue<?> handle = getHandle().getGameRules().get(getGameRulesNMS().get(rule.getName()));
handle.setValue(newValue.toString());
handle.a(getHandle().getMinecraftServer());
return true;
}