コード例 #1
0
ファイル: PlugIns.cs プロジェクト: viticm/pap2
		private void MessageReceived(GameServer server, IProtocol message)
		{
			switch ((ProtocolDef)message.ProtocolId)
			{
				case ProtocolDef.g2e_openfile_def:
				case ProtocolDef.g2e_seekfile_def:
				case ProtocolDef.g2e_writefile_def:
				case ProtocolDef.g2e_closefile_def:		
                case ProtocolDef.g2e_readfile_def:
					if (server.IsConnected)
					{
						IList fmTasks = server.FMTask;
						if (fmTasks.Count > 0)
						{
							FileManageTask task = (fmTasks[0] as FileManageTask);
							if (task.State == FileManageTask.TaskState.Processing || task.State == FileManageTask.TaskState.Aborting)
							{
								bool success = task.DoTask(server, message);
								if (success)
								{
									if (task.State == FileManageTask.TaskState.Completed || task.State == FileManageTask.TaskState.Stopped)
									{
										server.RemoveFMTask(0);
									}
								}
								else
								{
									server.RemoveFMTask(0);
								}
							}
						}
					}
					break;
				default:
					break;
			}
		}