public static bool DumpToFile(out string fileName) { string data; IDictionary <string, Func <string> > dumpables = DataDumper.GetDumpables(); Func <KeyValuePair <string, Func <string> >, string> getKey = kv => { try { return(kv.Value()); } catch (Exception e) { return("ERROR: " + e.Message); } }; lock (DataDumper.MyLock) { data = string.Join("\r\n", dumpables .ToDictionary(kv => kv.Key, getKey) .SafeSelect(kv => kv.Key + ":\r\n" + kv.Value) ); } bool success = DataDumper.DumpToLocalFile(data, out fileName); if (success) { // Allow admins to dump on behalf of server, also if (Main.netMode == 1) { if (ModHelpersMod.Instance.Config.DebugModeDumpAlsoServer || UserHelpers.HasBasicServerPrivilege(Main.LocalPlayer)) { PacketProtocolRequestToServer.QuickRequest <DataDumpProtocol>(-1); } } } return(success); }
//////////////// public override void Action(CommandCaller caller, string input, string[] args) { if (Main.netMode == 2) { throw new HamstarException("No server."); } var mymod = (OnARailMod)this.mod; if (!mymod.Config.DebugModeEnableTrainRespawnCommand) { if (!UserHelpers.HasBasicServerPrivilege(caller.Player)) { caller.Reply("Train respawning disabled by config.", Color.Red); return; } else { Main.NewText("Priviledged player " + caller.Player.name + " respawns train.", Color.LightSteelBlue); } } int who = TrainEntity.FindMyTrain(caller.Player); if (who != -1) { CustomEntityManager.RemoveEntityByWho(who); } PacketProtocolRequestToServer.QuickRequest <TrainSpawnProtocol>(); caller.Reply("Spawning train...", Color.LimeGreen); }
public void OnCurrentClientEnterWorld(Player player) { var mymod = ModHelpersMod.Instance; if (!this.HasLoadedOldUID) { LogHelpers.Alert("No (old) UID for " + player.name + " (" + player.whoAmI + ") to send to server"); this.HasLoadedOldUID = true; // Ugly failsafe; don't really know why data from ModPlayer.Load isn't available here } // Send PacketProtocolSendToServer.QuickSendToServer <PlayerOldIdProtocol>(); PlayerDataProtocol.SyncToEveryone(this.PermaBuffsById, this.HasBuffIds, this.EquipSlotsToItemTypes); // Receive PacketProtocolRequestToServer.QuickRequest <ModSettingsProtocol>(-1); PacketProtocolRequestToServer.QuickRequest <WorldDataProtocol>(-1); }
public static void QuickRequest() { PacketProtocolRequestToServer.QuickRequest <WorldDataProtocol>(-1); }
public static void QuickRequest() { PacketProtocolRequestToServer.QuickRequestToServer <WormholesProtocol>(-1); }
public static void QuickRequest() { PacketProtocolRequestToServer.QuickRequestToServer <AmbushesProtocol>(-1); }
public static void QuickRequest() { PacketProtocolRequestToServer.QuickRequest <DataDumpProtocol>(-1); }
private void OnConnectClient() { PacketProtocolRequestToServer.QuickRequest <ModSettingsProtocol>(); }