diff --git a/MCGalaxy/Commands/building/CmdHollow.cs b/MCGalaxy/Commands/building/CmdHollow.cs index 52b164dd7..bf9dd069a 100644 --- a/MCGalaxy/Commands/building/CmdHollow.cs +++ b/MCGalaxy/Commands/building/CmdHollow.cs @@ -42,7 +42,8 @@ namespace MCGalaxy.Commands.Building { bool DoHollow(Player p, Vec3S32[] marks, object state, ExtBlock block) { HollowDrawOp op = new HollowDrawOp(); op.Skip = (byte)state; - return DrawOpPerformer.Do(op, null, p, marks); + DrawOpPerformer.Do(op, null, p, marks); + return true; } public override void Help(Player p) { diff --git a/MCGalaxy/Commands/building/CmdMaze.cs b/MCGalaxy/Commands/building/CmdMaze.cs index c441534df..46837aa2f 100644 --- a/MCGalaxy/Commands/building/CmdMaze.cs +++ b/MCGalaxy/Commands/building/CmdMaze.cs @@ -39,7 +39,8 @@ namespace MCGalaxy.Commands.Building { bool DoMaze(Player p, Vec3S32[] marks, object state, ExtBlock block) { MazeDrawOp op = new MazeDrawOp(); op.randomizer = (int)state; - return DrawOpPerformer.Do(op, null, p, marks); + DrawOpPerformer.Do(op, null, p, marks); + return true; } public override void Help(Player p) { diff --git a/MCGalaxy/Commands/building/CmdOutline.cs b/MCGalaxy/Commands/building/CmdOutline.cs index 680fb246f..c395a419c 100644 --- a/MCGalaxy/Commands/building/CmdOutline.cs +++ b/MCGalaxy/Commands/building/CmdOutline.cs @@ -55,7 +55,8 @@ namespace MCGalaxy.Commands.Building { Brush brush = factory.Construct(bArgs); if (brush == null) return false; - return DrawOpPerformer.Do(op, brush, p, marks); + DrawOpPerformer.Do(op, brush, p, marks); + return true; } struct DrawArgs { public ExtBlock target; public string brushArgs; } diff --git a/MCGalaxy/Commands/building/CmdPaste.cs b/MCGalaxy/Commands/building/CmdPaste.cs index d690dfe22..993f54fb1 100644 --- a/MCGalaxy/Commands/building/CmdPaste.cs +++ b/MCGalaxy/Commands/building/CmdPaste.cs @@ -50,7 +50,8 @@ namespace MCGalaxy.Commands.Building { PasteDrawOp op = new PasteDrawOp(); op.CopyState = p.CopyBuffer; - return DrawOpPerformer.Do(op, (Brush)state, p, m); + DrawOpPerformer.Do(op, (Brush)state, p, m); + return true; } public override void Help(Player p) { diff --git a/MCGalaxy/Commands/building/CmdRainbow.cs b/MCGalaxy/Commands/building/CmdRainbow.cs index b14a71d91..83c172de5 100644 --- a/MCGalaxy/Commands/building/CmdRainbow.cs +++ b/MCGalaxy/Commands/building/CmdRainbow.cs @@ -33,7 +33,8 @@ namespace MCGalaxy.Commands.Building { } bool DoRainbow(Player p, Vec3S32[] marks, object state, ExtBlock block) { - return DrawOpPerformer.Do(new RainbowDrawOp(), null, p, marks); + DrawOpPerformer.Do(new RainbowDrawOp(), null, p, marks); + return true; } public override void Help(Player p) { diff --git a/MCGalaxy/Commands/building/CmdReplaceBrush.cs b/MCGalaxy/Commands/building/CmdReplaceBrush.cs index a383ff538..e53e0f0f7 100644 --- a/MCGalaxy/Commands/building/CmdReplaceBrush.cs +++ b/MCGalaxy/Commands/building/CmdReplaceBrush.cs @@ -78,7 +78,9 @@ namespace MCGalaxy.Commands.Building { DrawOp op = null; if (ReplaceNot) op = new ReplaceNotDrawOp(target); else op = new ReplaceDrawOp(target); - return DrawOpPerformer.Do(op, brush, p, marks); + + DrawOpPerformer.Do(op, brush, p, marks); + return true; } protected virtual bool ReplaceNot { get { return false; } } diff --git a/MCGalaxy/Commands/building/CmdTree.cs b/MCGalaxy/Commands/building/CmdTree.cs index 42c601e44..cbac7a73a 100644 --- a/MCGalaxy/Commands/building/CmdTree.cs +++ b/MCGalaxy/Commands/building/CmdTree.cs @@ -79,7 +79,8 @@ namespace MCGalaxy.Commands.Building { Brush brush = null; if (dArgs.brushMsg != "") brush = ParseBrush(dArgs.brushMsg, p, block); - return DrawOpPerformer.Do(op, brush, p, marks); + DrawOpPerformer.Do(op, brush, p, marks); + return true; } diff --git a/MCGalaxy/Commands/building/CmdWrite.cs b/MCGalaxy/Commands/building/CmdWrite.cs index 7d0694c9c..5cb56eddf 100644 --- a/MCGalaxy/Commands/building/CmdWrite.cs +++ b/MCGalaxy/Commands/building/CmdWrite.cs @@ -58,8 +58,10 @@ namespace MCGalaxy.Commands.Building { WriteDrawOp op = new WriteDrawOp(); op.Text = wArgs.message; op.Scale = wArgs.scale; op.Spacing = wArgs.spacing; + Brush brush = new SolidBrush(block); - return DrawOpPerformer.Do(op, brush, p, marks); + DrawOpPerformer.Do(op, brush, p, marks); + return true; } struct WriteArgs { public byte scale, spacing; public string message; } diff --git a/MCGalaxy/Commands/building/DrawCmd.cs b/MCGalaxy/Commands/building/DrawCmd.cs index 0eaff9c11..b36f864a8 100644 --- a/MCGalaxy/Commands/building/DrawCmd.cs +++ b/MCGalaxy/Commands/building/DrawCmd.cs @@ -59,7 +59,10 @@ namespace MCGalaxy.Commands.Building { BrushFactory factory = BrushFactory.Find(GetBrush(p, dArgs, ref offset)); BrushArgs bArgs = GetBrushArgs(dArgs, offset); Brush brush = factory.Construct(bArgs); - return brush != null && DrawOpPerformer.Do(dArgs.Op, brush, p, marks); + if (brush == null) return false; + + DrawOpPerformer.Do(dArgs.Op, brush, p, marks); + return true; } protected virtual string PlaceMessage { diff --git a/MCGalaxy/Commands/building/ReplaceCmd.cs b/MCGalaxy/Commands/building/ReplaceCmd.cs index a84ae26b6..42358fc00 100644 --- a/MCGalaxy/Commands/building/ReplaceCmd.cs +++ b/MCGalaxy/Commands/building/ReplaceCmd.cs @@ -48,7 +48,8 @@ namespace MCGalaxy.Commands.Building { if (brush == null) return false; DrawOp op = new CuboidDrawOp(); - return DrawOpPerformer.Do(op, brush, p, marks); + DrawOpPerformer.Do(op, brush, p, marks); + return true; } public override void Help(Player p) { diff --git a/MCGalaxy/Drawing/DrawOps/DrawOpPerformer.cs b/MCGalaxy/Drawing/DrawOps/DrawOpPerformer.cs index 53534b233..3c6a77d2d 100644 --- a/MCGalaxy/Drawing/DrawOps/DrawOpPerformer.cs +++ b/MCGalaxy/Drawing/DrawOps/DrawOpPerformer.cs @@ -59,9 +59,8 @@ namespace MCGalaxy.Drawing.Ops { Player.Message(p, "Drawing commands are turned off on this map."); return false; } - if (lvl != null && lvl.BuildAccess.Check(p) == AccessResult.Blacklisted) { - Player.Message(p, "You are blacklisted from building in this map, " + - "hence you cannot draw in this map"); + if (lvl != null && !lvl.BuildAccess.CheckDetailed(p)) { + Player.Message(p, "Hence you cannot use draw commands on this map."); return false; }