OSDN Git Service

ルームごとにROMできるかどうかを設定できるようにした
authorkonekoneko <jbh03215@gmail.com>
Tue, 25 Sep 2012 18:00:41 +0000 (03:00 +0900)
committerkonekoneko <jbh03215@gmail.com>
Tue, 25 Sep 2012 18:00:41 +0000 (03:00 +0900)
chatServer.js
public/scripts/chatclient.js
readme.txt

index 16ae00e..6cf9da8 100644 (file)
@@ -200,6 +200,8 @@ for(var i = 0; i < $max_room_number; i++)
                var roomconfig = {};\r
                if($rooms.IsFixedPassword(rno))\r
                        roomconfig.type = 2;\r
+               else if($rooms.IsHiddenLogFromRom(rno))\r
+                       roomconfig.type = 3;\r
                else if($rooms.IsContains(rno))\r
                        roomconfig.type = 1;\r
                else\r
@@ -551,6 +553,11 @@ function RoomInfomationCollection()
                return name == collection[rno].owner ||\r
                        name in collection[rno].authed_list;\r
        };\r
+       this.IsHiddenLogFromRom = function(rno){\r
+               if(!this.IsContains(rno))\r
+                       return false;\r
+               return collection[rno].hiddenlog;\r
+       };\r
        this.IsFixedPassword = function(rno){\r
                if(!this.IsContains(rno))\r
                        return false;\r
@@ -586,7 +593,8 @@ function RoomInfomationCollection()
        this.SetPassword = function(rno,owner,password){\r
                if(this.IsContains(rno) && \r
                        owner == collection[rno].owner &&\r
-                       !this.IsFixedPassword(rno))\r
+                       !this.IsFixedPassword(rno) &&\r
+                       !this.IsHiddenLogFromRom(rno))\r
                {\r
                        var date = new Date();\r
                        collection[rno].time = date.getTime();\r
@@ -604,7 +612,8 @@ function RoomInfomationCollection()
                        var pass = collection[rno].password;\r
                        if(pass == null)\r
                                pass = "";\r
-                       retval += rno + ":" + pass + "\r\n";\r
+                       var hiddenlog = collection[rno].hiddenlog;\r
+                       retval += rno + ":" + pass + ":" + hiddenlog + "\r\n";\r
                }\r
                return retval;\r
        };\r
@@ -650,7 +659,7 @@ function RoomInfomationCollection()
                                        var token = line.toString().replace(/(\r|\n|\r\n)/gm, "").split(":");\r
                                        if(token.length == 1)\r
                                        {\r
-                                               Add(token[0],null);\r
+                                               Add(token[0],null,false);\r
                                        }\r
                                        else if(token.length == 2)\r
                                        {\r
@@ -658,7 +667,18 @@ function RoomInfomationCollection()
                                                var pass = token[1];\r
                                                if(pass == "")\r
                                                        pass = null;\r
-                                               Add(rno, pass);\r
+                                               Add(rno, pass,false);\r
+                                       }\r
+                                       else if(token.length == 3)\r
+                                       {\r
+                                               var rno = token[0];\r
+                                               var pass = token[1];\r
+                                               if(pass == "")\r
+                                                       pass = null;\r
+                                               var hiddenlog = false;\r
+                                               if(token[2] == "true")\r
+                                                       hiddenlog = true;\r
+                                               Add(rno, pass,hiddenlog);\r
                                        }\r
                                })\r
                                .join(function(){\r
@@ -670,10 +690,11 @@ function RoomInfomationCollection()
        function Clear(){\r
                collection = {};\r
        };\r
-       function Add(rno,pass){\r
+       function Add(rno,pass,hiddenlogflag){\r
                collection[rno] = {time : null,\r
                        password : pass,\r
                        owner : null,\r
+                       hiddenlog : hiddenlogflag,\r
                        authed_list : {}};\r
                if(pass != null)\r
                        collection[rno].owner = $system_name;\r
index ab3a79e..67607c7 100644 (file)
@@ -14,6 +14,7 @@ $invaild_name_message = "名前を空欄にすることはできません";
 $free_password1 = "最初に入室する人が自由にパスワードを設定できます";  //自由パスワードメッセージ1\r
 $free_password2 = "この部屋は使用されています。パスワードを入力してください";      //自由パスワードメッセージ2\r
 $fixed_password = "この部屋にはパスワードが設定されています";      //固定パスワードルーム\r
+$hidden_log_to_rom = "この部屋ではROMできないようになっています";\r
 \r
 //ここから先は変更しないでください\r
 $prefix_filelist = "!";\r
@@ -79,6 +80,8 @@ function sendRoomInfoListerner(info)
                }\r
        }else if(info.type == 2){\r
                $("#enter_message").append($fixed_password);\r
+       }else if(info.type == 3){\r
+               $("#enter_message").append($hidden_log_to_rom);\r
        }\r
 }\r
 \r
@@ -133,6 +136,8 @@ function openPastlogEventListener()
 \r
 function pastLogEventListerner(msg)\r
 {\r
+       if(IsRomMode() && $roominfo.type != 0)\r
+               return;\r
        for(var i = 0; i < msg.length; i++)\r
                ParseMessage(msg[i]);\r
        createNameList();\r
@@ -140,6 +145,8 @@ function pastLogEventListerner(msg)
 \r
 function getMessageEventListerner(msg)\r
 {\r
+       if(IsRomMode() && $roominfo.type != 0)\r
+               return;\r
        ParseMessage(msg);\r
        createNameList();\r
        if( document.getElementById("bell").checked == true && msg.name != document.enter_form.name.value)\r
@@ -223,12 +230,6 @@ function enterEventListener()
                return;\r
        }\r
 \r
-       if($roominfo.type != 0) //サーバー側からログが送られるので一旦クリアーする\r
-       {\r
-               $("#message").empty();\r
-               $("#namelist").empty();\r
-       }\r
-\r
        $("#enter_frame").css("display","none");\r
        $("#chat_frame").css("display","block");\r
 \r
@@ -243,9 +244,16 @@ function enterEventListener()
 function quitEventListener(){\r
        $socket.json.emit("quit",{name:document.enter_form.name.value});\r
 \r
-       $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
        $("#enter_frame").css("display","block");\r
        $("#chat_frame").css("display","none");\r
+\r
+       if($roominfo.type != 0)\r
+       {\r
+               $("#message").empty();\r
+               $("#namelist").empty();\r
+       }\r
+       else\r
+               $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
 }\r
 \r
 function sidEventListener(){\r
@@ -275,6 +283,11 @@ function getErrorMessage(text)
                alert(text);\r
 }\r
 \r
+function IsRomMode()\r
+{\r
+       return $("#chat_frame").css("display") == "none";\r
+}\r
+\r
 //NameCollectionクラス\r
 function GetNameCollection(text)\r
 {\r
index fd7a32e..affb531 100644 (file)
Binary files a/readme.txt and b/readme.txt differ