mirror of
https://github.com/maierfelix/POGOserver.git
synced 2026-07-03 08:41:54 -05:00
Update
- Add pokestops by dblclick on gmaps map - Added heartbeat - Added reconnect
This commit is contained in:
parent
00e2ed3fa7
commit
d5f69faed0
15
css/main.css
15
css/main.css
|
|
@ -10,6 +10,13 @@ body {
|
|||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#map {
|
||||
position: absolute;
|
||||
left: calc(50% - 400px);
|
||||
width: 800px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.view {
|
||||
letter-spacing: 0px;
|
||||
padding: 5px 25px !important;
|
||||
|
|
@ -34,6 +41,14 @@ body {
|
|||
text-align: left;
|
||||
}
|
||||
|
||||
.ping {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 10px;
|
||||
font-size: 18px;
|
||||
letter-spacing: 0px;
|
||||
}
|
||||
|
||||
.version {
|
||||
font-size: 15px;
|
||||
letter-spacing: 0px;
|
||||
|
|
|
|||
|
|
@ -9,9 +9,13 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="css/main.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/pure.min.css">
|
||||
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=X"></script>
|
||||
<script src="./gmaps.js"></script>
|
||||
</head>
|
||||
<body class="body">
|
||||
|
||||
<p class="ping area" id="server_ping" style="position: absolute;top: 0px;left: 10px; display:none;">Ping: 0ms</p>
|
||||
|
||||
<div class="area">
|
||||
<p>POGOserver</p>
|
||||
<p id="version" class="version"> </p>
|
||||
|
|
@ -30,6 +34,11 @@
|
|||
<p class="info" id="connected_players">Connected players: 0</p>
|
||||
<p class="login_area" style="padding-bottom: 15px;">World Manager</p>
|
||||
<p><button class="btn color-1 view cmd_label label">Spawn</button><input class="btn color-1 view input login_input with_label" id="spawn_user" placeholder="Username" autocomplete="new-password"></input><input class="btn color-1 view input login_input with_label" autocomplete="new-password" id="spawn_pkmn" placeholder="Pokemon"></input><button id="submit_spawn" class="btn color-1 view login_input with_label submit">Submit</button></p>
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
<div class="area" id="fort_manager" style="padding-bottom:500px;opacity:0;">
|
||||
<div id="map"></div>
|
||||
</div>
|
||||
|
||||
<script language="javascript" src="ajax.js"></script>
|
||||
|
|
|
|||
186
main.js
186
main.js
|
|
@ -1,72 +1,150 @@
|
|||
var loggedIn = false;
|
||||
var loginTimeout = null;
|
||||
(function() {
|
||||
|
||||
function setStatus(txt, color) {
|
||||
connection_status.innerHTML = txt;
|
||||
connection_status.style.color = color;
|
||||
}
|
||||
var loggedIn = false;
|
||||
var loginTimeout = null;
|
||||
|
||||
setStatus("Connecting", "yellow");
|
||||
var heartInterval = null;
|
||||
var heartTimeout = null;
|
||||
var heartTimedOut = true;
|
||||
|
||||
send({
|
||||
action: "init"
|
||||
}, function(res) {
|
||||
if (res.success) {
|
||||
setStatus("Connected!", "green");
|
||||
var map = new GMaps({
|
||||
el: "#map",
|
||||
lat: 39.18875480450959,
|
||||
lng: -96.58109955489635,
|
||||
disableDoubleClickZoom: true,
|
||||
dblclick: addFort
|
||||
});
|
||||
map.setZoom(20);
|
||||
|
||||
function addFort(e) {
|
||||
let latLng = e.latLng.toString().split(",");
|
||||
let lat = latLng[0].substring(1);
|
||||
let lng = latLng[1].substring(0, latLng[1].length - 1);
|
||||
let name = prompt("Enter fort name: ");
|
||||
let description = prompt("Enter fort description: ");
|
||||
send({
|
||||
action: "addFortToPosition",
|
||||
lat: lat,
|
||||
lng: lng,
|
||||
zoom: map.zoom,
|
||||
name: name,
|
||||
desc: description
|
||||
}, function(res) {
|
||||
console.log(res);
|
||||
});
|
||||
}
|
||||
else {
|
||||
setStatus("Connection failed!", "red");
|
||||
return void 0;
|
||||
|
||||
function setStatus(txt, color) {
|
||||
connection_status.innerHTML = txt;
|
||||
connection_status.style.color = color;
|
||||
}
|
||||
});
|
||||
|
||||
login_attempt.addEventListener("click", function() {
|
||||
|
||||
var username = login_username.value;
|
||||
var password = login_password.value;
|
||||
setStatus("Connecting", "yellow");
|
||||
|
||||
send({
|
||||
action: "login",
|
||||
username: username,
|
||||
password: password
|
||||
action: "init"
|
||||
}, function(res) {
|
||||
if (res.success) {
|
||||
login();
|
||||
setStatus("Connected!", "green");
|
||||
}
|
||||
else {
|
||||
setStatus("Login failed!", "red");
|
||||
clearTimeout(loginTimeout);
|
||||
loginTimeout = setTimeout(function() {
|
||||
setStatus("Connected!", "green");
|
||||
}, 3e3);
|
||||
setStatus("Connection failed!", "red");
|
||||
return void 0;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
login_attempt.addEventListener("click", login);
|
||||
|
||||
submit_spawn.addEventListener("click", function() {
|
||||
send({
|
||||
action: "spawnPkmnToPlayer",
|
||||
player: spawn_user.value,
|
||||
pkmn: spawn_pkmn.value
|
||||
}, function(res) {
|
||||
console.log(res);
|
||||
submit_spawn.addEventListener("click", function() {
|
||||
send({
|
||||
action: "spawnPkmnToPlayer",
|
||||
player: spawn_user.value,
|
||||
pkmn: spawn_pkmn.value
|
||||
}, function(res) {
|
||||
console.log(res);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function login() {
|
||||
loggedIn = true;
|
||||
login_area.style.display = "none";
|
||||
setStatus("Logged in!", "green");
|
||||
world_manager.style.display = "block";
|
||||
send({
|
||||
action: "getConnectedPlayers"
|
||||
}, function(res) {
|
||||
connected_players.innerHTML = "Connected players: " + res.connected_players;
|
||||
});
|
||||
send({
|
||||
action: "getServerVersion"
|
||||
}, function(res) {
|
||||
server_version.innerHTML = "Server version: v" + res.version;
|
||||
});
|
||||
}
|
||||
function login() {
|
||||
|
||||
var username = login_username.value;
|
||||
var password = login_password.value;
|
||||
|
||||
send({
|
||||
action: "login",
|
||||
username: username,
|
||||
password: password
|
||||
}, function(res) {
|
||||
if (res.success) {
|
||||
afterLogin();
|
||||
}
|
||||
else {
|
||||
setStatus("Login failed!", "red");
|
||||
clearTimeout(loginTimeout);
|
||||
loginTimeout = setTimeout(function() {
|
||||
if (loggedIn) {
|
||||
setStatus("Connected!", "green");
|
||||
}
|
||||
}, 3e3);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function afterLogin() {
|
||||
loggedIn = true;
|
||||
login_area.style.display = "none";
|
||||
setStatus("Logged in!", "green");
|
||||
world_manager.style.display = "block";
|
||||
server_ping.style.display = "block";
|
||||
fort_manager.style.opacity = 1;
|
||||
initHeartBeat();
|
||||
refreshConnectedPlayers();
|
||||
getServerVersion();
|
||||
}
|
||||
|
||||
function refreshConnectedPlayers() {
|
||||
send({
|
||||
action: "getConnectedPlayers"
|
||||
}, function(res) {
|
||||
connected_players.innerHTML = "Connected players: " + res.connected_players;
|
||||
});
|
||||
}
|
||||
|
||||
function getServerVersion() {
|
||||
send({
|
||||
action: "getServerVersion"
|
||||
}, function(res) {
|
||||
server_version.innerHTML = "Server version: v" + res.version;
|
||||
});
|
||||
}
|
||||
|
||||
function initHeartBeat() {
|
||||
clearInterval(heartInterval);
|
||||
heartInterval = setInterval(function() {
|
||||
heartTimedOut = true;
|
||||
var now = +new Date();
|
||||
heartTimeout = setTimeout(function() {
|
||||
if (heartTimedOut) {
|
||||
console.error("Heartbeat timeout!");
|
||||
loggedIn = false;
|
||||
setStatus("Reconnecting..", "yellow");
|
||||
login();
|
||||
}
|
||||
}, 5e3);
|
||||
send({
|
||||
action: "heartBeat",
|
||||
timestamp: now
|
||||
}, function(res) {
|
||||
if (res.timestamp) {
|
||||
heartTimedOut = false;
|
||||
clearTimeout(heartTimeout);
|
||||
var ping = res.timestamp - now;
|
||||
server_ping.innerHTML = "Ping: " + ping + "ms";
|
||||
refreshConnectedPlayers();
|
||||
}
|
||||
});
|
||||
}, 3e3);
|
||||
}
|
||||
|
||||
})();
|
||||
Loading…
Reference in New Issue
Block a user