Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ startDedInputCallBack()

static void Terraria.Main.startDedInputCallBack ( )
inlinestatic

Definition at line 5397 of file Main.cs.

5398 {
5399 while (!Netplay.Disconnect)
5400 {
5401 Console.Write(": ");
5402 string text = ReadLineInput();
5403 string text2 = text;
5404 text = text.ToLower();
5405 try
5406 {
5407 if (text == Language.GetTextValue("CLI.Help_Command"))
5408 {
5409 Console.WriteLine(Language.GetTextValue("CLI.AvailableCommands"));
5410 Console.WriteLine("");
5412 {
5413 "Help", "Playing", "Clear", "Exit", "ExitNoSave", "Save", "Kick", "Ban", "Password", "SetPassword",
5414 "Version", "Time", "Port", "MaxPlayers", "Say", "MOTD", "SetMOTD", "Dawn", "Noon", "Dusk",
5415 "Midnight", "Settle", "Seed"
5416 };
5417 int num = 0;
5418 for (int i = 0; i < list.Count; i++)
5419 {
5420 string text3 = (Language.Exists("CLI." + list[i] + "_Example") ? Language.GetTextValue("CLI." + list[i] + "_Example") : Language.GetTextValue("CLI." + list[i] + "_Command"));
5421 if (text3.Length > num)
5422 {
5423 num = text3.Length;
5424 }
5425 }
5426 int num2 = (num + 1) / 8;
5427 for (int j = 0; j < list.Count; j++)
5428 {
5429 string text4 = (Language.Exists("CLI." + list[j] + "_Example") ? Language.GetTextValue("CLI." + list[j] + "_Example") : Language.GetTextValue("CLI." + list[j] + "_Command"));
5430 Console.WriteLine(text4 + new string('\t', num2 - text4.Length / 8) + Language.GetTextValue("CLI." + list[j] + "_Description"));
5431 }
5432 }
5433 else if (text == Language.GetTextValue("CLI.Settle_Command"))
5434 {
5435 if (!Liquid.panicMode)
5436 {
5437 Liquid.StartPanic();
5438 }
5439 else
5440 {
5441 Console.WriteLine(Language.GetTextValue("CLI.WaterIsAlreadySettling"));
5442 }
5443 }
5444 else if (text == Language.GetTextValue("CLI.Dawn_Command"))
5445 {
5446 dayTime = true;
5447 time = 0.0;
5448 NetMessage.SendData(7);
5449 }
5450 else if (text == Language.GetTextValue("CLI.Dusk_Command"))
5451 {
5452 dayTime = false;
5453 time = 0.0;
5454 NetMessage.SendData(7);
5455 }
5456 else if (text == Language.GetTextValue("CLI.Noon_Command"))
5457 {
5458 dayTime = true;
5459 time = 27000.0;
5460 NetMessage.SendData(7);
5461 }
5462 else if (text == Language.GetTextValue("CLI.Midnight_Command"))
5463 {
5464 dayTime = false;
5465 time = 16200.0;
5466 NetMessage.SendData(7);
5467 }
5468 else if (text == Language.GetTextValue("CLI.ExitNoSave_Command"))
5469 {
5470 Netplay.SaveOnServerExit = false;
5471 Netplay.Disconnect = true;
5472 }
5473 else if (text == Language.GetTextValue("CLI.Exit_Command"))
5474 {
5475 Netplay.Disconnect = true;
5477 }
5478 else if (text == Language.GetTextValue("CLI.FPS_Command"))
5479 {
5480 if (!dedServFPS)
5481 {
5482 dedServFPS = true;
5483 fpsTimer.Reset();
5484 }
5485 else
5486 {
5487 dedServCount1 = 0;
5488 dedServCount2 = 0;
5489 dedServFPS = false;
5490 }
5491 }
5492 else if (text == Language.GetTextValue("CLI.Save_Command"))
5493 {
5495 }
5496 else if (text == Language.GetTextValue("CLI.Time_Command"))
5497 {
5498 string textValue = Language.GetTextValue("GameUI.TimeAtMorning");
5499 double num3 = time;
5500 if (!dayTime)
5501 {
5502 num3 += 54000.0;
5503 }
5504 num3 = num3 / 86400.0 * 24.0;
5505 double num4 = 7.5;
5506 num3 = num3 - num4 - 12.0;
5507 if (num3 < 0.0)
5508 {
5509 num3 += 24.0;
5510 }
5511 if (num3 >= 12.0)
5512 {
5513 textValue = Language.GetTextValue("GameUI.TimePastMorning");
5514 }
5515 int num5 = (int)num3;
5516 double num6 = (int)((num3 - (double)num5) * 60.0);
5517 string text5 = string.Concat(num6);
5518 if (num6 < 10.0)
5519 {
5520 text5 = "0" + text5;
5521 }
5522 if (num5 > 12)
5523 {
5524 num5 -= 12;
5525 }
5526 if (num5 == 0)
5527 {
5528 num5 = 12;
5529 }
5530 Console.WriteLine(Language.GetTextValue("CLI.Time", num5 + ":" + text5 + " " + textValue));
5531 }
5532 else if (text == Language.GetTextValue("CLI.MaxPlayers_Command"))
5533 {
5535 }
5536 else if (text == Language.GetTextValue("CLI.Port_Command"))
5537 {
5538 Console.WriteLine(Language.GetTextValue("CLI.Port", Netplay.ListenPort));
5539 }
5540 else if (text == Language.GetTextValue("CLI.Version_Command"))
5541 {
5543 }
5544 else if (text == Language.GetTextValue("CLI.Clear_Command"))
5545 {
5546 try
5547 {
5548 Console.Clear();
5549 }
5550 catch
5551 {
5552 }
5553 }
5554 else if (text == Language.GetTextValue("CLI.Playing_Command"))
5555 {
5556 int num7 = 0;
5557 for (int k = 0; k < 255; k++)
5558 {
5559 if (player[k].active)
5560 {
5561 num7++;
5562 Console.WriteLine(string.Concat(player[k].name, " (", Netplay.Clients[k].Socket.GetRemoteAddress(), ")"));
5563 }
5564 }
5565 switch (num7)
5566 {
5567 case 0:
5568 Console.WriteLine(Language.GetTextValue("CLI.NoPlayers"));
5569 break;
5570 case 1:
5571 Console.WriteLine(Language.GetTextValue("CLI.OnePlayerConnected"));
5572 break;
5573 default:
5574 Console.WriteLine(Language.GetTextValue("CLI.PlayersConnected", num7));
5575 break;
5576 }
5577 }
5578 else
5579 {
5580 if (text == "")
5581 {
5582 continue;
5583 }
5584 if (text == Language.GetTextValue("CLI.MOTD_Command"))
5585 {
5586 if (motd == "")
5587 {
5589 }
5590 else
5591 {
5593 }
5594 }
5595 else if (text.StartsWith(Language.GetTextValue("CLI.SetMOTD_Command") + " "))
5596 {
5597 motd = text2.Substring(Language.GetTextValue("CLI.SetMOTD_Command").Length + 1);
5598 }
5599 else if (text == Language.GetTextValue("CLI.Password_Command"))
5600 {
5601 if (Netplay.ServerPassword == "")
5602 {
5603 Console.WriteLine(Language.GetTextValue("CLI.NoPassword"));
5604 }
5605 else
5606 {
5607 Console.WriteLine(Language.GetTextValue("CLI.Password", Netplay.ServerPassword));
5608 }
5609 }
5610 else if (text.StartsWith(Language.GetTextValue("CLI.SetPassword_Command") + " "))
5611 {
5612 string text6 = text2.Substring(Language.GetTextValue("CLI.SetPassword_Command").Length + 1);
5613 if (text6 == "")
5614 {
5615 Netplay.ServerPassword = "";
5616 Console.WriteLine(Language.GetTextValue("CLI.PasswordDisabled"));
5617 }
5618 else
5619 {
5620 Netplay.ServerPassword = text6;
5621 Console.WriteLine(Language.GetTextValue("CLI.PasswordSet", Netplay.ServerPassword));
5622 }
5623 }
5624 else if (text == Language.GetTextValue("CLI.Say_Command"))
5625 {
5626 Console.WriteLine(Language.GetTextValue("CLI.Say_Usage"));
5627 }
5628 else if (text.StartsWith(Language.GetTextValue("CLI.Say_Command") + " "))
5629 {
5630 int length = Language.GetTextValue("CLI.Say_Command").Length;
5631 if (text.Length <= length + 1)
5632 {
5633 Console.WriteLine(Language.GetTextValue("CLI.Say_Usage"));
5634 continue;
5635 }
5636 string text7 = text2.Substring(length + 1);
5637 Console.WriteLine(Language.GetTextValue("CLI.ServerMessage", text7));
5638 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("CLI.ServerMessage", text7), new Microsoft.Xna.Framework.Color(255, 240, 20));
5639 }
5640 else if (text == Language.GetTextValue("CLI.Kick_Command"))
5641 {
5642 Console.WriteLine(Language.GetTextValue("CLI.Kick_Usage"));
5643 }
5644 else if (text.StartsWith(Language.GetTextValue("CLI.Kick_Command") + " "))
5645 {
5646 int length2 = Language.GetTextValue("CLI.Kick_Command").Length;
5647 if (text.Length <= length2 + 1)
5648 {
5649 Console.WriteLine(Language.GetTextValue("CLI.Kick_Usage"));
5650 continue;
5651 }
5652 string text8 = text.Substring(length2 + 1);
5653 text8 = text8.ToLower();
5654 for (int l = 0; l < 255; l++)
5655 {
5656 if (player[l].active && player[l].name.ToLower() == text8)
5657 {
5658 NetMessage.SendData(2, l, -1, NetworkText.FromKey("CLI.KickMessage"));
5659 }
5660 }
5661 }
5662 else if (text == Language.GetTextValue("CLI.Seed_Command"))
5663 {
5664 if (ActiveWorldFileData == null || !ActiveWorldFileData.HasValidSeed)
5665 {
5666 Console.WriteLine(Language.GetTextValue("CLI.NoValidSeed"));
5667 }
5668 else
5669 {
5670 Console.WriteLine(Language.GetTextValue("CLI.DisplaySeed", ActiveWorldFileData.GetFullSeedText()));
5671 }
5672 }
5673 else if (text == Language.GetTextValue("CLI.Ban_Command"))
5674 {
5675 Console.WriteLine(Language.GetTextValue("CLI.Ban_Usage"));
5676 }
5677 else if (text.StartsWith(Language.GetTextValue("CLI.Ban_Command") + " "))
5678 {
5679 int length3 = Language.GetTextValue("CLI.Ban_Command").Length;
5680 if (text.Length <= length3 + 1)
5681 {
5682 Console.WriteLine(Language.GetTextValue("CLI.Ban_Usage"));
5683 continue;
5684 }
5685 string text9 = text.Substring(4);
5686 text9 = text9.ToLower();
5687 for (int m = 0; m < 255; m++)
5688 {
5689 if (player[m].active && player[m].name.ToLower() == text9)
5690 {
5691 Netplay.AddBan(m);
5692 NetMessage.SendData(2, m, -1, NetworkText.FromKey("CLI.BanMessage"));
5693 }
5694 }
5695 }
5696 else
5697 {
5698 Console.WriteLine(Language.GetTextValue("CLI.InvalidCommand"));
5699 }
5700 continue;
5701 }
5702 }
5703 catch
5704 {
5705 Console.WriteLine(Language.GetTextValue("CLI.InvalidCommand"));
5706 }
5707 }
5708 }
static void Write(string format, object? arg0)
Definition Console.cs:850
static void WriteLine()
Definition Console.cs:733
static void Clear()
Definition Console.cs:602
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
Definition ChatHelper.cs:46
static void SaveWorld()
Definition WorldFile.cs:780
static bool Exists(string key)
Definition Language.cs:45
static string GetTextValue(string key)
Definition Language.cs:15
static NetworkText FromKey(string key, params object[] substitutions)
static string versionNumber
Definition Main.cs:303
static Stopwatch fpsTimer
Definition Main.cs:732
static bool dedServFPS
Definition Main.cs:437
static double time
Definition Main.cs:1284
static string ReadLineInput()
Definition Main.cs:5710
static WorldFileData ActiveWorldFileData
Definition Main.cs:1946
static string motd
Definition Main.cs:1916
static bool dayTime
Definition Main.cs:1282
static string worldName
Definition Main.cs:1260
static int dedServCount2
Definition Main.cs:441
static int dedServCount1
Definition Main.cs:439
static int maxNetPlayers
Definition Main.cs:1136
static Player[] player
Definition Main.cs:1803
static void Shutdown()
Definition SocialAPI.cs:60

