/** * Wrapper and actualiser to add a realm. Does not return. * * @param ?MEMBER The member performing the action (NULL: no member) * @param string Name for the realm * @param string Name of the realm's troll * @param string Name of the jail room * @param string Text for the jail room * @param URLPATH The picture for the jail room * @param string Name of the jail house room * @param string Text for the jail house room * @param URLPATH The picture for the jail house room * @param string Name of the lobby room * @param string Text for the lobby room * @param URLPATH The picture for the lobby room * @param array List of maps (holding 'q' and 'a') for the trolls questions and answers. Must consist of indices 1 to 30. Blank entries mean 'not set'. * @param BINARY Whether the realm is private * @param boolean Whether to redirect after */ function add_realm_wrap($member_id, $name, $troll_name, $jail_name, $jail_text, $jail_pic_url, $jail_house_name, $jail_house_text, $jail_house_pic_url, $lobby_name, $lobby_text, $lobby_pic_url, $qa, $private, $redirect = true) { if ($private != 1) { $private = 0; } if ($name == '') { ocw_refresh_with_message(do_lang_tempcode('W_MISSING_NAME'), 'warn'); } if ($troll_name == '') { ocw_refresh_with_message(do_lang_tempcode('W_MISSING_TROLL_NAME'), 'warn'); } if ($jail_house_name == '') { ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn'); } if ($lobby_name == '') { ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn'); } if ($jail_name == '') { ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn'); } // Charge them if (!is_null($member_id) && !has_specific_permission($member_id, 'administer_ocworld')) { // Have they been a member long enough for a new realm? $fortnights = (time() - $GLOBALS['FORUM_DRIVER']->get_member_join_timestamp($member_id)) / (60 * 60 * 24 * 7 * 2); $made = $GLOBALS['SITE_DB']->query_value('w_realms', 'COUNT(*)', array('owner' => $member_id)); if ($fortnights < $made) { ocw_refresh_with_message(do_lang_tempcode('W_MEMBER_NOT_LONG_ENOUGH'), 'warn'); } $price = get_price('mud_realm'); if (available_points($member_id) < $price) { ocw_refresh_with_message(do_lang_tempcode('W_EXPENSIVE', integer_format($price)), 'warn'); } require_code('points2'); charge_member($member_id, $price, do_lang('W_MADE_REALM_OCWORLD', $name)); } // Find the next available $realm $temp = $GLOBALS['SITE_DB']->query_value_null_ok('w_realms', 'id'); if (is_null($temp)) { $realm = 0; // Our first realm } else { $temp = $GLOBALS['SITE_DB']->query_value('w_realms', 'MAX(id)'); $realm = $temp + 1; } add_realm($realm, $name, $troll_name, $qa, $member_id, $private); // Add realms default rooms add_room($jail_name, $realm, 0, 2, $jail_text, '', '', '', '', 0, 1, 1, 1, $jail_pic_url, $member_id, 1); // Add jail add_room($jail_house_name, $realm, 0, 1, $jail_house_text, do_lang('W_DEFAULT_JAIL_TEXT'), 'yes', do_lang('W_DEFAULT_CANCEL'), 'BRIBE', 0, 0, 1, 1, $jail_house_pic_url, $member_id, 0); // Add jailhouse add_room($lobby_name, $realm, 0, 0, $lobby_text, '', '', '', '', 0, 0, 0, 0, $lobby_pic_url, $member_id, 1); // Add lobby // Add troll $troll_id = -$realm - 1; $GLOBALS['SITE_DB']->query_insert('w_members', array('id' => $troll_id, 'location_realm' => $realm, 'location_x' => 0, 'location_y' => 0, 'banned' => 0, 'health' => 1000, 'trolled' => 0, 'lastactive' => time())); if ($redirect) { ocw_refresh_with_message(do_lang_tempcode('W_REALM_CREATED', escape_html($name), strval($realm))); } }
$choice = filter_input(INPUT_POST, "choice"); $rm_nbr = filter_input(INPUT_POST, "rm_nbr"); $rm_cap = filter_input(INPUT_POST, "rm_cap"); if ($choice == "Add") { $error_msg = ""; if (empty($rm_nbr)) { $error_msg .= "A room number is required. <BR>"; } if (empty($rm_cap)) { $error_msg .= "A capacity for the room is required. <BR>"; } if ($error_msg != "") { include "add_room.php"; exit; } else { add_room($rm_nbr, $rm_cap); } } } else { if ($action == "delete") { $id = filter_input(INPUT_GET, "id"); delete_room($id); } else { if ($action == "edit") { $rm = get_room(filter_input(INPUT_GET, "id")); include "edit_room.php"; exit; } else { if ($action == "edit_room") { $choice = filter_input(INPUT_POST, "choice"); $rm_nbr = filter_input(INPUT_POST, "rm_nbr");
function dbase_parse($cmd, $message) { global $pisql, $dbhost, $dbuser, $dbpass, $dbname; global $log; // Used by daemon global $apperr, $appmsg; // For ajax usage if (!$pisql || !$pisql->ping()) { $log->lwrite("dbase_parse:: Ping failed, making new pisql connection to server", 1); $pisql = new mysqli($dbhost, $dbuser, $dbpass, $dbname); } // If there is an error if ($pisql->connect_errno) { $log->lwrite("dbase_parse:: Failed to connect to MySQL: (" . $pisql->connect_errno . ") " . $pisql->connect_error, 1); return -1; } // For logging only if (is_array($message)) { $str = ""; foreach ($message as $key => $val) { $str .= " {" . $key . ":" . $val . "},"; } $log->lwrite("dbase_parse:: " . $cmd . ": " . $str, 1); } else { $log->lwrite("dbase_parse:: message: " . $cmd . ": " . $message, 1); } // // Depending on $cmd execute database function switch ($cmd) { // Database case "load_database": $ret = load_database(); break; // Device // Device case "load_devices": $ret = load_devices(); break; case "add_device": $ret = add_device($message); break; case "delete_device": $ret = delete_device($message); break; case "store_device": $ret = store_device($message); break; // Room // Room case "add_room": $ret = add_room($message); break; case "delete_room": $ret = delete_room($message); break; // Scene // Scene case "read_scene": $ret = load_scene($message); break; case "load_scenes": $ret = load_scenes(); break; case "add_scene": $ret = add_scene($message); break; case "delete_scene": $ret = delete_scene($message); break; case "upd_scene": $ret = upd_scene($message); break; case "store_scene": $ret = store_scene($message); break; // Timer // Timer case "add_timer": $ret = add_timer($message); break; case "delete_timer": $ret = delete_timer($message); break; case "store_timer": $ret = store_timer($message); break; // Handset // Handset case "add_handset": $ret = add_handset($message); break; case "delete_handset": $ret = delete_handset($message); break; case "store_handset": $ret = store_handset($message); break; // Weather // Weather case "add_weather": $ret = add_weather($message); break; case "delete_weather": $ret = delete_weather($message); break; // Setting // Setting case "store_setting": $ret = store_setting($message); break; default: } if ($ret >= 0) { // Prepare structure to send back to the calling ajax client (in stdout) $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'OK', 'apperr' => $apperr); $output = json_encode($send); } else { // Functions need to fill apperr themselves! $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'ERR', 'apperr' => $apperr); $output = json_encode($send); } return $output; }
} $autojoin = $_POST['autojoinvalue']; $roomname = $_POST['roomname']; if (empty($roomname)) { echo "failed, room name can not be blank"; exit; } $roomdescr = $_POST['roomdescription']; if (empty($roomdescr)) { echo "failed, room description can not be blank"; exit; } $roommessage = $_POST['welcomemessage']; if (empty($roommessage)) { echo "failed, room message can not be blank"; exit; } $results = add_room($idserver, $roomname, $roomdescr, $autojoin, $roommessage); if (strpos(strtolower($results), "fail") !== false) { echo $results; exit; } echo "Server room created successfully"; } ?> </td> </tr> </table> </body> </html>
include 'room_list.php'; break; case 'show_add_room': $error_msg = ''; $room_id = ''; $room_nbr = ''; include 'room_add.php'; break; case 'add_room': $choice = filter_input(INPUT_POST, 'choice'); $room_nbr = filter_input(INPUT_POST, 'room_nbr'); // The user either pressed Add or Cancel. // If Add, then add the room. // Otherwise, just skip down to the list redraw. if ($choice == 'Add') { add_room($room_nbr); } $roomList = get_room_list(); include 'room_list.php'; break; case 'show_modify_room': $room_id = filter_input(INPUT_GET, 'room_id'); $room = get_room($room_id); $room_nbr = $room['rm_nbr']; include 'room_modify.php'; exit; break; case 'modify_room': $choice = filter_input(INPUT_POST, 'choice'); $room_nbr = filter_input(INPUT_POST, 'room_nbr'); $room_id = filter_input(INPUT_POST, 'room_id');
function dbase_parse($cmd, $message) { // switch ($cmd) { case "add_device": $ret = add_device($message); break; case "delete_device": $ret = delete_device($message); break; case "add_room": $ret = add_room($message); break; case "delete_room": $ret = delete_room($message); break; case "add_scene": break; case "delete_scene": break; case "upd_scene": break; case "add_timer": break; case "delete_timer": break; case "store_timer": break; case "add_handset": break; case "delete_handset": break; case "store_handset": break; case "add_weather": break; case "delete_weather": break; case "store_setting": break; default: } if ($ret >= 0) { // Prepare structure to send back to the calling ajax client (in stdout) $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'OK', 'apperr' => $apperr); $output = json_encode($send); } else { // Functions need to fill apperr themselves! $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'ERR', 'apperr' => $apperr); $output = json_encode($send); } return $output; }