tickLeisteClient/website/javascript.js

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/" + Id);
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;
}
}