References Terraria.Main.ActiveWorldFileData, Terraria.Netplay.AddBan(), Terraria.Chat.ChatHelper.BroadcastChatMessage(), System.Console.Clear(), Terraria.Netplay.Clients, System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.Main.dayTime, Terraria.Main.dedServCount1, Terraria.Main.dedServCount2, Terraria.Main.dedServFPS, Terraria.Netplay.Disconnect, Terraria.Localization.Language.Exists(), Terraria.Main.fpsTimer, Terraria.Localization.NetworkText.FromKey(), Terraria.Localization.Language.GetTextValue(), System.Text.RegularExpressions.i, System.length, System.length2, System.length3, System.list, Terraria.Netplay.ListenPort, Terraria.Main.maxNetPlayers, Terraria.Main.motd, System.Text.RegularExpressions.name, Terraria.Liquid.panicMode, Terraria.Main.player, Terraria.Main.ReadLineInput(), Terraria.IO.WorldFile.SaveWorld(), Terraria.NetMessage.SendData(), Terraria.Netplay.ServerPassword, Terraria.Social.SocialAPI.Shutdown(), Terraria.Liquid.StartPanic(), System.text, Terraria.Main.time, Terraria.Main.versionNumber, Terraria.Main.worldName, System.Console.Write(), and System.Console.WriteLine().

Referenced by Terraria.Main.startDedInput().