Revision 13:c78b5eafa10e Server/UAdminHandling.pas

b/Server/UAdminHandling.pas
90 90
uses
91 91
  md5, UCEDServer, UPackets, UClientHandling;
92 92

  
93
procedure AdminBroadcast(AAccessLevel: TAccessLevel; APacket: TPacket);
94
var
95
  netState: TNetState;
96
begin
97
  CEDServerInstance.TCPServer.IterReset;
98
  while CEDServerInstance.TCPServer.IterNext do
99
  begin
100
    netState := TNetState(CEDServerInstance.TCPServer.Iterator.UserData);
101
    if (netState <> nil) and (netState.Account.AccessLevel >= AAccessLevel) then
102
      CEDServerInstance.SendPacket(netState, APacket, False);
103
  end;
104
  APacket.Free;
105
end;
106

  
93 107
procedure OnAdminHandlerPacket(ABuffer: TEnhancedMemoryStream;
94 108
  ANetState: TNetState);
95 109
var
......
250 264
                     Max(x1, x2), Max(y1, y2));
251 265
  end;
252 266

  
253
  CEDServerInstance.SendPacket(ANetState,
267
  Config.Regions.Invalidate;
268

  
269
  AdminBroadcast(alAdministrator,
254 270
    TModifyRegionResponsePacket.Create(status, region));
255 271
end;
256 272

  
......
271 287
    if TRegion(regions[i]).Name = regionName then
272 288
    begin
273 289
      regions.Delete(i);
290
      regions.Invalidate;
274 291
      status := drDeleted;
275 292
    end else
276 293
      inc(i);
277 294
  end;
278 295

  
279
  CEDServerInstance.SendPacket(ANetState,
296
  AdminBroadcast(alAdministrator,
280 297
    TDeleteRegionResponsePacket.Create(status, regionName));
281 298
end;
282 299

  

Also available in: Unified diff