diff --git a/MCGalaxy/Levels/LevelEnv.cs b/MCGalaxy/Levels/LevelEnv.cs index 8c9108474..0b8d5bb49 100644 --- a/MCGalaxy/Levels/LevelEnv.cs +++ b/MCGalaxy/Levels/LevelEnv.cs @@ -136,14 +136,17 @@ namespace MCGalaxy { } } - internal static void UpdateAppearance(Predicate selector, EnvProp prop, int value) { + internal static void UpdateAppearance(Predicate selector, EnvProp prop, int origValue) { Player[] players = PlayerInfo.Online.Items; - if (prop == EnvProp.SidesBlock || prop == EnvProp.EdgeBlock) { - value = (byte)value; - } - foreach (Player pl in players) { if (!selector(pl)) continue; + int value = origValue; + + if (prop == EnvProp.SidesBlock || prop == EnvProp.EdgeBlock) { + BlockID raw = Block.ToRaw((BlockID)value); + if (raw > pl.MaxRawBlock) raw = pl.level.RawFallback((BlockID)value); + value = raw; + } if (pl.Supports(CpeExt.EnvMapAspect)) { pl.Send(Packet.EnvMapProperty(prop, value));