123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package me.km.snuviscript.commands;
- import me.hammerle.snuviscript.code.ScriptManager;
- import me.km.utils.ReflectionUtils;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.world.GameRules;
- import net.minecraft.world.GameRules.RuleKey;
- import net.minecraft.world.World;
- public class GameRuleCommands {
- private static GameRules.RuleKey<?> ruleKey = null;
- public static void registerFunctions(ScriptManager sm, MinecraftServer server) {
- sm.registerFunction("gamerule.getkey", (sc, in) -> {
- String name = in[0].getString(sc);
- ruleKey = null;
- GameRules.visitAll(new GameRules.IRuleEntryVisitor() {
- @Override
- public <T extends GameRules.RuleValue<T>> void visit(GameRules.RuleKey<T> key,
- GameRules.RuleType<T> type) {
- if(key.getName().equals(name)) {
- ruleKey = key;
- }
- }
- });
- return ruleKey;
- });
- sm.registerFunction("gamerule.getvalue", (sc, in) -> {
- return ((World) in[0].get(sc)).getGameRules().get((RuleKey<?>) in[1].get(sc));
- });
- sm.registerFunction("gamerule.isbool", (sc, in) -> {
- return in[0].get(sc) instanceof GameRules.BooleanValue;
- });
- sm.registerFunction("gamerule.isint", (sc, in) -> {
- return in[0].get(sc) instanceof GameRules.IntegerValue;
- });
- sm.registerFunction("gamerule.getbool", (sc, in) -> {
- return ((GameRules.BooleanValue) in[0].get(sc)).get();
- });
- sm.registerFunction("gamerule.getint", (sc, in) -> {
- return (double) ((GameRules.IntegerValue) in[0].get(sc)).get();
- });
- sm.registerConsumer("gamerule.setbool", (sc, in) -> {
- ((GameRules.BooleanValue) in[0].get(sc)).set(in[1].getBoolean(sc), server);
- });
- sm.registerConsumer("gamerule.setint", (sc, in) -> {
- ReflectionUtils.setIntegerValue((GameRules.IntegerValue) in[0].get(sc),
- in[1].getInt(sc));
- });
- }
- }
|