175 lines
7.4 KiB
JavaScript
175 lines
7.4 KiB
JavaScript
let addButton = document.getElementById("a");
|
|
let deleteButton = document.getElementById("b");
|
|
let changeTickButton = document.getElementById("c");
|
|
let changeIdButton = document.getElementById("d");
|
|
let reloadButton = document.getElementById("e");
|
|
var players = [];
|
|
let Id = Math.floor(Math.random()*10000000000000000).toString(16)
|
|
var ws = new WebSocket("ws:10.9.1.129:8080/tickLeistenID" );
|
|
document.getElementById("p4").innerHTML = "" + Id;
|
|
|
|
|
|
/* Handles Events from Server */
|
|
ws.onmessage = function(evt){
|
|
var msg = evt.data;
|
|
var obj = JSON.parse(msg);
|
|
var valid = false;
|
|
|
|
/*Changes Tick of one Player in players. Updates the Playerlist and current Player.*/
|
|
if (obj.eventType == "SetPlayerTickE") {
|
|
valid = true;
|
|
for (i = 0; i < players.length; i++){
|
|
if (players[i].UUID == obj.playerUUID){
|
|
players[i].Tick = obj.tick.tickValue;
|
|
}
|
|
}
|
|
PlayerList();
|
|
CurrentPlayer();
|
|
}
|
|
/*Adds Player and their Tick to players. Updates the Playerlist and current Player.*/
|
|
if (obj.eventType == "AddPlayerTickE") {
|
|
valid = true;
|
|
var newPlayer = new Object ();
|
|
newPlayer.Name = obj.playerName;
|
|
newPlayer.UUID = obj.playerUUID;
|
|
if (obj.tick.tickType == "Tick"){
|
|
newPlayer.Tick = obj.tick.tickValue;
|
|
}
|
|
else {
|
|
newPlayer.Tick = tickType;
|
|
}
|
|
players.push(newPlayer);
|
|
PlayerList();
|
|
CurrentPlayer();
|
|
}
|
|
/*Adds players an their Ticks to players. Updates the Playerlist and current Player.*/
|
|
if (obj.eventType == "InitializeTickLeisteE") {
|
|
valid = true;
|
|
players = [];
|
|
for (i = 0; i<obj.tickLeiste.length;i++){
|
|
for (j =0;j<obj.tickLeiste[i][1].length;j++ ){
|
|
players.push({Tick: obj.tickLeiste[i][0].tickValue, UUID: obj.tickLeiste[i][1][j][0], Name: obj.tickLeiste[i][1][j][1]});
|
|
}
|
|
}
|
|
PlayerList();
|
|
CurrentPlayer();
|
|
|
|
}
|
|
/*Changes the Name of a Player in players. Updates the Playerlist and current Player*/
|
|
if (obj.eventType == "ChangeNameE") {
|
|
valid = true;
|
|
for (i = 0; i < players.length; i++){
|
|
if (players[i].UUID == obj.playerUUID){
|
|
players[i].Name = obj.playerName;
|
|
}
|
|
}
|
|
PlayerList();
|
|
CurrentPlayer();
|
|
}
|
|
/*Removes one Player from players. Updates the Playerlist and current Player*/
|
|
if (obj.eventType == "RemovePlayerE") {
|
|
valid = true;
|
|
for (i = 0; i < players.length; i++){
|
|
if (players[i].UUID == obj.playerUUID){
|
|
players.splice(i,1);
|
|
}
|
|
}
|
|
PlayerList();
|
|
CurrentPlayer();
|
|
}
|
|
/*If no eventType was recognized, an error is thrown.*/
|
|
if (valid == false) {
|
|
console.error('Invalid Event received');
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*When the Button is clicked, a AddPlayerTickR request is send to the server.*/
|
|
addButton.onclick = function() {
|
|
var type = "";
|
|
if (document.getElementById("A2").value == "Abwarten") {
|
|
type = "Abwarten";
|
|
}
|
|
if (document.getElementById("A2").value == "Bereithalten") {
|
|
type = "Bereithalten";
|
|
}
|
|
else {
|
|
type = "Tick";
|
|
}
|
|
ws.send('{"requestType" : "AddPlayerTickR", "playerName" : "' + document.getElementById("A1").value + '" , "tick" : {"tickType" : "' + type + '", "tickValue" : ' + document.getElementById("A2").value + '}}');
|
|
}
|
|
|
|
/*When the Button is clicked, a RemovePlayerR request is send to the server.*/
|
|
deleteButton.onclick = function() {
|
|
var UUID = "";
|
|
for (i = 0; i < players.length; i++){
|
|
if (players[i].Name == document.getElementById("B").value){
|
|
UUID = players[i].UUID;
|
|
}
|
|
}
|
|
ws.send('{"requestType" : "RemovePlayerR", "playerUUID" : "' + UUID + '"}');
|
|
}
|
|
|
|
/*When the Button is clicked, a SetPlayerTickR request is send to the server*/
|
|
changeTickButton.onclick = function() {
|
|
var UUID = "";
|
|
var Tick = document.getElementById("C2").value;
|
|
var type = "";
|
|
for (i = 0; i < players.length; i++){
|
|
if (players[i].Name == document.getElementById("C1").value){
|
|
UUID = players[i].UUID;
|
|
if (players[i].tick == "Abwarten" || players[i].tick == "Bereithalten"){
|
|
type = players[i].Tick;
|
|
}
|
|
else {
|
|
type = "Tick";
|
|
}
|
|
}
|
|
}
|
|
console.log(Tick);
|
|
console.log('{"requestType" : "SetPlayerTickR", "playerUUID" : "' + UUID + '", "tick" : {"tickType" : "' + type + '", "tickValue" : ' + Tick + '}}');
|
|
ws.send('{"requestType" : "SetPlayerTickR", "playerUUID" : "' + UUID + '", "tick" : {"tickType" : "' + type + '", "tickValue" : ' + Tick + '}}');
|
|
}
|
|
|
|
/*When the Button is clicked, a new WebSocket connection is opened with the new ID*/
|
|
changeIdButton.onclick = function() {
|
|
Id = document.getElementById("D").value;
|
|
ws.close();
|
|
ws = new WebSocket("ws:10.9.1.129:8080/" + Id);
|
|
document.getElementById("p4").innerHTML = "" + Id;
|
|
}
|
|
|
|
/*When the Button is clicked, a TickLeisteR request is send to the server.*/
|
|
reloadButton.onclick = function() {
|
|
ws.send('{"requestType" : "TickLeisteR"}');
|
|
}
|
|
|
|
|
|
/*Updates the Playerlist according to the content of players.*/
|
|
function PlayerList(){
|
|
var content = "";
|
|
for (i = 0; i < players.length; i++){
|
|
content = content + players[i].Name + " " + players[i].Tick + "<br>";
|
|
}
|
|
document.getElementById("p3").innerHTML = content;
|
|
}
|
|
|
|
/*Updates the current Player according to the Player with the smallest Tick in players.*/
|
|
function CurrentPlayer(){
|
|
var curr = "-";
|
|
var smallest = Infinity;
|
|
for (i = 0; i < players.length; i++){
|
|
if (parseInt(players[i].Tick) < smallest){
|
|
smallest = parseInt(players[i].Tick);
|
|
curr = players[i].Name;
|
|
}
|
|
}
|
|
if (smallest != Infinity){
|
|
document.getElementById("p2").innerHTML = curr;
|
|
document.getElementById("p1").innerHTML = "" + smallest;
|
|
}
|
|
}
|
|
|
|
|
|
|