/// <summary> /// 플레이어가 로딩이 끝났을때 다른 플레이어에게 플레이어 입장 소식을 알리고, 이 플레이어에게 정보를 전달합니다. /// </summary> public override void Start() { base.Start(); // 해당 유저에게도 월드에 있는 다른 오브젝트 표시 foreach (GameObject item in GameObject.Items.Values) { if (item != this) { JObject json = item.InfoData(); json["type"] = NetworkProtocol.NewObject; socket.Send(json); } } // 인벤토리 로드 MysqlNode node = new MysqlNode(private_data.mysqlOption, "SELECT * FROM inventory_items WHERE student_id=?id"); node["id"] = ID; using (node.ExecuteReader()) { while (node.Read()) { JObject item = new JObject(); item["type"] = NetworkProtocol.Inventory_Add; item["no"] = node.GetInt("file_no"); item["size"] = node.GetInt("size"); item["name"] = node.GetString("name"); item["date"] = node.GetDateTime("date"); item["owner"] = node.GetString("owner"); socket.Send(item); } } // 과제 정보 로드 node = new MysqlNode(private_data.mysqlOption, "SELECT takes_course.course_no, title, end_date FROM takes_course JOIN homework_list ON takes_course.course_no=homework_list.course_no WHERE student_id=?id and DATE(NOW()) <= DATE(end_date)"); node["id"] = ID; using (node.ExecuteReader()) { while (node.Read()) { NetworkMessageList.AddHomework(socket, GachonObjects.AllClass[node.GetString("course_no")].Title, node.GetString("title"), node.GetDateTime("end_date")); } } NetworkMessageList.TipMessage(socket, "가천 빌리지에 오신것을 환영합니다!"); ToChatMessage("가천 빌리지에 오신것을 환영합니다!", ChatType.Notice); int NewMessage = PostSystem.GetNewMessageCount(ID); if (NewMessage > 0) { ToChatMessage("[우편함] " + NewMessage + "개의 읽지 않은 우편이 존재합니다!", ChatType.System); } }
/// <summary> /// 가천 라이브러리에서 새로운 게시글이 올라오면 이 함수를 이벤트로 실행시킵니다. /// </summary> /// <param name="gclass">게시글이 올라온 강의</param> /// <param name="postItem">게시글</param> public static void NewPost(GachonClass gclass, PostItem postItem) { MysqlNode node = new MysqlNode(private_data.mysqlOption, "SELECT * FROM keyword"); JArray array = new JArray(); string ignore_id = ""; using (node.ExecuteReader()) { while (node.Read()) { if (ignore_id == node.GetString("student_id")) { continue; } string keyword = node.GetString("keyword"); if (CheckValid(keyword, gclass.Title, postItem.Title)) { ignore_id = node.GetString("student_id"); PostSystem.SendPost( string.Format("[{0}] 새로운 게시글 등록", gclass.Title), string.Format("[게시글 정보]\r\n{0} - {1}\r\n\r\n{2}\r\n\r\nURL : {3}", postItem.Title, postItem.Publisher, postItem.Content, postItem.url), "admin_keyword", ignore_id , false); ESocket socket = GachonSocket.GetOnlineUser(ignore_id); if (socket != null) { if (User.Items.ContainsKey(socket)) { User.Items[socket].ToChatMessage("[" + gclass.Title + "] 에 새로운 게시글이 등록되었습니다.", ChatType.System); if (postItem.posttype == BoardType.PostType.Homework) { NetworkMessageList.AddHomework(socket, gclass.Title, postItem.Title, postItem.e_time); } } } } } } }