mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-24 05:03:34 -04:00
2339 lines
107 KiB
C#
2339 lines
107 KiB
C#
/*
|
|
Copyright 2010 MCSharp team (Modified for use with MCZall/MCLawl/MCGalaxy)
|
|
Dual-licensed under the Educational Community License, Version 2.0 and
|
|
the GNU General Public License, Version 3 (the "Licenses"); you may
|
|
not use this file except in compliance with the Licenses. You may
|
|
obtain a copy of the Licenses at
|
|
http://www.opensource.org/licenses/ecl2.php
|
|
http://www.gnu.org/licenses/gpl-3.0.html
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the Licenses are distributed on an "AS IS"
|
|
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
or implied. See the Licenses for the specific language governing
|
|
permissions and limitations under the Licenses.
|
|
*/
|
|
using System;
|
|
using System.CodeDom.Compiler;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Threading;
|
|
using System.Windows.Forms;
|
|
using MCGalaxy.Gui.Popups;
|
|
using MCGalaxy.Util;
|
|
using Microsoft.Win32;
|
|
|
|
namespace MCGalaxy.Gui {
|
|
public partial class PropertyWindow : Form {
|
|
System.Timers.Timer lavaUpdateTimer;
|
|
string lsLoadedMap = "";
|
|
|
|
public PropertyWindow() {
|
|
InitializeComponent();
|
|
SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
|
|
this.Font = SystemFonts.IconTitleFont;
|
|
}
|
|
|
|
private void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) {
|
|
if (e.Category == UserPreferenceCategory.Window) {
|
|
this.Font = SystemFonts.IconTitleFont;
|
|
}
|
|
}
|
|
|
|
private void PropertyWindow_FormClosing(object sender, FormClosingEventArgs e) {
|
|
SystemEvents.UserPreferenceChanged -= new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
|
|
}
|
|
|
|
private void PropertyWindow_Load(object sender, EventArgs e) {
|
|
|
|
Object[] colors = new Object[16];
|
|
colors[0] = ( "black" ); colors[1] = ( "navy" );
|
|
colors[2] = ( "green" ); colors[3] = ( "teal" );
|
|
colors[4] = ( "maroon" ); colors[5] = ( "purple" );
|
|
colors[6] = ( "gold" ); colors[7] = ( "silver" );
|
|
colors[8] = ( "gray" ); colors[9] = ( "blue" );
|
|
colors[10] = ( "lime" ); colors[11] = ( "aqua" );
|
|
colors[12] = ( "red" ); colors[13] = ( "pink" );
|
|
colors[14] = ( "yellow" ); colors[15] = ( "white" );
|
|
cmbDefaultColour.Items.AddRange(colors);
|
|
cmbIRCColour.Items.AddRange(colors);
|
|
cmbColor.Items.AddRange(colors);
|
|
cmbGlobalChatColor.Items.AddRange(colors);
|
|
button3.Enabled = Server.WomDirect;
|
|
|
|
grpIRC.BackColor = Server.irc ? Color.White : Color.LightGray;
|
|
grpSQL.BackColor = Server.useMySQL ? Color.White : Color.LightGray;
|
|
|
|
string opchatperm = String.Empty;
|
|
string adminchatperm = String.Empty;
|
|
string verifyadminsperm = String.Empty;
|
|
string grieferstonerank = String.Empty;
|
|
string afkkickrank = String.Empty;
|
|
string viewqueuerank = String.Empty;
|
|
string enterqueuerank = String.Empty;
|
|
string leavequeuerank = String.Empty;
|
|
string clearqueuerank = String.Empty;
|
|
string gotonextrank = String.Empty;
|
|
|
|
foreach ( Group grp in Group.GroupList ) {
|
|
cmbDefaultRank.Items.Add(grp.name);
|
|
cmbOpChat.Items.Add(grp.name);
|
|
cmbAdminChat.Items.Add(grp.name);
|
|
cmbVerificationRank.Items.Add(grp.name);
|
|
lsCmbSetupRank.Items.Add(grp.name);
|
|
lsCmbControlRank.Items.Add(grp.name);
|
|
cmbGrieferStoneRank.Items.Add(grp.name);
|
|
cmbAFKKickPerm.Items.Add(grp.name);
|
|
cmbViewQueue.Items.Add(grp.name);
|
|
cmbEnterQueue.Items.Add(grp.name);
|
|
cmbLeaveQueue.Items.Add(grp.name);
|
|
cmbClearQueue.Items.Add(grp.name);
|
|
cmbGotoNext.Items.Add(grp.name);
|
|
|
|
if ( grp.Permission == Server.opchatperm )
|
|
opchatperm = grp.name;
|
|
if ( grp.Permission == Server.adminchatperm )
|
|
adminchatperm = grp.name;
|
|
if ( grp.Permission == Server.verifyadminsrank )
|
|
verifyadminsperm = grp.name;
|
|
if ( grp.Permission == Server.grieferStoneRank )
|
|
grieferstonerank = grp.name;
|
|
if ( grp.Permission == Server.afkkickperm )
|
|
afkkickrank = grp.name;
|
|
if ( grp.Permission == Server.reviewenter )
|
|
enterqueuerank = grp.name;
|
|
if ( grp.Permission == Server.reviewleave )
|
|
leavequeuerank = grp.name;
|
|
if ( grp.Permission == Server.reviewview )
|
|
viewqueuerank = grp.name;
|
|
if ( grp.Permission == Server.reviewclear )
|
|
clearqueuerank = grp.name;
|
|
if ( grp.Permission == Server.reviewnext )
|
|
gotonextrank = grp.name;
|
|
}
|
|
listPasswords.Items.Clear();
|
|
if ( Directory.Exists("extra/passwords") ) {
|
|
DirectoryInfo di = new DirectoryInfo("extra/passwords/");
|
|
FileInfo[] fi = di.GetFiles("*.xml");
|
|
Thread.Sleep(10);
|
|
foreach ( FileInfo file in fi ) {
|
|
listPasswords.Items.Add(file.Name.Replace(".xml", ""));
|
|
}
|
|
}
|
|
cmbDefaultRank.SelectedIndex = 1;
|
|
cmbOpChat.SelectedIndex = ( opchatperm != String.Empty ? cmbOpChat.Items.IndexOf(opchatperm) : 1 );
|
|
cmbAdminChat.SelectedIndex = ( adminchatperm != String.Empty ? cmbAdminChat.Items.IndexOf(adminchatperm) : 1 );
|
|
cmbVerificationRank.SelectedIndex = ( verifyadminsperm != String.Empty ? cmbVerificationRank.Items.IndexOf(verifyadminsperm) : 1 );
|
|
cmbGrieferStoneRank.SelectedIndex = ( grieferstonerank != String.Empty ? cmbGrieferStoneRank.Items.IndexOf(grieferstonerank) : 1 );
|
|
cmbAFKKickPerm.SelectedIndex = ( afkkickrank != String.Empty ? cmbAFKKickPerm.Items.IndexOf(afkkickrank) : 1 );
|
|
cmbEnterQueue.SelectedIndex = ( enterqueuerank != String.Empty ? cmbEnterQueue.Items.IndexOf(enterqueuerank) : 1 );
|
|
cmbLeaveQueue.SelectedIndex = ( leavequeuerank != String.Empty ? cmbLeaveQueue.Items.IndexOf(leavequeuerank) : 1 );
|
|
cmbViewQueue.SelectedIndex = ( viewqueuerank != String.Empty ? cmbViewQueue.Items.IndexOf(viewqueuerank) : 1 );
|
|
cmbClearQueue.SelectedIndex = ( clearqueuerank != String.Empty ? cmbClearQueue.Items.IndexOf(clearqueuerank) : 1 );
|
|
cmbGotoNext.SelectedIndex = ( gotonextrank != String.Empty ? cmbGotoNext.Items.IndexOf(gotonextrank) : 1 );
|
|
|
|
for ( byte b = 1; b < 50; b++ )
|
|
cmbGrieferStoneType.Items.Add(Block.Name(b));
|
|
|
|
comboBoxProtection.Items.Add("Off");
|
|
comboBoxProtection.Items.Add("Dev");
|
|
comboBoxProtection.Items.Add("Mod");
|
|
|
|
//Load server stuff
|
|
LoadProp("properties/server.properties");
|
|
LoadRanks();
|
|
txechx.Checked = Server.UseTextures;
|
|
try {
|
|
LoadCommands();
|
|
LoadBlocks();
|
|
LoadExtraCmdCmds();
|
|
}
|
|
catch {
|
|
Server.s.Log("Failed to load commands and blocks!");
|
|
}
|
|
|
|
try {
|
|
LoadLavaSettings();
|
|
UpdateLavaMapList();
|
|
UpdateLavaControls();
|
|
}
|
|
catch {
|
|
Server.s.Log("Failed to load Lava Survival settings!");
|
|
}
|
|
|
|
try {
|
|
lavaUpdateTimer = new System.Timers.Timer(10000) { AutoReset = true };
|
|
lavaUpdateTimer.Elapsed += delegate {
|
|
UpdateLavaControls();
|
|
UpdateLavaMapList(false);
|
|
};
|
|
lavaUpdateTimer.Start();
|
|
}
|
|
catch {
|
|
Server.s.Log("Failed to start lava control update timer!");
|
|
}
|
|
try { nudCooldownTime.Value = Server.reviewcooldown; }
|
|
catch { }
|
|
try { reviewlist_update(); }
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
|
|
//Sigh. I wish there were SOME event to help me.
|
|
foreach(var command in Command.all.commands) {
|
|
if ( Command.core.commands.Contains( command ) )
|
|
continue;
|
|
|
|
lstCommands.Items.Add ( command.name );
|
|
}
|
|
}
|
|
|
|
public static bool EditTextOpen = false;
|
|
|
|
private void PropertyWindow_Unload(object sender, EventArgs e) {
|
|
lavaUpdateTimer.Dispose();
|
|
Window.prevLoaded = false;
|
|
TntWarsGame.GuiLoaded = null;
|
|
}
|
|
|
|
List<Group> storedRanks = new List<Group>();
|
|
List<GrpCommands.rankAllowance> storedCommands = new List<GrpCommands.rankAllowance>();
|
|
List<Block.Blocks> storedBlocks = new List<Block.Blocks>();
|
|
|
|
public void LoadRanks() {
|
|
txtCmdRanks.Text = "The following ranks are available: \r\n\r\n";
|
|
txtcmdranks2.Text = "The following ranks are available: \r\n\r\n";
|
|
listRanks.Items.Clear();
|
|
storedRanks.Clear();
|
|
storedRanks.AddRange(Group.GroupList);
|
|
foreach ( Group grp in storedRanks ) {
|
|
txtCmdRanks.Text += "\t" + grp.name + " (" + (int)grp.Permission + ")\r\n";
|
|
txtcmdranks2.Text += "\t" + grp.name + " (" + (int)grp.Permission + ")\r\n";
|
|
listRanks.Items.Add(grp.trueName + " = " + (int)grp.Permission);
|
|
}
|
|
txtBlRanks.Text = txtCmdRanks.Text;
|
|
listRanks.SelectedIndex = 0;
|
|
}
|
|
public void SaveRanks() {
|
|
Group.saveGroups(storedRanks);
|
|
Group.InitAll();
|
|
LoadRanks();
|
|
}
|
|
|
|
public void LoadCommands() {
|
|
listCommands.Items.Clear();
|
|
storedCommands.Clear();
|
|
foreach ( GrpCommands.rankAllowance aV in GrpCommands.allowedCommands ) {
|
|
storedCommands.Add(aV);
|
|
listCommands.Items.Add(aV.commandName);
|
|
}
|
|
if ( listCommands.SelectedIndex == -1 )
|
|
listCommands.SelectedIndex = 0;
|
|
}
|
|
public void SaveCommands() {
|
|
GrpCommands.Save(storedCommands);
|
|
GrpCommands.fillRanks();
|
|
LoadCommands();
|
|
}
|
|
|
|
public void LoadBlocks() {
|
|
listBlocks.Items.Clear();
|
|
storedBlocks.Clear();
|
|
storedBlocks.AddRange(Block.BlockList);
|
|
foreach ( Block.Blocks bs in storedBlocks ) {
|
|
if ( Block.Name(bs.type) != "unknown" )
|
|
listBlocks.Items.Add(Block.Name(bs.type));
|
|
}
|
|
if ( listBlocks.SelectedIndex == -1 )
|
|
listBlocks.SelectedIndex = 0;
|
|
}
|
|
public static bool prevLoaded = false;
|
|
Form PropertyForm;
|
|
//Form UpdateForm; // doesnt seem to be used, uncomment as needed.
|
|
//Form EditTxtForm;
|
|
|
|
public void SaveBlocks() {
|
|
Block.SaveBlocks(storedBlocks);
|
|
Block.SetBlocks();
|
|
LoadBlocks();
|
|
}
|
|
|
|
public void LoadProp(string givenPath) {
|
|
//int count = 0;
|
|
if ( !File.Exists(givenPath) ) return;
|
|
string[] lines = File.ReadAllLines(givenPath);
|
|
|
|
foreach ( string line in lines ) {
|
|
if ( line != "" && line[0] != '#' ) {
|
|
//int index = line.IndexOf('=') + 1; // not needed if we use Split('=')
|
|
string key = line.Split('=')[0].Trim();
|
|
string value = "";
|
|
if ( line.IndexOf('=') >= 0 )
|
|
value = line.Substring(line.IndexOf('=') + 1).Trim(); // allowing = in the values
|
|
string color = "";
|
|
|
|
switch ( key.ToLower() ) {
|
|
case "server-name":
|
|
if ( ValidString(value, "![]:.,{}~-+()?_/\\' ") ) txtName.Text = value;
|
|
else txtName.Text = "[MCGalaxy] Minecraft server";
|
|
break;
|
|
case "motd":
|
|
if ( ValidString(value, "=![]&:.,{}~-+()?_/\\' ") ) txtMOTD.Text = value; // allow = in the motd
|
|
else txtMOTD.Text = "Welcome to my server!";
|
|
break;
|
|
case "port":
|
|
try { txtPort.Text = Convert.ToInt32(value).ToString(); }
|
|
catch { txtPort.Text = "25565"; }
|
|
break;
|
|
case "verify-names":
|
|
chkVerify.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "public":
|
|
chkPublic.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "world-chat":
|
|
chkWorld.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "max-players":
|
|
try {
|
|
if ( Convert.ToByte(value) > 128 ) {
|
|
value = "128";
|
|
}
|
|
else if ( Convert.ToByte(value) < 1 ) {
|
|
value = "1";
|
|
}
|
|
numPlayers.Value = Convert.ToInt16(value);
|
|
}
|
|
catch {
|
|
Server.s.Log("max-players invalid! setting to default.");
|
|
numPlayers.Value = 12;
|
|
}
|
|
numGuests.Maximum = numPlayers.Value;
|
|
break;
|
|
case "max-guests":
|
|
try {
|
|
if ( Convert.ToByte(value) > numPlayers.Value ) {
|
|
value = numPlayers.Value.ToString();
|
|
}
|
|
else if ( Convert.ToByte(value) < 0 ) {
|
|
value = "0";
|
|
}
|
|
numGuests.Minimum = 0;
|
|
numGuests.Maximum = numPlayers.Value;
|
|
numGuests.Value = Convert.ToInt16(value);
|
|
}
|
|
catch {
|
|
Server.s.Log("max-guests invalid! setting to default.");
|
|
numGuests.Value = 10;
|
|
}
|
|
break;
|
|
case "max-maps":
|
|
try {
|
|
if ( Convert.ToByte(value) > 100 ) {
|
|
value = "100";
|
|
}
|
|
else if ( Convert.ToByte(value) < 1 ) {
|
|
value = "1";
|
|
}
|
|
txtMaps.Text = value;
|
|
}
|
|
catch {
|
|
Server.s.Log("max-maps invalid! setting to default.");
|
|
txtMaps.Text = "5";
|
|
}
|
|
break;
|
|
case "MCGalaxy-protection-level":
|
|
comboBoxProtection.SelectedItem = value;
|
|
break;
|
|
case "irc":
|
|
chkIRC.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "irc-server":
|
|
txtIRCServer.Text = value;
|
|
break;
|
|
case "irc-port":
|
|
txtIRCPort.Text = value;
|
|
break;
|
|
case "irc-nick":
|
|
txtNick.Text = value;
|
|
break;
|
|
case "irc-channel":
|
|
txtChannel.Text = value;
|
|
break;
|
|
case "irc-opchannel":
|
|
txtOpChannel.Text = value;
|
|
break;
|
|
case "irc-identify":
|
|
chkIrcId.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "irc-password":
|
|
txtIrcId.Text = value;
|
|
break;
|
|
case "anti-tunnels":
|
|
ChkTunnels.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "max-depth":
|
|
txtDepth.Text = value;
|
|
break;
|
|
|
|
case "rplimit":
|
|
try { txtRP.Text = value; }
|
|
catch { txtRP.Text = "500"; }
|
|
break;
|
|
case "rplimit-norm":
|
|
try { txtNormRp.Text = value; }
|
|
catch { txtNormRp.Text = "10000"; }
|
|
break;
|
|
|
|
case "log-heartbeat":
|
|
chkLogBeat.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "force-cuboid":
|
|
chkForceCuboid.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "profanity-filter":
|
|
chkProfanityFilter.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "notify-on-join-leave":
|
|
chkNotifyOnJoinLeave.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "backup-time":
|
|
txtBackup.Text = Convert.ToInt32(value) > 1 ? value : "300";
|
|
break;
|
|
|
|
case "backup-location":
|
|
if ( !value.Contains("System.Windows.Forms.TextBox, Text:") )
|
|
txtBackupLocation.Text = value;
|
|
break;
|
|
|
|
case "physicsrestart":
|
|
chkPhysicsRest.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "deathcount":
|
|
chkDeath.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "defaultcolor":
|
|
color = c.Parse(value);
|
|
|
|
if ( color == "" ) {
|
|
color = c.Name(value); if ( color != "" ) color = value; else { Server.s.Log("Could not find " + value); return; }
|
|
}
|
|
cmbDefaultColour.SelectedIndex = cmbDefaultColour.Items.IndexOf(c.Name(color)); break;
|
|
|
|
case "irc-color":
|
|
color = c.Parse(value);
|
|
if ( color == "" ) {
|
|
color = c.Name(value); if ( color != "" ) color = value; else { Server.s.Log("Could not find " + value); return; }
|
|
}
|
|
cmbIRCColour.SelectedIndex = cmbIRCColour.Items.IndexOf(c.Name(color)); break;
|
|
case "default-rank":
|
|
try {
|
|
if ( cmbDefaultRank.Items.IndexOf(value.ToLower()) != -1 )
|
|
cmbDefaultRank.SelectedIndex = cmbDefaultRank.Items.IndexOf(value.ToLower());
|
|
}
|
|
catch { cmbDefaultRank.SelectedIndex = 1; }
|
|
break;
|
|
|
|
case "cheapmessage":
|
|
chkCheap.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "cheap-message-given":
|
|
txtCheap.Text = value;
|
|
break;
|
|
|
|
case "rank-super":
|
|
chkrankSuper.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "custom-ban":
|
|
chkBanMessage.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "custom-ban-message":
|
|
txtBanMessage.Text = value;
|
|
break;
|
|
|
|
case "custom-shutdown":
|
|
chkShutdown.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "custom-shutdown-message":
|
|
txtShutdown.Text = value;
|
|
break;
|
|
|
|
case "custom-griefer-stone":
|
|
chkGrieferStone.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
|
|
case "custom-griefer-stone-message":
|
|
txtGrieferStone.Text = value;
|
|
break;
|
|
|
|
case "auto-restart":
|
|
chkRestartTime.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "restarttime":
|
|
txtRestartTime.Text = value;
|
|
break;
|
|
case "afk-minutes":
|
|
try { txtafk.Text = Convert.ToInt16(value).ToString(); }
|
|
catch { txtafk.Text = "10"; }
|
|
break;
|
|
case "afk-kick":
|
|
try { txtAFKKick.Text = Convert.ToInt16(value).ToString(); }
|
|
catch { txtAFKKick.Text = "45"; }
|
|
break;
|
|
case "check-updates":
|
|
chkUpdates.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "use-beta-version":
|
|
usebeta.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "auto-update":
|
|
autoUpdate.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "in-game-update-notify":
|
|
notifyInGameUpdate.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "update-countdown":
|
|
try { updateTimeNumeric.Value = Convert.ToDecimal(value); }
|
|
catch { updateTimeNumeric.Value = 10; }
|
|
break;
|
|
case "autoload":
|
|
chkAutoload.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "parse-emotes":
|
|
chkSmile.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "allow-tp-to-higher-ranks":
|
|
chkTpToHigherRanks.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "agree-to-rules-on-entry":
|
|
chkAgreeToRules.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "admins-join-silent":
|
|
chkAdminsJoinSilent.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "main-name":
|
|
txtMain.Text = value;
|
|
break;
|
|
case "dollar-before-dollar":
|
|
chk17Dollar.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "money-name":
|
|
txtMoneys.Text = value;
|
|
break;
|
|
/*case "mono":
|
|
chkMono.Checked = (value.ToLower() == "true") ? true : false;
|
|
break;*/
|
|
case "restart-on-error":
|
|
chkRestart.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "repeat-messages":
|
|
chkRepeatMessages.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "host-state":
|
|
if ( value != "" ) txtHost.Text = value;
|
|
break;
|
|
case "kick-on-hackrank":
|
|
hackrank_kick.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "hackrank-kick-time":
|
|
hackrank_kick_time.Text = value;
|
|
break;
|
|
case "server-owner":
|
|
txtServerOwner.Text = value;
|
|
break;
|
|
case "zombie-on-server-start":
|
|
chkZombieOnServerStart.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "no-respawning-during-zombie":
|
|
chkNoRespawnDuringZombie.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "no-level-saving-during-zombie":
|
|
chkNoLevelSavingDuringZombie.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "no-pillaring-during-zombie":
|
|
chkNoPillaringDuringZombie.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "zombie-name-while-infected":
|
|
ZombieName.Text = value;
|
|
break;
|
|
case "enable-changing-levels":
|
|
chkEnableChangingLevels.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "zombie-survival-only-server":
|
|
chkZombieOnlyServer.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "use-level-list":
|
|
chkUseLevelList.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "zombie-level-list":
|
|
if ( value != "" ) {
|
|
string input = value.Replace(" ", "").ToString();
|
|
int itndex = input.IndexOf("#");
|
|
if ( itndex > 0 )
|
|
input = input.Substring(0, itndex);
|
|
levelList.Text = input;
|
|
}
|
|
break;
|
|
case "guest-limit-notify":
|
|
chkGuestLimitNotify.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "ignore-ops":
|
|
chkIgnoreGlobal.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "admin-verification":
|
|
chkEnableVerification.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "usemysql":
|
|
chkUseSQL.Checked = ( value.ToLower() == "true" );
|
|
break;
|
|
case "username":
|
|
if ( value != "" ) txtSQLUsername.Text = value;
|
|
break;
|
|
case "password":
|
|
if ( value != "" ) txtSQLPassword.Text = value;
|
|
break;
|
|
case "databasename":
|
|
if ( value != "" ) txtSQLDatabase.Text = value;
|
|
break;
|
|
case "host":
|
|
try {
|
|
IPAddress.Parse(value);
|
|
txtSQLHost.Text = value;
|
|
}
|
|
catch {
|
|
txtSQLHost.Text = "127.0.0.1";
|
|
}
|
|
break;
|
|
case "sqlport":
|
|
try {
|
|
int.Parse(value);
|
|
txtSQLPort.Text = value;
|
|
}
|
|
catch {
|
|
txtSQLPort.Text = "3306";
|
|
}
|
|
break;
|
|
case "mute-on-spam":
|
|
chkSpamControl.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "spam-messages":
|
|
try {
|
|
numSpamMessages.Value = Convert.ToInt16(value);
|
|
}
|
|
catch {
|
|
numSpamMessages.Value = 8;
|
|
}
|
|
break;
|
|
case "spam-mute-time":
|
|
try {
|
|
numSpamMute.Value = Convert.ToInt16(value);
|
|
}
|
|
catch {
|
|
numSpamMute.Value = 60;
|
|
}
|
|
break;
|
|
case "show-empty-ranks":
|
|
chkShowEmptyRanks.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
|
|
case "global-chat-enabled":
|
|
chkGlobalChat.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
|
|
case "global-chat-nick":
|
|
if ( value != "" ) txtGlobalChatNick.Text = value;
|
|
break;
|
|
|
|
case "global-chat-color":
|
|
color = c.Parse(value);
|
|
if ( color == "" ) {
|
|
color = c.Name(value); if ( color != "" ) color = value; else { Server.s.Log("Could not find " + value); return; }
|
|
}
|
|
cmbGlobalChatColor.SelectedIndex = cmbGlobalChatColor.Items.IndexOf(c.Name(color)); break;
|
|
|
|
case "griefer-stone-tempban":
|
|
chkGrieferStoneBan.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
|
|
case "griefer-stone-type":
|
|
try { cmbGrieferStoneType.SelectedIndex = cmbGrieferStoneType.Items.IndexOf(value); }
|
|
catch {
|
|
try { cmbGrieferStoneType.SelectedIndex = cmbGrieferStoneType.Items.IndexOf(Block.Name(Convert.ToByte(value))); }
|
|
catch { Server.s.Log("Could not find " + value); }
|
|
}
|
|
break;
|
|
case "wom-direct":
|
|
chkWomDirect.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "premium-only":
|
|
chkPrmOnly.Checked = ( value.ToLower() == "true" ) ? true : false;
|
|
break;
|
|
case "view":
|
|
Server.reviewview = Level.PermissionFromName(value.ToLower());
|
|
break;
|
|
case "enter":
|
|
Server.reviewenter = Level.PermissionFromName(value.ToLower());
|
|
break;
|
|
case "leave":
|
|
Server.reviewleave = Level.PermissionFromName(value.ToLower());
|
|
break;
|
|
case "cooldown":
|
|
try {
|
|
Server.reviewcooldown = Convert.ToInt32(value.ToLower()) < 600 ? Convert.ToInt32(value.ToLower()) : 600;
|
|
}
|
|
catch {
|
|
Server.reviewcooldown = 60;
|
|
Server.s.Log("An error occurred reading the review cooldown value");
|
|
}
|
|
break;
|
|
case "clear":
|
|
Server.reviewclear = Level.PermissionFromName(value.ToLower());
|
|
break;
|
|
case "next":
|
|
Server.reviewnext = Level.PermissionFromName(value.ToLower());
|
|
break;
|
|
case "ignoreomnibans":
|
|
chkIgnoreOmnibans.Checked = value.ToLower() == "true";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
//Save(givenPath);
|
|
//else Save(givenPath);
|
|
}
|
|
public bool ValidString(string str, string allowed) {
|
|
string allowedchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890" + allowed;
|
|
foreach ( char ch in str ) {
|
|
if ( allowedchars.IndexOf(ch) == -1 ) {
|
|
return false;
|
|
}
|
|
} return true;
|
|
}
|
|
|
|
public void Save(string givenPath) {
|
|
try {
|
|
using ( StreamWriter w = new StreamWriter(File.Create(givenPath)) ) {
|
|
if ( givenPath.IndexOf("server") != -1 ) {
|
|
saveAll(); // saves everything to the server variables
|
|
SrvProperties.SaveProps(w); // When we have this, why define it again?
|
|
}
|
|
}
|
|
}
|
|
catch ( Exception ) {
|
|
Server.s.Log("SAVE FAILED! " + givenPath);
|
|
}
|
|
}
|
|
|
|
private void saveAll() {
|
|
|
|
Server.name = txtName.Text;
|
|
Server.motd = txtMOTD.Text;
|
|
Server.port = int.Parse(txtPort.Text);
|
|
Server.verify = chkVerify.Checked;
|
|
Server.pub = chkPublic.Checked;
|
|
Server.players = (byte)numPlayers.Value;
|
|
Server.maxGuests = (byte)numGuests.Value;
|
|
Server.maps = byte.Parse(txtMaps.Text);
|
|
Server.worldChat = chkWorld.Checked;
|
|
Server.autonotify = chkNotifyOnJoinLeave.Checked;
|
|
Server.AutoLoad = chkAutoload.Checked;
|
|
Server.autorestart = chkRestartTime.Checked;
|
|
try { Server.restarttime = DateTime.Parse(txtRestartTime.Text); }
|
|
catch { } // ignore bad values
|
|
Server.restartOnError = chkRestart.Checked;
|
|
Server.level = ( Player.ValidName(txtMain.Text) ? txtMain.Text : "main" );
|
|
Server.irc = chkIRC.Checked;
|
|
Server.ircNick = txtNick.Text;
|
|
Server.ircServer = txtIRCServer.Text;
|
|
Server.ircChannel = txtChannel.Text;
|
|
Server.ircOpChannel = txtOpChannel.Text;
|
|
Server.ircPort = int.Parse(txtIRCPort.Text);
|
|
Server.ircIdentify = chkIrcId.Checked;
|
|
Server.ircPassword = txtIrcId.Text;
|
|
Server.forgeProtection = comboBoxProtection.SelectedItem.ToString() == "Dev" ? ForgeProtection.Dev : comboBoxProtection.SelectedItem.ToString() == "Mod" ? ForgeProtection.Mod : ForgeProtection.Off;
|
|
|
|
Server.antiTunnel = ChkTunnels.Checked;
|
|
Server.maxDepth = byte.Parse(txtDepth.Text);
|
|
Server.rpLimit = int.Parse(txtRP.Text);
|
|
Server.rpNormLimit = int.Parse(txtRP.Text);
|
|
Server.physicsRestart = chkPhysicsRest.Checked;
|
|
Server.deathcount = chkDeath.Checked;
|
|
Server.afkminutes = int.Parse(txtafk.Text);
|
|
Server.afkkick = int.Parse(txtAFKKick.Text);
|
|
Server.parseSmiley = chkSmile.Checked;
|
|
Server.dollardollardollar = chk17Dollar.Checked;
|
|
//Server.useWhitelist = ; //We don't have a setting for this?
|
|
Server.moneys = txtMoneys.Text;
|
|
Server.opchatperm = Group.GroupList.Find(grp => grp.name == cmbOpChat.SelectedItem.ToString()).Permission;
|
|
Server.adminchatperm = Group.GroupList.Find(grp => grp.name == cmbAdminChat.SelectedItem.ToString()).Permission;
|
|
Server.logbeat = chkLogBeat.Checked;
|
|
Server.forceCuboid = chkForceCuboid.Checked;
|
|
Server.profanityFilter = chkProfanityFilter.Checked;
|
|
Server.notifyOnJoinLeave = chkNotifyOnJoinLeave.Checked;
|
|
Server.repeatMessage = chkRepeatMessages.Checked;
|
|
Server.ZallState = txtHost.Text;
|
|
Server.agreetorulesonentry = chkAgreeToRules.Checked;
|
|
Server.adminsjoinsilent = chkAdminsJoinSilent.Checked;
|
|
Server.server_owner = txtServerOwner.Text;
|
|
Server.startZombieModeOnStartup = chkZombieOnServerStart.Checked;
|
|
Server.noRespawn = chkNoRespawnDuringZombie.Checked;
|
|
Server.noLevelSaving = chkNoLevelSavingDuringZombie.Checked;
|
|
Server.noPillaring = chkNoPillaringDuringZombie.Checked;
|
|
Server.ZombieName = ZombieName.Text;
|
|
Server.ChangeLevels = chkEnableChangingLevels.Checked;
|
|
|
|
string input = levelList.Text.Replace(" ", "").ToString();
|
|
int itndex = input.IndexOf("#");
|
|
if ( itndex > 0 )
|
|
input = input.Substring(0, itndex);
|
|
|
|
Server.LevelList = input.Split(',').ToList<string>();
|
|
|
|
Server.ZombieOnlyServer = chkZombieOnlyServer.Checked;
|
|
Server.UseLevelList = chkUseLevelList.Checked;
|
|
Server.guestLimitNotify = chkGuestLimitNotify.Checked;
|
|
|
|
|
|
Server.backupInterval = int.Parse(txtBackup.Text);
|
|
Server.backupLocation = txtBackupLocation.Text;
|
|
|
|
|
|
//Server.reportBack = ; //No setting for this?
|
|
|
|
Server.useMySQL = chkUseSQL.Checked;
|
|
Server.MySQLHost = txtSQLHost.Text;
|
|
Server.MySQLPort = txtSQLPort.Text;
|
|
Server.MySQLUsername = txtSQLUsername.Text;
|
|
Server.MySQLPassword = txtSQLPassword.Text;
|
|
Server.MySQLDatabaseName = txtSQLDatabase.Text;
|
|
//Server.MySQLPooling = ; // No setting for this?
|
|
|
|
|
|
Server.DefaultColor = cmbDefaultColour.SelectedItem.ToString();
|
|
Server.IRCColour = cmbIRCColour.SelectedItem.ToString();
|
|
|
|
|
|
//Server.mono = chkMono.Checked;
|
|
|
|
|
|
Server.customBan = chkBanMessage.Checked;
|
|
Server.customBanMessage = txtBanMessage.Text;
|
|
Server.customShutdown = chkShutdown.Checked;
|
|
Server.customShutdownMessage = txtShutdown.Text;
|
|
Server.customGrieferStone = chkGrieferStone.Checked;
|
|
Server.customGrieferStoneMessage = txtGrieferStone.Text;
|
|
Server.higherranktp = chkTpToHigherRanks.Checked;
|
|
Server.globalignoreops = chkIgnoreGlobal.Checked; // Wasn't in previous setting-saver
|
|
|
|
Server.checkUpdates = chkUpdates.Checked;
|
|
|
|
Server.cheapMessage = chkCheap.Checked;
|
|
Server.cheapMessageGiven = txtCheap.Text;
|
|
Server.rankSuper = chkrankSuper.Checked;
|
|
Server.defaultRank = cmbDefaultRank.SelectedItem.ToString();
|
|
|
|
Server.DownloadBeta = usebeta.Checked;
|
|
|
|
Server.hackrank_kick = hackrank_kick.Checked;
|
|
Server.hackrank_kick_time = int.Parse(hackrank_kick_time.Text);
|
|
|
|
|
|
Server.verifyadmins = chkEnableVerification.Checked;
|
|
Server.verifyadminsrank = Group.GroupList.Find(grp => grp.name == cmbVerificationRank.SelectedItem.ToString()).Permission;
|
|
|
|
Server.checkspam = chkSpamControl.Checked;
|
|
Server.spamcounter = (int)numSpamMessages.Value;
|
|
Server.mutespamtime = (int)numSpamMute.Value;
|
|
Server.spamcountreset = (int)numCountReset.Value;
|
|
|
|
Server.showEmptyRanks = chkShowEmptyRanks.Checked;
|
|
|
|
Server.UseGlobalChat = chkGlobalChat.Checked;
|
|
Server.GlobalChatNick = txtGlobalChatNick.Text;
|
|
Server.GlobalChatColor = cmbGlobalChatColor.SelectedItem.ToString();
|
|
|
|
Server.grieferStoneBan = chkGrieferStoneBan.Checked;
|
|
Server.grieferStoneType = Block.Byte(cmbGrieferStoneType.SelectedItem.ToString());
|
|
Server.grieferStoneRank = Group.GroupList.Find(grp => grp.name == cmbGrieferStoneRank.SelectedItem.ToString()).Permission;
|
|
|
|
Server.WomDirect = chkWomDirect.Checked;
|
|
//Server.Server_ALT = ;
|
|
//Server.Server_Disc = ;
|
|
//Server.Server_Flag = ;
|
|
Server.PremiumPlayersOnly = chkPrmOnly.Checked;
|
|
|
|
Server.reviewview = Group.GroupList.Find(grp => grp.name == cmbViewQueue.SelectedItem.ToString()).Permission;
|
|
Server.reviewenter = Group.GroupList.Find(grp => grp.name == cmbEnterQueue.SelectedItem.ToString()).Permission;
|
|
Server.reviewleave = Group.GroupList.Find(grp => grp.name == cmbLeaveQueue.SelectedItem.ToString()).Permission;
|
|
Server.reviewclear = Group.GroupList.Find(grp => grp.name == cmbClearQueue.SelectedItem.ToString()).Permission;
|
|
Server.reviewnext = Group.GroupList.Find(grp => grp.name == cmbGotoNext.SelectedItem.ToString()).Permission;
|
|
Server.reviewcooldown = (int)nudCooldownTime.Value;
|
|
|
|
Server.IgnoreOmnibans = chkIgnoreOmnibans.Checked;
|
|
}
|
|
|
|
private void cmbDefaultColour_SelectedIndexChanged(object sender, EventArgs e) {
|
|
lblDefault.BackColor = Color.FromName(cmbDefaultColour.Items[cmbDefaultColour.SelectedIndex].ToString());
|
|
}
|
|
|
|
private void cmbIRCColour_SelectedIndexChanged(object sender, EventArgs e) {
|
|
lblIRC.BackColor = Color.FromName(cmbIRCColour.Items[cmbIRCColour.SelectedIndex].ToString());
|
|
}
|
|
|
|
void removeDigit(TextBox foundTxt) {
|
|
try {
|
|
int lastChar = int.Parse(foundTxt.Text[foundTxt.Text.Length - 1].ToString());
|
|
}
|
|
catch {
|
|
foundTxt.Text = "";
|
|
}
|
|
}
|
|
|
|
private void txtPort_TextChanged(object sender, EventArgs e) { removeDigit(txtPort); }
|
|
private void txtMaps_TextChanged(object sender, EventArgs e) { removeDigit(txtMaps); }
|
|
private void txtBackup_TextChanged(object sender, EventArgs e) { removeDigit(txtBackup); }
|
|
private void txtDepth_TextChanged(object sender, EventArgs e) { removeDigit(txtDepth); }
|
|
|
|
private void btnSave_Click(object sender, EventArgs e) { saveStuff(); Dispose(); }
|
|
private void btnApply_Click(object sender, EventArgs e) { saveStuff(); }
|
|
|
|
void saveStuff() {
|
|
foreach ( Control tP in tabControl.Controls )
|
|
if ( tP is TabPage && tP != tabPage3 && tP != tabPage5 )
|
|
foreach ( Control ctrl in tP.Controls )
|
|
if ( ctrl is TextBox && ctrl.Name.ToLower() != "txtgrpmotd" )
|
|
if ( ctrl.Text == "" ) {
|
|
MessageBox.Show("A textbox has been left empty. It must be filled.\n" + ctrl.Name);
|
|
return;
|
|
}
|
|
|
|
Save("properties/server.properties");
|
|
SaveRanks();
|
|
SaveCommands();
|
|
SaveOldExtraCustomCmdChanges();
|
|
SaveBlocks();
|
|
try { SaveLavaSettings(); }
|
|
catch { Server.s.Log("Error saving Lava Survival settings!"); }
|
|
|
|
SrvProperties.Load("properties/server.properties", true); // loads when saving?
|
|
GrpCommands.fillRanks();
|
|
|
|
// Trigger profanity filter reload
|
|
// Not the best way of doing things, but it kinda works
|
|
ProfanityFilter.Init();
|
|
}
|
|
|
|
private void btnDiscard_Click(object sender, EventArgs e) {
|
|
this.Dispose();
|
|
}
|
|
|
|
private void toolTip_Popup(object sender, PopupEventArgs e) {
|
|
|
|
}
|
|
|
|
private void tabPage2_Click(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void tabPage1_Click(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void chkPhysicsRest_CheckedChanged(object sender, EventArgs e) {
|
|
}
|
|
|
|
private void chkGC_CheckedChanged(object sender, EventArgs e) {
|
|
}
|
|
|
|
private void chkIRC_CheckedChanged(object sender, EventArgs e) {
|
|
if ( !chkIRC.Checked ) {
|
|
grpIRC.BackColor = Color.LightGray;
|
|
}
|
|
else {
|
|
grpIRC.BackColor = Color.White;
|
|
}
|
|
}
|
|
|
|
private void btnBackup_Click(object sender, EventArgs e) {
|
|
/*FolderBrowserDialog folderDialog = new FolderBrowserDialog();
|
|
folderDialog.Description = "Select Folder";
|
|
if (folderDialog.ShowDialog() == DialogResult.OK) {
|
|
txtBackupLocation.Text = folderDialog.SelectedPath;
|
|
}*/
|
|
MessageBox.Show("Currently glitchy! Just type in the location by hand.");
|
|
}
|
|
|
|
#region rankTab
|
|
private void cmbColor_SelectedIndexChanged(object sender, EventArgs e) {
|
|
lblColor.BackColor = Color.FromName(cmbColor.Items[cmbColor.SelectedIndex].ToString());
|
|
storedRanks[listRanks.SelectedIndex].color = c.Parse(cmbColor.Items[cmbColor.SelectedIndex].ToString());
|
|
}
|
|
|
|
bool skip = false;
|
|
private void listRanks_SelectedIndexChanged(object sender, EventArgs e) {
|
|
if ( skip ) return;
|
|
Group foundRank = storedRanks.Find(grp => grp.trueName == listRanks.Items[listRanks.SelectedIndex].ToString().Split('=')[0].Trim());
|
|
if ( foundRank.Permission == LevelPermission.Nobody ) { listRanks.SelectedIndex = 0; return; }
|
|
|
|
txtRankName.Text = foundRank.trueName;
|
|
txtPermission.Text = ( (int)foundRank.Permission ).ToString();
|
|
txtLimit.Text = foundRank.maxBlocks.ToString();
|
|
txtMaxUndo.Text = foundRank.maxUndo.ToString();
|
|
cmbColor.SelectedIndex = cmbColor.Items.IndexOf(c.Name(foundRank.color));
|
|
txtGrpMOTD.Text = String.IsNullOrEmpty(foundRank.MOTD) ? String.Empty : foundRank.MOTD;
|
|
txtFileName.Text = foundRank.fileName;
|
|
}
|
|
|
|
private void txtRankName_TextChanged(object sender, EventArgs e) {
|
|
if ( txtRankName.Text != "" && txtRankName.Text.ToLower() != "nobody" ) {
|
|
storedRanks[listRanks.SelectedIndex].trueName = txtRankName.Text;
|
|
skip = true;
|
|
listRanks.Items[listRanks.SelectedIndex] = txtRankName.Text + " = " + (int)storedRanks[listRanks.SelectedIndex].Permission;
|
|
skip = false;
|
|
}
|
|
}
|
|
|
|
private void txtPermission_TextChanged(object sender, EventArgs e) {
|
|
if ( txtPermission.Text != "" ) {
|
|
int foundPerm;
|
|
try {
|
|
foundPerm = int.Parse(txtPermission.Text);
|
|
}
|
|
catch {
|
|
if ( txtPermission.Text != "-" )
|
|
txtPermission.Text = txtPermission.Text.Remove(txtPermission.Text.Length - 1);
|
|
return;
|
|
}
|
|
|
|
if ( foundPerm < -50 ) { txtPermission.Text = "-50"; return; }
|
|
else if ( foundPerm > 119 ) { txtPermission.Text = "119"; return; }
|
|
|
|
storedRanks[listRanks.SelectedIndex].Permission = (LevelPermission)foundPerm;
|
|
skip = true;
|
|
listRanks.Items[listRanks.SelectedIndex] = storedRanks[listRanks.SelectedIndex].trueName + " = " + foundPerm;
|
|
skip = false;
|
|
}
|
|
}
|
|
|
|
private void txtLimit_TextChanged(object sender, EventArgs e) {
|
|
if ( txtLimit.Text != "" ) {
|
|
int foundLimit;
|
|
try {
|
|
foundLimit = int.Parse(txtLimit.Text);
|
|
}
|
|
catch {
|
|
txtLimit.Text = txtLimit.Text.Remove(txtLimit.Text.Length - 1);
|
|
return;
|
|
}
|
|
|
|
if ( foundLimit < 1 ) { txtLimit.Text = "1"; return; }
|
|
|
|
storedRanks[listRanks.SelectedIndex].maxBlocks = foundLimit;
|
|
}
|
|
}
|
|
|
|
private void txtMaxUndo_TextChanged(object sender, EventArgs e) {
|
|
if ( txtMaxUndo.Text != "" ) {
|
|
long foundMax;
|
|
try {
|
|
foundMax = long.Parse(txtMaxUndo.Text);
|
|
}
|
|
catch {
|
|
txtMaxUndo.Text = txtMaxUndo.Text.Remove(txtMaxUndo.Text.Length - 1);
|
|
return;
|
|
}
|
|
|
|
if ( foundMax < -1 ) { txtMaxUndo.Text = "0"; return; }
|
|
|
|
storedRanks[listRanks.SelectedIndex].maxUndo = foundMax;
|
|
}
|
|
|
|
}
|
|
|
|
private void txtFileName_TextChanged(object sender, EventArgs e) {
|
|
if ( txtFileName.Text != "" ) {
|
|
storedRanks[listRanks.SelectedIndex].fileName = txtFileName.Text;
|
|
}
|
|
}
|
|
|
|
private void btnAddRank_Click(object sender, EventArgs e) {
|
|
Group newGroup = new Group((LevelPermission)5, 600, 30, "CHANGEME", '1', String.Empty, "CHANGEME.txt");
|
|
storedRanks.Add(newGroup);
|
|
listRanks.Items.Add(newGroup.trueName + " = " + (int)newGroup.Permission);
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e) {
|
|
if ( listRanks.Items.Count > 1 ) {
|
|
storedRanks.RemoveAt(listRanks.SelectedIndex);
|
|
skip = true;
|
|
listRanks.Items.RemoveAt(listRanks.SelectedIndex);
|
|
skip = false;
|
|
|
|
listRanks.SelectedIndex = 0;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region commandTab
|
|
private void listCommands_SelectedIndexChanged(object sender, EventArgs e) {
|
|
Command cmd = Command.all.Find(listCommands.SelectedItem.ToString());
|
|
GrpCommands.rankAllowance allowVar = storedCommands.Find(aV => aV.commandName == cmd.name);
|
|
|
|
if ( Group.findPerm(allowVar.lowestRank) == null ) allowVar.lowestRank = cmd.defaultRank;
|
|
txtCmdLowest.Text = (int)allowVar.lowestRank + "";
|
|
|
|
bool foundOne = false;
|
|
txtCmdDisallow.Text = "";
|
|
foreach ( LevelPermission perm in allowVar.disallow ) {
|
|
foundOne = true;
|
|
txtCmdDisallow.Text += "," + (int)perm;
|
|
}
|
|
if ( foundOne ) txtCmdDisallow.Text = txtCmdDisallow.Text.Remove(0, 1);
|
|
|
|
foundOne = false;
|
|
txtCmdAllow.Text = "";
|
|
foreach ( LevelPermission perm in allowVar.allow ) {
|
|
foundOne = true;
|
|
txtCmdAllow.Text += "," + (int)perm;
|
|
}
|
|
if ( foundOne ) txtCmdAllow.Text = txtCmdAllow.Text.Remove(0, 1);
|
|
}
|
|
private void txtCmdLowest_TextChanged(object sender, EventArgs e) {
|
|
fillLowest(ref txtCmdLowest, ref storedCommands[listCommands.SelectedIndex].lowestRank);
|
|
}
|
|
private void txtCmdDisallow_TextChanged(object sender, EventArgs e) {
|
|
fillAllowance(ref txtCmdDisallow, ref storedCommands[listCommands.SelectedIndex].disallow);
|
|
}
|
|
private void txtCmdAllow_TextChanged(object sender, EventArgs e) {
|
|
fillAllowance(ref txtCmdAllow, ref storedCommands[listCommands.SelectedIndex].allow);
|
|
}
|
|
#endregion
|
|
|
|
#region BlockTab
|
|
private void listBlocks_SelectedIndexChanged(object sender, EventArgs e) {
|
|
byte b = Block.Byte(listBlocks.SelectedItem.ToString());
|
|
Block.Blocks bs = storedBlocks.Find(bS => bS.type == b);
|
|
|
|
txtBlLowest.Text = (int)bs.lowestRank + "";
|
|
|
|
bool foundOne = false;
|
|
txtBlDisallow.Text = "";
|
|
foreach ( LevelPermission perm in bs.disallow ) {
|
|
foundOne = true;
|
|
txtBlDisallow.Text += "," + (int)perm;
|
|
}
|
|
if ( foundOne ) txtBlDisallow.Text = txtBlDisallow.Text.Remove(0, 1);
|
|
|
|
foundOne = false;
|
|
txtBlAllow.Text = "";
|
|
foreach ( LevelPermission perm in bs.allow ) {
|
|
foundOne = true;
|
|
txtBlAllow.Text += "," + (int)perm;
|
|
}
|
|
if ( foundOne ) txtBlAllow.Text = txtBlAllow.Text.Remove(0, 1);
|
|
}
|
|
private void txtBlLowest_TextChanged(object sender, EventArgs e) {
|
|
fillLowest(ref txtBlLowest, ref storedBlocks[Block.Byte(listBlocks.SelectedItem.ToString())].lowestRank);
|
|
}
|
|
private void txtBlDisallow_TextChanged(object sender, EventArgs e) {
|
|
fillAllowance(ref txtBlDisallow, ref storedBlocks[listBlocks.SelectedIndex].disallow);
|
|
}
|
|
private void txtBlAllow_TextChanged(object sender, EventArgs e) {
|
|
fillAllowance(ref txtBlAllow, ref storedBlocks[listBlocks.SelectedIndex].allow);
|
|
}
|
|
#endregion
|
|
private void fillAllowance(ref TextBox txtBox, ref List<LevelPermission> addTo) {
|
|
addTo.Clear();
|
|
if ( txtBox.Text != "" ) {
|
|
string[] perms = txtBox.Text.Split(',');
|
|
for ( int i = 0; i < perms.Length; i++ ) {
|
|
perms[i] = perms[i].Trim().ToLower();
|
|
int foundPerm;
|
|
try {
|
|
foundPerm = int.Parse(perms[i]);
|
|
}
|
|
catch {
|
|
Group foundGroup = Group.Find(perms[i]);
|
|
if ( foundGroup != null ) foundPerm = (int)foundGroup.Permission;
|
|
else { Server.s.Log("Could not find " + perms[i]); continue; }
|
|
}
|
|
addTo.Add((LevelPermission)foundPerm);
|
|
}
|
|
|
|
txtBox.Text = "";
|
|
foreach ( LevelPermission p in addTo ) {
|
|
txtBox.Text += "," + (int)p;
|
|
}
|
|
if ( txtBox.Text != "" ) txtBox.Text = txtBox.Text.Remove(0, 1);
|
|
}
|
|
}
|
|
private void fillLowest(ref TextBox txtBox, ref LevelPermission toChange) {
|
|
if ( txtBox.Text != "" ) {
|
|
txtBox.Text = txtBox.Text.Trim().ToLower();
|
|
int foundPerm = -100;
|
|
try {
|
|
foundPerm = int.Parse(txtBox.Text);
|
|
}
|
|
catch {
|
|
Group foundGroup = Group.Find(txtBox.Text);
|
|
if ( foundGroup != null ) foundPerm = (int)foundGroup.Permission;
|
|
else { Server.s.Log("Could not find " + txtBox.Text); }
|
|
}
|
|
|
|
txtBox.Text = "";
|
|
if ( foundPerm < -99 ) txtBox.Text = (int)toChange + "";
|
|
else txtBox.Text = foundPerm + "";
|
|
|
|
toChange = (LevelPermission)Convert.ToInt16(txtBox.Text);
|
|
}
|
|
}
|
|
|
|
private void btnBlHelp_Click(object sender, EventArgs e) {
|
|
getHelp(listBlocks.SelectedItem.ToString());
|
|
}
|
|
private void btnCmdHelp_Click(object sender, EventArgs e) {
|
|
getHelp(listCommands.SelectedItem.ToString());
|
|
}
|
|
private void getHelp(string toHelp) {
|
|
Player.storedHelp = "";
|
|
Player.storeHelp = true;
|
|
Command.all.Find("help").Use(null, toHelp);
|
|
Player.storeHelp = false;
|
|
string messageInfo = "Help information for " + toHelp + ":\r\n\r\n";
|
|
messageInfo += Player.storedHelp;
|
|
MessageBox.Show(messageInfo);
|
|
}
|
|
|
|
|
|
private void ChkPort_Click(object sender, EventArgs e) {
|
|
using ( var form = new PortTools() ) {
|
|
form.ShowDialog();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void CrtCustCmd_Click(object sender, EventArgs e) {
|
|
if ( txtCommandName.Text != null ) {
|
|
if ( File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".cs") ) {
|
|
MessageBox.Show("Sorry, That command already exists!!");
|
|
}
|
|
else {
|
|
Command.all.Find("cmdcreate").Use(null, txtCommandName.Text);
|
|
MessageBox.Show("Command Created!!");
|
|
}
|
|
}
|
|
else {
|
|
MessageBox.Show("You didnt specify a name for the command!!");
|
|
}
|
|
}
|
|
|
|
private void CompileCustCmd_Click(object sender, EventArgs e) {
|
|
if ( txtCommandName.Text != null ) {
|
|
if ( File.Exists("extra/commands/dll/Cmd" + txtCommandName.Text + ".dll") ) {
|
|
MessageBox.Show("Sorry, That command already exists!!");
|
|
}
|
|
else {
|
|
Command.all.Find("compile").Use(null, txtCommandName.Text);
|
|
MessageBox.Show("Command Compiled!!");
|
|
}
|
|
}
|
|
else {
|
|
MessageBox.Show("You didnt specify a name for the command!!");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void numPlayers_ValueChanged(object sender, EventArgs e) {
|
|
// Ensure that number of guests is never more than number of players
|
|
if ( numGuests.Value > numPlayers.Value ) {
|
|
numGuests.Value = numPlayers.Value;
|
|
}
|
|
numGuests.Maximum = numPlayers.Value;
|
|
}
|
|
|
|
private void editTxtsBt_Click_1(object sender, EventArgs e) {
|
|
if ( EditTextOpen ) {
|
|
return;
|
|
}
|
|
PropertyForm = new EditText();
|
|
PropertyForm.Show();
|
|
}
|
|
|
|
private void btnCreate_Click(object sender, EventArgs e) {
|
|
if(String.IsNullOrEmpty(txtCommandName.Text.Trim())) {
|
|
MessageBox.Show ( "Command must have a name" );
|
|
return;
|
|
}
|
|
|
|
if ( radioButton1.Checked ) {
|
|
if ( File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".vb") || File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".cs") ) {
|
|
MessageBox.Show("Command already exists", "", MessageBoxButtons.OK);
|
|
}
|
|
else {
|
|
Command.all.Find("cmdcreate").Use(null, txtCommandName.Text.ToLower() + " vb");
|
|
MessageBox.Show("New Command Created: " + txtCommandName.Text.ToLower() + " Created.");
|
|
}
|
|
}
|
|
else {
|
|
|
|
|
|
|
|
if ( File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".cs") || File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".vb") ) {
|
|
MessageBox.Show("Command already exists", "", MessageBoxButtons.OK);
|
|
}
|
|
else {
|
|
Command.all.Find("cmdcreate").Use(null, txtCommandName.Text.ToLower());
|
|
MessageBox.Show("New Command Created: " + txtCommandName.Text.ToLower() + " Created.");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void btnLoad_Click(object sender, EventArgs e) {
|
|
Command[] commands = null;
|
|
|
|
using(FileDialog fileDialog = new OpenFileDialog()) {
|
|
|
|
fileDialog.Filter = "Accepted File Types (*.cs, *.vb, *.dll)|*.cs;*.vb;*.dll|C# Source (*.cs)|*.cs|Visual Basic Source (*.vb)|*.vb|.NET Assemblies (*.dll)|*.dll";
|
|
|
|
if ( fileDialog.ShowDialog() == DialogResult.OK ) {
|
|
|
|
string fileName = fileDialog.FileName;
|
|
|
|
if ( fileName.EndsWith ( ".dll" ) ) {
|
|
commands = MCGalaxyScripter.FromAssemblyFile ( fileName );
|
|
}
|
|
else {
|
|
|
|
ScriptLanguage language = fileName.EndsWith ( ".cs" ) ? ScriptLanguage.CSharp : ScriptLanguage.VB;
|
|
|
|
if ( File.Exists ( fileName ) ) {
|
|
var result = MCGalaxyScripter.Compile ( File.ReadAllText ( fileName ), language );
|
|
|
|
if ( result == null ) {
|
|
MessageBox.Show ( "Error compiling files" );
|
|
return;
|
|
}
|
|
|
|
if ( result.CompilerErrors != null ) {
|
|
foreach ( CompilerError err in result.CompilerErrors ) {
|
|
Server.s.ErrorCase( "Error #" + err.ErrorNumber );
|
|
Server.s.ErrorCase( "Message: " + err.ErrorText );
|
|
Server.s.ErrorCase( "Line: " + err.Line );
|
|
|
|
Server.s.ErrorCase( "=================================" );
|
|
}
|
|
MessageBox.Show ( "Error compiling from source. Check logs for error" );
|
|
return;
|
|
}
|
|
|
|
commands = result.Commands;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( commands == null ) {
|
|
MessageBox.Show( "Error compiling files" );
|
|
return;
|
|
}
|
|
|
|
for ( int i = 0; i < commands.Length; i++ ) {
|
|
Command command = commands[ i ];
|
|
|
|
if(lstCommands.Items.Contains(command.name)) {
|
|
MessageBox.Show ( "Command " + command.name + " already exists. As a result, it was not loaded" );
|
|
continue;
|
|
}
|
|
|
|
lstCommands.Items.Add ( command.name );
|
|
Command.all.Add(command);
|
|
Server.s.Log("Added " + command.name + " to commands");
|
|
}
|
|
|
|
GrpCommands.fillRanks();
|
|
}
|
|
|
|
private void btnUnload_Click(object sender, EventArgs e) {
|
|
Command foundCmd = Command.all.Find(lstCommands.SelectedItem.ToString());
|
|
if ( foundCmd == null ) {
|
|
MessageBox.Show(txtCommandName.Text + " is not a valid or loaded command.", "");
|
|
return;
|
|
}
|
|
|
|
lstCommands.Items.Remove( foundCmd.name );
|
|
Command.all.Remove(foundCmd);
|
|
GrpCommands.fillRanks();
|
|
MessageBox.Show("Command was successfully unloaded.", "");
|
|
}
|
|
|
|
|
|
private void btnDiscardcmd_Click(object sender, EventArgs e) {
|
|
switch ( MessageBox.Show("Are you sure you want to discard this whole file?", "Discard?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ) {
|
|
case DialogResult.Yes:
|
|
if ( radioButton1.Checked ) {
|
|
|
|
if ( File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".vb") ) {
|
|
File.Delete("extra/commands/source/Cmd" + txtCommandName.Text + ".vb");
|
|
}
|
|
else { MessageBox.Show("File: " + txtCommandName.Text + ".vb Doesnt Exist."); }
|
|
}
|
|
else {
|
|
if ( File.Exists("extra/commands/source/Cmd" + txtCommandName.Text + ".cs") ) {
|
|
File.Delete("extra/commands/source/Cmd" + txtCommandName.Text + ".cs");
|
|
}
|
|
else { MessageBox.Show("File: " + txtCommandName.Text + ".cs Doesnt Exist."); }
|
|
}
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
private void btnReset_Click(object sender, EventArgs e) {
|
|
if ( listPasswords.Text == "" ) {
|
|
MessageBox.Show("You have not selected a user's password to reset!");
|
|
return;
|
|
}
|
|
try {
|
|
File.Delete("extra/passwords/" + listPasswords.Text + ".xml");
|
|
listPasswords.Items.Clear();
|
|
DirectoryInfo di = new DirectoryInfo("extra/passwords/");
|
|
FileInfo[] fi = di.GetFiles("*.xml");
|
|
Thread.Sleep(10);
|
|
foreach ( FileInfo file in fi ) {
|
|
listPasswords.Items.Add(file.Name.Replace(".xml", ""));
|
|
}
|
|
}
|
|
catch {
|
|
MessageBox.Show("Failed to reset password!");
|
|
}
|
|
|
|
}
|
|
|
|
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
|
try {
|
|
System.Diagnostics.Process.Start("http://dev.mysql.com/downloads/");
|
|
}
|
|
catch {
|
|
MessageBox.Show("Failed to open link!");
|
|
}
|
|
}
|
|
|
|
private void chkUseSQL_CheckedChanged(object sender, EventArgs e) {
|
|
if ( chkUseSQL.Checked.ToString().ToLower() == "false" ) {
|
|
grpSQL.BackColor = Color.LightGray;
|
|
}
|
|
if ( chkUseSQL.Checked.ToString().ToLower() == "true" ) {
|
|
grpSQL.BackColor = Color.White;
|
|
}
|
|
}
|
|
|
|
private void groupBox17_Enter(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
|
|
|
}
|
|
|
|
private void chkZombieOnServerStart_CheckedChanged(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void txtNick_TextChanged(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, EventArgs e) {
|
|
/*if (chkIrcId.Checked)
|
|
{
|
|
textBox1.Enabled = true;
|
|
textBox1.BackColor = Color.White;
|
|
}
|
|
else
|
|
{
|
|
textBox1.Enabled = false;
|
|
textBox1.BackColor = Color.LightGray;
|
|
}*/
|
|
}
|
|
|
|
private void pictureBox1_Click(object sender, EventArgs e) {
|
|
try {
|
|
if ( !Directory.Exists("extra/images") )
|
|
Directory.CreateDirectory("extra/images");
|
|
if ( !File.Exists( "extra/images/mcpony.png" ) ) {
|
|
using ( WebClient WEB = new WebClient () ) {
|
|
WEB.DownloadFileAsync ( new Uri ( "http://comingsoon.tk/uploads/images/mcpony.png" ), "extra/images/mcpony.png" );
|
|
WEB.DownloadFileCompleted += ( ea, args ) => {
|
|
if ( File.Exists ( "extra/images/mcpony.png" ) ) {
|
|
Image img = Image.FromFile ( "extra/images/mcpony.png" );
|
|
pictureBox1.Image = img;
|
|
}
|
|
};
|
|
}
|
|
} else {
|
|
Image img = Image.FromFile( "extra/images/mcpony.png" );
|
|
pictureBox1.Image = img;
|
|
}
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
private void cmbGlobalChatColor_SelectedIndexChanged(object sender, EventArgs e) {
|
|
lblGlobalChatColor.BackColor = Color.FromName(cmbGlobalChatColor.Items[cmbGlobalChatColor.SelectedIndex].ToString());
|
|
}
|
|
|
|
private void label55_Click(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void numericUpDown2_ValueChanged(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void LoadLavaSettings() {
|
|
lsCmbSetupRank.SelectedIndex = ( Group.findPerm(Server.lava.setupRank) == null ) ? 0 : lsCmbSetupRank.Items.IndexOf(Group.findPerm(Server.lava.setupRank).name);
|
|
lsCmbControlRank.SelectedIndex = ( Group.findPerm(Server.lava.controlRank) == null ) ? 0 : lsCmbControlRank.Items.IndexOf(Group.findPerm(Server.lava.controlRank).name);
|
|
lsChkStartOnStartup.Checked = Server.lava.startOnStartup;
|
|
lsChkSendAFKMain.Checked = Server.lava.sendAfkMain;
|
|
lsNudVoteCount.Value = Server.lava.voteCount;
|
|
lsNudLives.Value = MathHelper.Clamp((decimal)Server.lava.lifeNum, 0, 1000);
|
|
lsNudVoteTime.Value = (decimal)MathHelper.Clamp(Server.lava.voteTime, 1, 1000);
|
|
}
|
|
|
|
private void SaveLavaSettings() {
|
|
Server.lava.setupRank = Group.GroupList.Find(grp => grp.name == lsCmbSetupRank.Items[lsCmbSetupRank.SelectedIndex].ToString()).Permission;
|
|
Server.lava.controlRank = Group.GroupList.Find(grp => grp.name == lsCmbControlRank.Items[lsCmbControlRank.SelectedIndex].ToString()).Permission;
|
|
Server.lava.startOnStartup = lsChkStartOnStartup.Checked;
|
|
Server.lava.sendAfkMain = lsChkSendAFKMain.Checked;
|
|
Server.lava.voteCount = (byte)lsNudVoteCount.Value;
|
|
Server.lava.voteTime = (double)lsNudVoteTime.Value;
|
|
Server.lava.lifeNum = (int)lsNudLives.Value;
|
|
Server.lava.SaveSettings();
|
|
}
|
|
|
|
private void UpdateLavaControls() {
|
|
try {
|
|
lsBtnStartGame.Enabled = !Server.lava.active;
|
|
lsBtnStopGame.Enabled = Server.lava.active;
|
|
lsBtnEndRound.Enabled = Server.lava.roundActive;
|
|
lsBtnEndVote.Enabled = Server.lava.voteActive;
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
private void lsBtnStartGame_Click(object sender, EventArgs e) {
|
|
if ( !Server.lava.active ) Server.lava.Start();
|
|
UpdateLavaControls();
|
|
}
|
|
|
|
private void lsBtnStopGame_Click(object sender, EventArgs e) {
|
|
if ( Server.lava.active ) Server.lava.Stop();
|
|
UpdateLavaControls();
|
|
}
|
|
|
|
private void lsBtnEndRound_Click(object sender, EventArgs e) {
|
|
if ( Server.lava.roundActive ) Server.lava.EndRound();
|
|
UpdateLavaControls();
|
|
}
|
|
|
|
private void UpdateLavaMapList(bool useList = true, bool noUseList = true) {
|
|
if ( !useList && !noUseList ) return;
|
|
try {
|
|
if ( this.InvokeRequired ) {
|
|
this.Invoke(new MethodInvoker(delegate { try { UpdateLavaMapList(useList, noUseList); } catch { } }));
|
|
return;
|
|
}
|
|
|
|
int useIndex = lsMapUse.SelectedIndex, noUseIndex = lsMapNoUse.SelectedIndex;
|
|
if ( useList ) lsMapUse.Items.Clear();
|
|
if ( noUseList ) lsMapNoUse.Items.Clear();
|
|
|
|
if ( useList ) {
|
|
lsMapUse.Items.AddRange(Server.lava.Maps.ToArray());
|
|
try { if ( useIndex > -1 ) lsMapUse.SelectedIndex = useIndex; }
|
|
catch { }
|
|
}
|
|
if ( noUseList ) {
|
|
string name;
|
|
FileInfo[] fi = new DirectoryInfo("levels/").GetFiles("*.lvl");
|
|
foreach ( FileInfo file in fi ) {
|
|
try {
|
|
name = file.Name.Replace(".lvl", "");
|
|
if ( name.ToLower() != Server.mainLevel.name && !Server.lava.HasMap(name) )
|
|
lsMapNoUse.Items.Add(name);
|
|
}
|
|
catch ( NullReferenceException ) { }
|
|
}
|
|
try { if ( noUseIndex > -1 ) lsMapNoUse.SelectedIndex = noUseIndex; }
|
|
catch { }
|
|
}
|
|
}
|
|
catch ( ObjectDisposedException ) { } //Y U BE ANNOYING
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void lsAddMap_Click(object sender, EventArgs e) {
|
|
try {
|
|
Server.lava.Stop(); // Doing this so we don't break something...
|
|
UpdateLavaControls();
|
|
|
|
string name;
|
|
try { name = lsMapNoUse.Items[lsMapNoUse.SelectedIndex].ToString(); }
|
|
catch { return; }
|
|
|
|
if ( Level.Find(name) == null )
|
|
Command.all.Find("load").Use(null, name);
|
|
Level level = Level.Find(name);
|
|
if ( level == null ) return;
|
|
|
|
Server.lava.AddMap(name);
|
|
|
|
LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(level.name);
|
|
settings.blockFlood = new LavaSurvival.Pos((ushort)( level.width / 2 ), (ushort)( level.depth - 1 ), (ushort)( level.height / 2 ));
|
|
settings.blockLayer = new LavaSurvival.Pos(0, (ushort)( level.depth / 2 ), 0);
|
|
ushort x = (ushort)( level.width / 2 ), y = (ushort)( level.depth / 2 ), z = (ushort)( level.height / 2 );
|
|
settings.safeZone = new LavaSurvival.Pos[] { new LavaSurvival.Pos((ushort)( x - 3 ), y, (ushort)( z - 3 )), new LavaSurvival.Pos((ushort)( x + 3 ), (ushort)( y + 4 ), (ushort)( z + 3 )) };
|
|
Server.lava.SaveMapSettings(settings);
|
|
|
|
level.motd = "Lava Survival: " + level.name.Capitalize();
|
|
level.overload = 1000000;
|
|
level.unload = false;
|
|
level.loadOnGoto = false;
|
|
Level.SaveSettings(level);
|
|
level.Unload(true);
|
|
|
|
UpdateLavaMapList();
|
|
}
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void lsRemoveMap_Click(object sender, EventArgs e) {
|
|
try {
|
|
Server.lava.Stop(); // Doing this so we don't break something...
|
|
UpdateLavaControls();
|
|
|
|
string name;
|
|
try { name = lsMapUse.Items[lsMapUse.SelectedIndex].ToString(); }
|
|
catch { return; }
|
|
|
|
if ( Level.Find(name) == null )
|
|
Command.all.Find("load").Use(null, name);
|
|
Level level = Level.Find(name);
|
|
if ( level == null ) return;
|
|
|
|
Server.lava.RemoveMap(name);
|
|
level.motd = "ignore";
|
|
level.overload = 1500;
|
|
level.unload = true;
|
|
level.loadOnGoto = true;
|
|
Level.SaveSettings(level);
|
|
level.Unload(true);
|
|
|
|
UpdateLavaMapList();
|
|
}
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void lsMapUse_SelectedIndexChanged(object sender, EventArgs e) {
|
|
string name;
|
|
try { name = lsMapUse.Items[lsMapUse.SelectedIndex].ToString(); }
|
|
catch { return; }
|
|
|
|
lsLoadedMap = name;
|
|
try {
|
|
LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(name);
|
|
lsNudFastLava.Value = MathHelper.Clamp((decimal)settings.fast, 0, 100);
|
|
lsNudKiller.Value = MathHelper.Clamp((decimal)settings.killer, 0, 100);
|
|
lsNudDestroy.Value = MathHelper.Clamp((decimal)settings.destroy, 0, 100);
|
|
lsNudWater.Value = MathHelper.Clamp((decimal)settings.water, 0, 100);
|
|
lsNudLayer.Value = MathHelper.Clamp((decimal)settings.layer, 0, 100);
|
|
lsNudLayerHeight.Value = MathHelper.Clamp((decimal)settings.layerHeight, 1, 1000);
|
|
lsNudLayerCount.Value = MathHelper.Clamp((decimal)settings.layerCount, 1, 1000);
|
|
lsNudLayerTime.Value = (decimal)MathHelper.Clamp(settings.layerInterval, 1, 1000);
|
|
lsNudRoundTime.Value = (decimal)MathHelper.Clamp(settings.roundTime, 1, 1000);
|
|
lsNudFloodTime.Value = (decimal)MathHelper.Clamp(settings.floodTime, 1, 1000);
|
|
}
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void lsBtnEndVote_Click(object sender, EventArgs e) {
|
|
if ( Server.lava.voteActive ) Server.lava.EndVote();
|
|
UpdateLavaControls();
|
|
}
|
|
|
|
private void lsBtnSaveSettings_Click(object sender, EventArgs e) {
|
|
if ( String.IsNullOrEmpty(lsLoadedMap) ) return;
|
|
|
|
try {
|
|
LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(lsLoadedMap);
|
|
settings.fast = (byte)lsNudFastLava.Value;
|
|
settings.killer = (byte)lsNudKiller.Value;
|
|
settings.destroy = (byte)lsNudDestroy.Value;
|
|
settings.water = (byte)lsNudWater.Value;
|
|
settings.layer = (byte)lsNudLayer.Value;
|
|
settings.layerHeight = (int)lsNudLayerHeight.Value;
|
|
settings.layerCount = (int)lsNudLayerCount.Value;
|
|
settings.layerInterval = (double)lsNudLayerTime.Value;
|
|
settings.roundTime = (double)lsNudRoundTime.Value;
|
|
settings.floodTime = (double)lsNudFloodTime.Value;
|
|
Server.lava.SaveMapSettings(settings);
|
|
}
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void numCountReset_ValueChanged(object sender, EventArgs e) {
|
|
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e) {
|
|
new GUI.WoM().Show();
|
|
}
|
|
|
|
private void chkWomDirect_CheckedChanged(object sender, EventArgs e) {
|
|
button3.Enabled = chkWomDirect.Checked;
|
|
}
|
|
|
|
private void forceUpdateBtn_Click(object sender, EventArgs e) {
|
|
forceUpdateBtn.Enabled = false;
|
|
if ( MessageBox.Show("Would you like to force update MCGalaxy now?", "Force Update", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK ) {
|
|
saveStuff();
|
|
MCGalaxy_.Gui.Program.PerformUpdate();
|
|
Dispose();
|
|
}
|
|
else {
|
|
forceUpdateBtn.Enabled = true;
|
|
}
|
|
}
|
|
|
|
private int oldnumber;
|
|
private Command oldcmd;
|
|
private void listCommandsExtraCmdPerms_SelectedIndexChanged(object sender, EventArgs e) {
|
|
SaveOldExtraCustomCmdChanges();
|
|
Command cmd = Command.all.Find(listCommandsExtraCmdPerms.SelectedItem.ToString());
|
|
oldcmd = cmd;
|
|
extracmdpermnumber.Maximum = CommandOtherPerms.GetMaxNumber(cmd);
|
|
if ( extracmdpermnumber.Maximum == 1 ) { extracmdpermnumber.ReadOnly = true; }
|
|
else { extracmdpermnumber.ReadOnly = false; }
|
|
extracmdpermnumber.Value = 1;
|
|
extracmdpermdesc.Text = CommandOtherPerms.Find(cmd, 1).Description;
|
|
extracmdpermperm.Text = CommandOtherPerms.Find(cmd, 1).Permission.ToString();
|
|
oldnumber = (int)extracmdpermnumber.Value;
|
|
}
|
|
|
|
private void SaveOldExtraCustomCmdChanges() {
|
|
if ( oldcmd != null ) {
|
|
CommandOtherPerms.Edit(CommandOtherPerms.Find(oldcmd, oldnumber), int.Parse(extracmdpermperm.Text));
|
|
CommandOtherPerms.Save();
|
|
}
|
|
}
|
|
|
|
private void extracmdpermnumber_ValueChanged(object sender, EventArgs e) {
|
|
SaveOldExtraCustomCmdChanges();
|
|
oldnumber = (int)extracmdpermnumber.Value;
|
|
extracmdpermdesc.Text = CommandOtherPerms.Find(oldcmd, (int)extracmdpermnumber.Value).Description;
|
|
extracmdpermperm.Text = CommandOtherPerms.Find(oldcmd, (int)extracmdpermnumber.Value).Permission.ToString();
|
|
}
|
|
private void LoadExtraCmdCmds() {
|
|
listCommandsExtraCmdPerms.Items.Clear();
|
|
foreach ( Command cmd in Command.all.commands ) {
|
|
if ( CommandOtherPerms.Find(cmd) != null ) {
|
|
listCommandsExtraCmdPerms.Items.Add(cmd.name);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void tabControl_Click(object sender, EventArgs e) {
|
|
reviewlist_update();
|
|
}
|
|
public void reviewlist_update() {
|
|
int people = 1;
|
|
listBox1.Items.Clear();
|
|
listBox1.Items.Add("Players in queue:");
|
|
listBox1.Items.Add("----------");
|
|
foreach ( string playerinqueue in Server.reviewlist ) {
|
|
|
|
listBox1.Items.Add(people.ToString() + ". " + playerinqueue);
|
|
people++;
|
|
}
|
|
people--;
|
|
listBox1.Items.Add("----------");
|
|
listBox1.Items.Add(people + " player(s) in queue.");
|
|
}
|
|
|
|
private void button4_Click(object sender, EventArgs e) {
|
|
try {
|
|
Command.all.Find("review").Use(null, "clear");
|
|
MessageBox.Show("Review queue has been cleared!");
|
|
reviewlist_update();
|
|
}
|
|
catch ( Exception ex ) { Server.ErrorLog(ex); }
|
|
}
|
|
|
|
private void txtGrpMOTD_TextChanged(object sender, EventArgs e) {
|
|
if ( txtGrpMOTD.Text != null ) storedRanks[listRanks.SelectedIndex].MOTD = txtGrpMOTD.Text;
|
|
}
|
|
|
|
public void LoadTNTWarsTab(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) {
|
|
//Clear all
|
|
//Top
|
|
SlctdTntWrsLvl.Text = "";
|
|
SlctdTntWrdStatus.Text = "";
|
|
SlctdTntWrsPlyrs.Text = "";
|
|
//Difficulty
|
|
TntWrsDiffCombo.Text = "";
|
|
TntWrsDiffCombo.Enabled = false;
|
|
TntWrsDiffSlctBt.Enabled = false;
|
|
//scores
|
|
TntWrsScrLmtUpDwn.Value = 150;
|
|
TntWrsScrLmtUpDwn.Enabled = false;
|
|
TntWrsScrPrKlUpDwn.Value = 10;
|
|
TntWrsScrPrKlUpDwn.Enabled = false;
|
|
TntWrsAsstChck.Checked = true;
|
|
TntWrsAsstChck.Enabled = false;
|
|
TntWrsAstsScrUpDwn.Value = 5;
|
|
TntWrsAstsScrUpDwn.Enabled = false;
|
|
TntWrsMltiKlChck.Checked = true;
|
|
TntWrsMltiKlChck.Enabled = false;
|
|
TntWrsMltiKlScPrUpDown.Value = 5;
|
|
TntWrsMltiKlScPrUpDown.Enabled = false;
|
|
//Grace period
|
|
TntWrsGracePrdChck.Checked = true;
|
|
TntWrsGracePrdChck.Enabled = false;
|
|
TntWrsGraceTimeChck.Value = 30;
|
|
TntWrsGraceTimeChck.Enabled = false;
|
|
//Teams
|
|
TntWrsTmsChck.Checked = true;
|
|
TntWrsTmsChck.Enabled = false;
|
|
TntWrsBlnceTeamsChck.Checked = true;
|
|
TntWrsBlnceTeamsChck.Enabled = false;
|
|
TntWrsTKchck.Checked = false;
|
|
TntWrsTKchck.Enabled = false;
|
|
//Status
|
|
TntWrsStrtGame.Enabled = false;
|
|
TntWrsEndGame.Enabled = false;
|
|
TntWrsRstGame.Enabled = false;
|
|
TntWrsDltGame.Enabled = false;
|
|
//Other
|
|
TntWrsStreaksChck.Checked = true;
|
|
TntWrsStreaksChck.Enabled = false;
|
|
//New game
|
|
if ( TntWrsMpsList.SelectedIndex < 0 ) TntWrsCrtNwTntWrsBt.Enabled = false;
|
|
//Load lists
|
|
TntWrsMpsList.Items.Clear();
|
|
TntWarsGamesList.Items.Clear();
|
|
TntWrsDiffCombo.Items.Clear();
|
|
foreach ( Level lvl in Server.levels ) {
|
|
if ( TntWarsGame.Find(lvl) == null ) {
|
|
TntWrsMpsList.Items.Add(lvl.name);
|
|
}
|
|
else {
|
|
TntWarsGame T = TntWarsGame.Find(lvl);
|
|
string msg = lvl.name + " - ";
|
|
if ( T.GameMode == TntWarsGame.TntWarsGameMode.FFA ) msg += "FFA";
|
|
if ( T.GameMode == TntWarsGame.TntWarsGameMode.TDM ) msg += "TDM";
|
|
msg += " - ";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Easy ) msg += "(Easy)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Normal ) msg += "(Normal)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Hard ) msg += "(Hard)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Extreme ) msg += "(Extreme)";
|
|
msg += " - ";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers ) msg += "(Waiting For Players)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart ) msg += "(Starting)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod ) msg += "(Started)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress ) msg += "(In Progress)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished ) msg += "(Finished)";
|
|
TntWarsGamesList.Items.Add(msg);
|
|
}
|
|
}
|
|
TntWrsDiffCombo.Items.Add("Easy");
|
|
TntWrsDiffCombo.Items.Add("Normal");
|
|
TntWrsDiffCombo.Items.Add("Hard");
|
|
TntWrsDiffCombo.Items.Add("Extreme");
|
|
}
|
|
else {
|
|
//Load settings
|
|
//Top
|
|
SlctdTntWrsLvl.Text = TntWarsGame.GuiLoaded.lvl.name;
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers ) SlctdTntWrdStatus.Text = "Waiting For Players";
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart ) SlctdTntWrdStatus.Text = "Starting";
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod ) SlctdTntWrdStatus.Text = "Started";
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress ) SlctdTntWrdStatus.Text = "In Progress";
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.Finished ) SlctdTntWrdStatus.Text = "Finished";
|
|
SlctdTntWrsPlyrs.Text = TntWarsGame.GuiLoaded.PlayingPlayers().ToString(CultureInfo.InvariantCulture);
|
|
//Difficulty
|
|
if ( TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers ) {
|
|
TntWrsDiffCombo.Enabled = true;
|
|
TntWrsDiffSlctBt.Enabled = true;
|
|
}
|
|
else {
|
|
TntWrsDiffCombo.Enabled = false;
|
|
TntWrsDiffSlctBt.Enabled = false;
|
|
}
|
|
TntWrsDiffCombo.SelectedIndex = TntWrsDiffCombo.FindString(TntWarsGame.GuiLoaded.GameDifficulty.ToString());
|
|
//scores
|
|
TntWrsScrLmtUpDwn.Value = TntWarsGame.GuiLoaded.ScoreLimit;
|
|
TntWrsScrLmtUpDwn.Enabled = true;
|
|
TntWrsScrPrKlUpDwn.Value = TntWarsGame.GuiLoaded.ScorePerKill;
|
|
TntWrsScrPrKlUpDwn.Enabled = true;
|
|
if ( TntWarsGame.GuiLoaded.ScorePerAssist == 0 ) {
|
|
TntWrsAsstChck.Checked = false;
|
|
TntWrsAsstChck.Enabled = true;
|
|
TntWrsAstsScrUpDwn.Enabled = false;
|
|
}
|
|
else {
|
|
TntWrsAstsScrUpDwn.Value = TntWarsGame.GuiLoaded.ScorePerAssist;
|
|
TntWrsAstsScrUpDwn.Enabled = true;
|
|
TntWrsAsstChck.Checked = true;
|
|
TntWrsAsstChck.Enabled = true;
|
|
}
|
|
if ( TntWarsGame.GuiLoaded.MultiKillBonus == 0 ) {
|
|
TntWrsMltiKlChck.Checked = false;
|
|
TntWrsMltiKlChck.Enabled = true;
|
|
TntWrsMltiKlScPrUpDown.Enabled = false;
|
|
}
|
|
else {
|
|
TntWrsMltiKlScPrUpDown.Value = TntWarsGame.GuiLoaded.MultiKillBonus;
|
|
TntWrsMltiKlScPrUpDown.Enabled = true;
|
|
TntWrsMltiKlChck.Checked = true;
|
|
TntWrsMltiKlChck.Enabled = true;
|
|
}
|
|
//Grace period
|
|
TntWrsGracePrdChck.Checked = TntWarsGame.GuiLoaded.GracePeriod;
|
|
TntWrsGracePrdChck.Enabled = true;
|
|
TntWrsGraceTimeChck.Value = TntWarsGame.GuiLoaded.GracePeriodSecs;
|
|
TntWrsGraceTimeChck.Enabled = TntWarsGame.GuiLoaded.GracePeriod;
|
|
//Teams
|
|
TntWrsTmsChck.Checked = ( TntWarsGame.GuiLoaded.GameMode == TntWarsGame.TntWarsGameMode.TDM ? true : false );
|
|
TntWrsTmsChck.Enabled = true;
|
|
TntWrsBlnceTeamsChck.Checked = TntWarsGame.GuiLoaded.BalanceTeams;
|
|
TntWrsBlnceTeamsChck.Enabled = true;
|
|
TntWrsTKchck.Checked = TntWarsGame.GuiLoaded.TeamKills;
|
|
TntWrsTKchck.Enabled = true;
|
|
//Status
|
|
switch ( TntWarsGame.GuiLoaded.GameStatus ) {
|
|
case TntWarsGame.TntWarsGameStatus.WaitingForPlayers:
|
|
if ( TntWarsGame.GuiLoaded.CheckAllSetUp(null, false, false) ) TntWrsStrtGame.Enabled = true;
|
|
TntWrsEndGame.Enabled = false;
|
|
TntWrsRstGame.Enabled = false;
|
|
TntWrsDltGame.Enabled = true;
|
|
break;
|
|
|
|
case TntWarsGame.TntWarsGameStatus.AboutToStart:
|
|
case TntWarsGame.TntWarsGameStatus.GracePeriod:
|
|
case TntWarsGame.TntWarsGameStatus.InProgress:
|
|
TntWrsStrtGame.Enabled = false;
|
|
TntWrsEndGame.Enabled = true;
|
|
TntWrsRstGame.Enabled = false;
|
|
TntWrsDltGame.Enabled = false;
|
|
break;
|
|
|
|
case TntWarsGame.TntWarsGameStatus.Finished:
|
|
TntWrsStrtGame.Enabled = false;
|
|
TntWrsEndGame.Enabled = false;
|
|
TntWrsRstGame.Enabled = true;
|
|
TntWrsDltGame.Enabled = true;
|
|
break;
|
|
|
|
}
|
|
//Other
|
|
TntWrsStreaksChck.Checked = TntWarsGame.GuiLoaded.Streaks;
|
|
TntWrsStreaksChck.Enabled = true;
|
|
//New game
|
|
if ( TntWrsMpsList.SelectedIndex < 0 ) TntWrsCrtNwTntWrsBt.Enabled = false;
|
|
//Load lists
|
|
TntWrsMpsList.Items.Clear();
|
|
TntWarsGamesList.Items.Clear();
|
|
TntWrsDiffCombo.Items.Clear();
|
|
foreach ( Level lvl in Server.levels ) {
|
|
if ( TntWarsGame.Find(lvl) == null ) {
|
|
TntWrsMpsList.Items.Add(lvl.name);
|
|
}
|
|
else {
|
|
TntWarsGame T = TntWarsGame.Find(lvl);
|
|
string msg = "";
|
|
if ( T == TntWarsGame.GuiLoaded ) { msg += "--> "; }
|
|
msg += lvl.name + " - ";
|
|
if ( T.GameMode == TntWarsGame.TntWarsGameMode.FFA ) msg += "FFA";
|
|
if ( T.GameMode == TntWarsGame.TntWarsGameMode.TDM ) msg += "TDM";
|
|
msg += " - ";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Easy ) msg += "(Easy)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Normal ) msg += "(Normal)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Hard ) msg += "(Hard)";
|
|
if ( T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Extreme ) msg += "(Extreme)";
|
|
msg += " - ";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers ) msg += "(Waiting For Players)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart ) msg += "(Starting)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod ) msg += "(Started)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress ) msg += "(In Progress)";
|
|
if ( T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished ) msg += "(Finished)";
|
|
TntWarsGamesList.Items.Add(msg);
|
|
}
|
|
}
|
|
TntWrsDiffCombo.Items.Add("Easy");
|
|
TntWrsDiffCombo.Items.Add("Normal");
|
|
TntWrsDiffCombo.Items.Add("Hard");
|
|
TntWrsDiffCombo.Items.Add("Extreme");
|
|
|
|
//Disable things because game is in progress
|
|
if ( !TntWarsEditable(sender, e) ) {
|
|
//Difficulty
|
|
TntWrsDiffCombo.Enabled = false;
|
|
TntWrsDiffSlctBt.Enabled = false;
|
|
//scores
|
|
TntWrsScrLmtUpDwn.Enabled = false;
|
|
TntWrsScrPrKlUpDwn.Enabled = false;
|
|
TntWrsAsstChck.Enabled = false;
|
|
TntWrsAstsScrUpDwn.Enabled = false;
|
|
TntWrsMltiKlChck.Enabled = false;
|
|
TntWrsMltiKlScPrUpDown.Enabled = false;
|
|
//Grace period
|
|
TntWrsGracePrdChck.Enabled = false;
|
|
TntWrsGraceTimeChck.Enabled = false;
|
|
//Teams
|
|
TntWrsTmsChck.Enabled = false;
|
|
TntWrsBlnceTeamsChck.Enabled = false;
|
|
TntWrsTKchck.Enabled = false;
|
|
//Other
|
|
TntWrsStreaksChck.Enabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
private bool TntWarsEditable(object sender, EventArgs e) {
|
|
return TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers;
|
|
}
|
|
|
|
private void tabControl2_Click(object sender, EventArgs e) {
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void EditTntWarsGameBT_Click(object sender, EventArgs e) {
|
|
try {
|
|
string slctd = TntWarsGamesList.Items[TntWarsGamesList.SelectedIndex].ToString();
|
|
if ( slctd.StartsWith("-->") ) {
|
|
LoadTNTWarsTab(sender, e);
|
|
return;
|
|
}
|
|
string[] split = slctd.Split(new string[] { " - " }, StringSplitOptions.None);
|
|
TntWarsGame.GuiLoaded = TntWarsGame.Find(Level.Find(split[0]));
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
private void TntWrsMpsList_SelectedIndexChanged(object sender, EventArgs e) {
|
|
TntWrsCrtNwTntWrsBt.Enabled = TntWrsMpsList.SelectedIndex >= 0;
|
|
}
|
|
|
|
private void TntWrsCrtNwTntWrsBt_Click(object sender, EventArgs e) {
|
|
TntWarsGame it = null;
|
|
try {
|
|
it = new TntWarsGame(Level.Find(TntWrsMpsList.Items[TntWrsMpsList.SelectedIndex].ToString()));
|
|
}
|
|
catch { }
|
|
if ( it == null ) return;
|
|
TntWarsGame.GameList.Add(it);
|
|
TntWarsGame.GuiLoaded = it;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsDiffSlctBt_Click(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
switch ( TntWrsDiffCombo.Items[TntWrsDiffCombo.SelectedIndex].ToString() ) {
|
|
case "Easy":
|
|
TntWarsGame.GuiLoaded.GameDifficulty = TntWarsGame.TntWarsDifficulty.Easy;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT Wars: Changed difficulty to easy!");
|
|
if ( TntWarsGame.GuiLoaded.TeamKills == true ) {
|
|
TntWarsGame.GuiLoaded.TeamKills = false;
|
|
}
|
|
break;
|
|
|
|
case "Normal":
|
|
TntWarsGame.GuiLoaded.GameDifficulty = TntWarsGame.TntWarsDifficulty.Normal;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT Wars: Changed difficulty to normal!");
|
|
if ( TntWarsGame.GuiLoaded.TeamKills == true ) {
|
|
TntWarsGame.GuiLoaded.TeamKills = false;
|
|
}
|
|
break;
|
|
|
|
case "Hard":
|
|
TntWarsGame.GuiLoaded.GameDifficulty = TntWarsGame.TntWarsDifficulty.Hard;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT Wars: Changed difficulty to hard!");
|
|
if ( TntWarsGame.GuiLoaded.TeamKills == false ) {
|
|
TntWarsGame.GuiLoaded.TeamKills = true;
|
|
}
|
|
break;
|
|
|
|
case "Extreme":
|
|
TntWarsGame.GuiLoaded.GameDifficulty = TntWarsGame.TntWarsDifficulty.Extreme;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT Wars: Changed difficulty to extreme!");
|
|
if ( TntWarsGame.GuiLoaded.TeamKills == false ) {
|
|
TntWarsGame.GuiLoaded.TeamKills = true;
|
|
}
|
|
break;
|
|
}
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsScrLmtUpDwn_ValueChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.ScoreLimit = (int)TntWrsScrLmtUpDwn.Value;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsScrPrKlUpDwn_ValueChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.ScorePerKill = (int)TntWrsScrPrKlUpDwn.Value;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsAsstChck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
if ( TntWrsAsstChck.Checked == false ) {
|
|
TntWarsGame.GuiLoaded.ScorePerAssist = 0;
|
|
TntWrsAstsScrUpDwn.Enabled = false;
|
|
}
|
|
else {
|
|
TntWarsGame.GuiLoaded.ScorePerAssist = (int)TntWrsAstsScrUpDwn.Value;
|
|
TntWrsAstsScrUpDwn.Enabled = true;
|
|
}
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsAstsScrUpDwn_ValueChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.ScorePerAssist = (int)TntWrsAstsScrUpDwn.Value;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsMltiKlChck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
if ( TntWrsMltiKlChck.Checked == false ) {
|
|
TntWarsGame.GuiLoaded.MultiKillBonus = 0;
|
|
TntWrsMltiKlScPrUpDown.Enabled = false;
|
|
}
|
|
else {
|
|
TntWarsGame.GuiLoaded.MultiKillBonus = (int)TntWrsMltiKlScPrUpDown.Value;
|
|
TntWrsMltiKlScPrUpDown.Enabled = true;
|
|
}
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsMltiKlScPrUpDown_ValueChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.MultiKillBonus = (int)TntWrsMltiKlScPrUpDown.Value;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsGracePrdChck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.GracePeriod = TntWrsGracePrdChck.Checked;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsGraceTimeChck_ValueChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.GracePeriodSecs = (int)TntWrsGraceTimeChck.Value;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsTmsChck_CheckedChanged(object sender, EventArgs e) {
|
|
switch ( TntWrsTmsChck.Checked ) {
|
|
case true:
|
|
if ( TntWarsGame.GuiLoaded.GameMode == TntWarsGame.TntWarsGameMode.FFA ) {
|
|
TntWarsGame.GuiLoaded.GameMode = TntWarsGame.TntWarsGameMode.TDM;
|
|
foreach ( TntWarsGame.player pl in TntWarsGame.GuiLoaded.Players ) {
|
|
{
|
|
Player.SendMessage(pl.p, "TNT Wars: Changed gamemode to Team Deathmatch");
|
|
pl.Red = false;
|
|
pl.Blue = false;
|
|
if ( TntWarsGame.GuiLoaded.BlueTeam() > TntWarsGame.GuiLoaded.RedTeam() ) {
|
|
pl.Red = true;
|
|
}
|
|
else if ( TntWarsGame.GuiLoaded.RedTeam() > TntWarsGame.GuiLoaded.BlueTeam() ) {
|
|
pl.Blue = true;
|
|
}
|
|
else if ( TntWarsGame.GuiLoaded.RedScore > TntWarsGame.GuiLoaded.BlueScore ) {
|
|
pl.Blue = true;
|
|
}
|
|
else if ( TntWarsGame.GuiLoaded.BlueScore > TntWarsGame.GuiLoaded.RedScore ) {
|
|
pl.Red = true;
|
|
}
|
|
else {
|
|
pl.Red = true;
|
|
}
|
|
}
|
|
{
|
|
string mesg = pl.p.color + pl.p.name + Server.DefaultColor + " " + "is now";
|
|
if ( pl.Red ) {
|
|
mesg += " on the " + c.red + "red team";
|
|
}
|
|
if ( pl.Blue ) {
|
|
mesg += " on the " + c.blue + "blue team";
|
|
}
|
|
if ( pl.spec ) {
|
|
mesg += Server.DefaultColor + " (as a spectator)";
|
|
}
|
|
Player.GlobalMessage(mesg);
|
|
}
|
|
}
|
|
if ( TntWarsGame.GuiLoaded.ScoreLimit == TntWarsGame.Properties.DefaultFFAmaxScore ) {
|
|
TntWarsGame.GuiLoaded.ScoreLimit = TntWarsGame.Properties.DefaultTDMmaxScore;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case false:
|
|
if ( TntWarsGame.GuiLoaded.GameMode == TntWarsGame.TntWarsGameMode.TDM ) {
|
|
TntWarsGame.GuiLoaded.GameMode = TntWarsGame.TntWarsGameMode.FFA;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT Wars: Changed gamemode to Free For All");
|
|
if ( TntWarsGame.GuiLoaded.ScoreLimit == TntWarsGame.Properties.DefaultTDMmaxScore ) {
|
|
TntWarsGame.GuiLoaded.ScoreLimit = TntWarsGame.Properties.DefaultFFAmaxScore;
|
|
}
|
|
foreach ( TntWarsGame.player pl in TntWarsGame.GuiLoaded.Players ) {
|
|
pl.p.color = pl.OldColor;
|
|
pl.p.SetPrefix();
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void TntWrsBlnceTeamsChck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.BalanceTeams = TntWrsBlnceTeamsChck.Checked;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsTKchck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.TeamKills = TntWrsTKchck.Checked;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsStreaksChck_CheckedChanged(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.Streaks = TntWrsStreaksChck.Checked;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsStrtGame_Click(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
if ( TntWarsGame.GuiLoaded.PlayingPlayers() >= 2 ) {
|
|
new Thread(TntWarsGame.GuiLoaded.Start).Start();
|
|
}
|
|
else {
|
|
MessageBox.Show("Not enough players (2 or more needed!)", "More players needed!");
|
|
}
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsEndGame_Click(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
foreach ( TntWarsGame.player pl in TntWarsGame.GuiLoaded.Players ) {
|
|
pl.p.canBuild = true;
|
|
pl.p.PlayingTntWars = false;
|
|
pl.p.CurrentAmountOfTnt = 0;
|
|
}
|
|
TntWarsGame.GuiLoaded.GameStatus = TntWarsGame.TntWarsGameStatus.Finished;
|
|
TntWarsGame.GuiLoaded.SendAllPlayersMessage("TNT wars: Game has been stopped!");
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsRstGame_Click(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
TntWarsGame.GuiLoaded.GameStatus = TntWarsGame.TntWarsGameStatus.WaitingForPlayers;
|
|
Command.all.Find("restore").Use(null, TntWarsGame.GuiLoaded.BackupNumber + TntWarsGame.GuiLoaded.lvl.name);
|
|
TntWarsGame.GuiLoaded.RedScore = 0;
|
|
TntWarsGame.GuiLoaded.BlueScore = 0;
|
|
foreach ( TntWarsGame.player pl in TntWarsGame.GuiLoaded.Players ) {
|
|
pl.Score = 0;
|
|
pl.spec = false;
|
|
pl.p.TntWarsKillStreak = 0;
|
|
pl.p.TNTWarsLastKillStreakAnnounced = 0;
|
|
pl.p.CurrentAmountOfTnt = 0;
|
|
pl.p.CurrentTntGameNumber = TntWarsGame.GuiLoaded.GameNumber;
|
|
pl.p.PlayingTntWars = false;
|
|
pl.p.canBuild = true;
|
|
pl.p.TntWarsHealth = 2;
|
|
pl.p.TntWarsScoreMultiplier = 1f;
|
|
pl.p.inTNTwarsMap = true;
|
|
pl.p.HarmedBy = null;
|
|
}
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsDltGame_Click(object sender, EventArgs e) {
|
|
if ( TntWarsGame.GuiLoaded == null ) return;
|
|
foreach ( TntWarsGame.player pl in TntWarsGame.GuiLoaded.Players ) {
|
|
pl.p.CurrentTntGameNumber = -1;
|
|
Player.SendMessage(pl.p, "TNT Wars: The TNT Wars game you are currently playing has been deleted!");
|
|
pl.p.PlayingTntWars = false;
|
|
pl.p.canBuild = true;
|
|
TntWarsGame.SetTitlesAndColor(pl, true);
|
|
}
|
|
TntWarsGame.GameList.Remove(TntWarsGame.GuiLoaded);
|
|
TntWarsGame.GuiLoaded = null;
|
|
LoadTNTWarsTab(sender, e);
|
|
}
|
|
|
|
private void TntWrsDiffAboutBt_Click(object sender, EventArgs e) {
|
|
string msg = "Difficulty:";
|
|
msg += Environment.NewLine;
|
|
msg += "Easy (2 Hits to die, TNT has long delay)";
|
|
msg += Environment.NewLine;
|
|
msg += "Normal (2 Hits to die, TNT has normal delay)";
|
|
msg += Environment.NewLine;
|
|
msg += "Hard (1 Hit to die, TNT has short delay and team kills are on)";
|
|
msg += Environment.NewLine;
|
|
msg += "Extreme (1 Hit to die, TNT has short delay, big explosion and team kills are on)";
|
|
MessageBox.Show(msg, "Difficulty");
|
|
}
|
|
private void txechx_CheckedChanged(object sender, EventArgs e) {
|
|
Server.UseTextures = txechx.Checked;
|
|
}
|
|
|
|
|
|
void AutoUpdateCheckedChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
void UsebetaCheckedChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
void UsebetaClick(object sender, EventArgs e)
|
|
{
|
|
if (usebeta.Checked) {
|
|
DialogResult d = MessageBox.Show("Would you like to check for beta versions now?", "Check for updates.", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
|
|
if (d == DialogResult.Yes)
|
|
MCGalaxy_.Gui.Program.UpdateCheck();
|
|
}
|
|
}
|
|
|
|
private void buttonEco_Click(object sender, EventArgs e) {
|
|
new GUI.Eco.EconomyWindow().ShowDialog();
|
|
}
|
|
|
|
|
|
private void lstCommands_SelectedIndexChanged ( object sender, EventArgs e ) {
|
|
btnUnload.Enabled = lstCommands.SelectedIndex != -1;
|
|
}
|
|
}
|
|
} |