/**
	 * @param int $id
	 * @return string
	 */
	public static function execute_codebot($id) {
		$id = output::escapeALL($id, true);

		// Include LIB
		require_once(LIB_DIR . DS . 'class.char_code.php');
		require_once(LIB_DIR . DS . 'class.codebot.php');

		// Get own Points
		$points_row = user_points::get(get_phpbb_info::$instance->user_id);
		$product = point_costs::get($id);

		// Check if user has exceded limit of exchange product
		if(points_exchange::getNumByUserId(get_phpbb_info::$instance->user_id, $product["id"]) > $product["aviable_count"] && $product["aviable_count"] != -1)
			return "<span class=\"code_fail\">Du kannst das nicht mehr eintauschen.</span><br><br>";

		// Check if there are enough points
		if($points_row['points_curr'] >= $product["points"] && $product["enabled"]) {
			// Remove Points
			if(user_points::update(get_phpbb_info::$instance->user_id, $product["name"], ($product["points"] * -1)) !== false) {
				$code["result"] = false;
				if($product["function"]) {
					// Run Function
					if (method_exists(__CLASS__, $product["function"]))
						$code = self::$product["function"]($id);
				} else if($product["item_id"] !== null) {
					// Add Item
					$code = codebot::addcode(get_phpbb_info::$instance->username, 0, $product["item_id"], $product["qty"]);
				}

				// Send PM
				if($code["result"] === true && $product["code"] == 1)
					get_phpbb_info::$instance->sendPM(output::getCodeMsg($product, $code["key"]), SYSTEM_USER, "Neuer Code für " . $product["name"]);
				else if($code["result"] === true)
					get_phpbb_info::$instance->sendPM(output::getPointActionsSuccess($product), SYSTEM_USER, $product["name"] . ": Aktion erfolgreich ausgeführt");

				if($code["result"] === "other")
					return $code;
				else if($code["result"] !== true) {
					// Rollback changes on points if code wasn't generated
					user_points::update(get_phpbb_info::$instance->user_id, $product["name"] . " - ROLLBACK", $product["points"]);
					return "<span class=\"code_fail\">" . $code["fail"] . "</span><br><br>";
				} else {
					if($product["code"] == 1)
						return "<span class=\"code_success\">Code wurde erfolgreich erstellt, du erhälst eine PM mit dem Code! <a href=\"ucp.php?i=pm&folder=inbox\" target=\"_blank\">-> Zum Posteingang</a></span><br><br>";
					else {
						// Add exchange product if it has limits
						if($product["aviable_count"] != -1)
							points_exchange::add(get_phpbb_info::$instance->user_id, $product["id"]);

						return "<span class=\"code_success\">Aktion erfolgreich ausgeführt!</span><br><br>";
					}
				}
			}
		} else
			return "<span class=\"code_fail\">Leider hast du dafür nicht genügend Punkte!</span><br><br>";
		return "";
	}