/* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package fr.neatmonster.nocheatplus.compat.blocks.init.vanilla.special; import java.util.LinkedList; import java.util.List; import org.bukkit.Material; import fr.neatmonster.nocheatplus.compat.activation.ActivationUtil; import fr.neatmonster.nocheatplus.compat.blocks.AbstractBlockPropertiesPatch; import fr.neatmonster.nocheatplus.config.WorldConfigProvider; import fr.neatmonster.nocheatplus.logging.StaticLog; import fr.neatmonster.nocheatplus.utilities.StringUtil; import fr.neatmonster.nocheatplus.utilities.map.BlockFlags; import fr.neatmonster.nocheatplus.utilities.map.BlockProperties; /** * WATER_LILY for multi client protocol support between 1.7.x - 1.11.x. * * @author asofold * */ public class MultiClientProtocolBlockShapePatch extends AbstractBlockPropertiesPatch { // TODO: Later just dump these into the generic registry (on activation), let BlockProperties fetch. public MultiClientProtocolBlockShapePatch() { activation .neutralDescription("Block shape patch for multi client protocol support around 1.7.x - 1.12.x.") .advertise(true) .setConditionsAND() .notUnitTest() .condition(ActivationUtil.getMultiProtocolSupportPluginActivation()) // TODO: Other/More ? ; } @Override public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { final List done = new LinkedList(); BlockFlags.addFlags(Material.WATER_LILY, BlockProperties.F_GROUND | BlockProperties.F_HEIGHT8_1 | BlockProperties.F_GROUND_HEIGHT); done.add("WATER_LILY"); BlockFlags.addFlags(Material.SOIL, BlockProperties.F_MIN_HEIGHT16_15 | BlockProperties.F_HEIGHT100 | BlockProperties.F_GROUND_HEIGHT); done.add("SOIL"); try { BlockFlags.addFlags(Material.GRASS_PATH, BlockProperties.F_MIN_HEIGHT16_15 | BlockProperties.F_HEIGHT100 | BlockProperties.F_GROUND_HEIGHT); done.add("GRASS_PATH"); } catch (Throwable t) { // TODO: What throws for enum not there. } StaticLog.logInfo("Applied block patches for multi client protocol support: " + StringUtil.join(done, ", ")); } }