|
@@ -1,17 +1,13 @@
|
|
|
-/* TODO
|
|
|
-msg.prefix(name
|
|
|
-übersetzen
|
|
|
-*/
|
|
|
-
|
|
|
event.load("custom_command");
|
|
|
event.load("player_logout");
|
|
|
+
|
|
|
prefix = "§2Ticket";
|
|
|
pling_sound = sound.get("minecraft:block.note_block.pling");
|
|
|
sound_category_ambient = sound.getCategory("ambient");
|
|
|
|
|
|
//Ticket-Array: ticket[helpneeder][message][solver][ticketid]
|
|
|
-freetickets = list.new(); //Liste mit allen offenen Tickets (Arrays)
|
|
|
-solvingtickets = list.new(); //Liste mit Tickets in Bearbeitung (Arrays)
|
|
|
+free_tickets = list.new(); //list with all outstanding ticket_arrays
|
|
|
+process_tickets = list.new(); //list with all process ticket_arrays
|
|
|
ticketcounter = 0;
|
|
|
|
|
|
msg("dev", "§bTicketsystem §rwurde geladen");
|
|
@@ -26,236 +22,224 @@ if(command == "ticket") {
|
|
|
size = list.getSize(args);
|
|
|
if(size == 0) {
|
|
|
@tickethelp
|
|
|
- msg(player, "§2Ticket §r/ticket...");
|
|
|
- msg(player, "§2 - new <nachricht> §rErstellt ein Ticket");
|
|
|
- msg(player, "§2 - stop <ticketid> §rZieht das Ticket zurück");
|
|
|
- if(issupporter(player)) {
|
|
|
- msg(player, "§2 - list §rZeigt alle offenen Tickets an");
|
|
|
- msg(player, "§2 - get [ticketid] §rGibt dir das nächste bzw. ein bestimmtes Ticket");
|
|
|
- msg(player, "§2 - end <ticketid> §rBeendet ein Ticket");
|
|
|
- msg(player, "§2 - free <ticketid> §rGibt ein Ticket für den nächsten Supporter frei");
|
|
|
- msg(player, "§2 - report <ticketid> §rSendet eine Mail an marvinius mit dem Ticketinhalt");
|
|
|
+ msg.prefix(player, prefix, "/ticket...");
|
|
|
+ msg(player, "§2 - new <message> §rCreate a ticket");
|
|
|
+ msg(player, "§2 - stop <ticketid> §rCancel a ticket");
|
|
|
+ if(isSupporter(player)) {
|
|
|
+ msg(player, "§2 - list §rShows all outstanding tickets");
|
|
|
+ msg(player, "§2 - get [ticketid] §rTake a ticket");
|
|
|
+ msg(player, "§2 - end <ticketid> §rFinish a ticket");
|
|
|
+ msg(player, "§2 - free <ticketid> §rRelease a ticket for the next supporter");
|
|
|
+ msg(player, "§2 - report <ticketid> §rReport a ticket to marvinius");
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
|
- arg0 = list.getIndex(args, 0);
|
|
|
+ arg0 = text.toLowerCase(list.getIndex(args, 0));
|
|
|
if(arg0 == "list") {
|
|
|
if(size != 1) {
|
|
|
msg.prefix(player, prefix, "§a/ticket list");
|
|
|
- } else {
|
|
|
- if(!issupporter(player)) {
|
|
|
- msg.prefix(player, prefix, "Du bist kein Supporter");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- sizefreetickets = list.getSize(freetickets);
|
|
|
- sizesolvingtickets = list.getSize(solvingtickets);
|
|
|
- if(sizefreetickets == 0 && sizesolvingtickets == 0) {
|
|
|
- msg.prefix(player, prefix, "§rAktuell gibt es keine Tickets");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- msg.prefix(player, prefix, concat("§rTickets: ", text.number(sizefreetickets + sizesolvingtickets), " davon offen: ", text.number(sizefreetickets)));
|
|
|
- //msg.prefix(player, prefix, "§rTickets in Bearbeitung: ", list.getSize(solvingtickets));
|
|
|
- //msg.prefix(player, prefix, "§rOffene Tickets: ", sizefreetickets);
|
|
|
- for(i = 0; i <= sizefreetickets - 1; i++) {
|
|
|
- ticket = list.getIndex(freetickets, i);
|
|
|
- msg(player, "ID ", text.number(getTicketID(ticket)), " / ", player.getNameFromId(getHelpneeder(ticket)), " / ", getMessage(ticket));
|
|
|
- }
|
|
|
- msg(player, "---------");
|
|
|
- for(i = 0; i <= sizesolvingtickets - 1; i++) {
|
|
|
- ticket = list.getIndex(solvingtickets, i);
|
|
|
- msg(player, "ID ", text.number(getTicketID(ticket)), " / ", player.getNameFromId(getHelpneeder(ticket)), " --> ", player.getNameFromId(getSolver(ticket)), " / ", getMessage(ticket));
|
|
|
- }
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(!isSupporter(player)) {
|
|
|
+ msg.prefix(player, prefix, "You are not a supporter.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ amount_free_tickets = list.getSize(free_tickets);
|
|
|
+ amount_process_tickets = list.getSize(process_tickets);
|
|
|
+ if(amount_free_tickets == 0 && amount_process_tickets == 0) {
|
|
|
+ msg.prefix(player, prefix, "There are no outstanding tickets.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ msg.prefix(player, prefix, concat("§rTickets: ", text.number(amount_free_tickets + amount_process_tickets), " thereof outstanding: ", text.number(amount_free_tickets)));
|
|
|
+ for(i = 0; i < amount_free_tickets; i++) {
|
|
|
+ ticket = list.getIndex(free_tickets, i);
|
|
|
+ msg(player, "ID ", text.number(ticket.getId(ticket)), " / ", player.getNameFromId(ticket.getHelpNeeder(ticket)), " / ", ticket.getMessage(ticket));
|
|
|
+ }
|
|
|
+ msg(player, "---------");
|
|
|
+ for(i = 0; i < amount_process_tickets; i++) {
|
|
|
+ ticket = list.getIndex(process_tickets, i);
|
|
|
+ msg(player, "ID ", text.number(ticket.getId(ticket)), " / ", player.getNameFromId(ticket.getHelpNeeder(ticket)), " --> ", player.getNameFromId(ticket.getSolver(ticket)), " / ", ticket.getMessage(ticket));
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
|
if(arg0 == "get") {
|
|
|
if(size < 1 || size > 2) {
|
|
|
msg.prefix(player, prefix, "§a/ticket get [ticketid]");
|
|
|
- } else {
|
|
|
- if(!issupporter(player)) {
|
|
|
- msg.prefix(player, prefix, "Du bist kein Supporter");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- team_player_id = player.getId(player);
|
|
|
- if(size == 1) {
|
|
|
- if(list.getSize(freetickets) == 0) {
|
|
|
- msg.prefix(player, prefix, "§rAktuell gibt es keine offenen Tickets");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- ticket = list.getIndex(freetickets, 0);
|
|
|
- } else {
|
|
|
- ticketid = list.getIndex(args, 1);
|
|
|
- if(!isDouble(ticketid)) {
|
|
|
- msg.prefix(player, prefix, "Zahl erwartet");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- ticket = getTicketFromID(ticketid);
|
|
|
- if(ticket == null || !list.contains(freetickets, ticket)) {
|
|
|
- msg.prefix(player, prefix, "Dieses Ticket ist nicht aktiv");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- }
|
|
|
- player_id = getHelpneeder(ticket);
|
|
|
- pname = player.getNameFromId(player_id);
|
|
|
- p = read.player(pname);
|
|
|
- nachricht = getMessage(ticket);
|
|
|
- list.remove(freetickets, ticket);
|
|
|
- list.add(solvingtickets, ticket);
|
|
|
- team_player_id = player.getId(player);
|
|
|
- setSolver(ticket, team_player_id);
|
|
|
- msg.prefix(p, prefix, concat("§r", player_name, " kümmert sich um dein Ticket: §a", nachricht));
|
|
|
- msg.prefix(player, prefix, concat("§rDu kümmerst dich um das Ticket von ", pname, ": §a", nachricht));
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(arg0 == "end") {
|
|
|
- if(size != 2) {
|
|
|
- msg.prefix(player, prefix, "§a/ticket end <ticketid>");
|
|
|
- } else {
|
|
|
- if(!issupporter(player)) {
|
|
|
- msg.prefix(player, prefix, "Du bist kein Supporter");
|
|
|
+ if(!isSupporter(player)) {
|
|
|
+ msg.prefix(player, prefix, "You are not a supporter.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ team_player_id = player.getId(player);
|
|
|
+ if(size == 1) {
|
|
|
+ if(list.getSize(free_tickets) == 0) {
|
|
|
+ msg.prefix(player, prefix, "There are no outstanding tickets.");
|
|
|
goto("wait");
|
|
|
}
|
|
|
+ ticket = list.getIndex(free_tickets, 0);
|
|
|
+ } else {
|
|
|
ticketid = list.getIndex(args, 1);
|
|
|
if(!isDouble(ticketid)) {
|
|
|
- msg.prefix(player, prefix, "Zahl erwartet");
|
|
|
+ msg.prefix(player, prefix, "Number expected.");
|
|
|
goto("wait");
|
|
|
}
|
|
|
- team_player_id = player.getId(player);
|
|
|
- ticket = getTicketFromID(ticketid);
|
|
|
+ ticket = ticket.getFromID(ticketid);
|
|
|
if(ticket == null) {
|
|
|
- msg.prefix(player, prefix, "Dieses Ticket ist nicht aktiv");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(getSolver(ticket) != team_player_id) {
|
|
|
- msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
+ msg.prefix(player, prefix, "Not an active ticket.");
|
|
|
goto("wait");
|
|
|
}
|
|
|
- player_id = getHelpneeder(ticket);
|
|
|
- list.remove(solvingtickets, ticket);
|
|
|
- msg.prefix(player.getNameFromId(player_id), prefix, "§rDein Ticket wurde fertig bearbeitet");
|
|
|
- msg.prefix(player, prefix, "§rDu hast das Ticket fertig bearbeitet");
|
|
|
}
|
|
|
+ player_id = ticket.getHelpNeeder(ticket);
|
|
|
+ p_name = player.getNameFromId(player_id);
|
|
|
+ p = read.player(p_name);
|
|
|
+ message = ticket.getMessage(ticket);
|
|
|
+ list.remove(free_tickets, ticket);
|
|
|
+ list.add(process_tickets, ticket);
|
|
|
+ team_player_id = player.getId(player);
|
|
|
+ ticket.setSolver(ticket, team_player_id);
|
|
|
+ msg.prefix(p, prefix, concat("§r", player.getName(player), " takes care of your ticket: §a", message));
|
|
|
+ msg.prefix(player, prefix, concat("§rYou takes care of the ticket of ", p_name, ": §a", message));
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(arg0 == "end") {
|
|
|
+ if(size != 2) {
|
|
|
+ msg.prefix(player, prefix, "§a/ticket end <ticketid>");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(!isSupporter(player)) {
|
|
|
+ msg.prefix(player, prefix, "You are not a supporter.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticketid = list.getIndex(args, 1);
|
|
|
+ if(!isDouble(ticketid)) {
|
|
|
+ msg.prefix(player, prefix, "Number expected.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ team_player_id = player.getId(player);
|
|
|
+ ticket = ticket.getFromID(ticketid);
|
|
|
+ if(ticket == null) {
|
|
|
+ msg.prefix(player, prefix, "Not an active ticket.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(ticket.getSolver(ticket) != team_player_id) {
|
|
|
+ msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ player_id = ticket.getHelpNeeder(ticket);
|
|
|
+ list.remove(process_tickets, ticket);
|
|
|
+ msg.prefix(player.getNameFromId(player_id), prefix, "§rDein Ticket wurde fertig bearbeitet");
|
|
|
+ msg.prefix(player, prefix, "§rDu hast das Ticket fertig bearbeitet");
|
|
|
goto("wait");
|
|
|
}
|
|
|
if(arg0 == "free") {
|
|
|
if(size != 2) {
|
|
|
msg.prefix(player, prefix, "§a/ticket free <ticketid>");
|
|
|
- } else {
|
|
|
- if(!issupporter(player)) {
|
|
|
- msg.prefix(player, prefix, "Du bist kein Supporter");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- ticketid = list.getIndex(args, 1);
|
|
|
- if(!isDouble(ticketid)) {
|
|
|
- msg.prefix(player, prefix, "Zahl erwartet");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- team_player_id = player.getId(player);
|
|
|
- ticket = getTicketFromID(ticketid);
|
|
|
- if(ticket == null) {
|
|
|
- msg.prefix(player, prefix, "Dieses Ticket ist nicht aktiv");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(getSolver(ticket) != team_player_id) {
|
|
|
- msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- freeticket(ticket);
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(!isSupporter(player)) {
|
|
|
+ msg.prefix(player, prefix, "You are not a supporter.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticketid = list.getIndex(args, 1);
|
|
|
+ if(!isDouble(ticketid)) {
|
|
|
+ msg.prefix(player, prefix, "Number expected.");
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
+ team_player_id = player.getId(player);
|
|
|
+ ticket = ticket.getFromID(ticketid);
|
|
|
+ if(ticket == null) {
|
|
|
+ msg.prefix(player, prefix, "Not an active ticket.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(ticket.getSolver(ticket) != team_player_id) {
|
|
|
+ msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticket.free(ticket, player);
|
|
|
goto("wait");
|
|
|
}
|
|
|
if(arg0 == "report") {
|
|
|
if(size != 2) {
|
|
|
msg.prefix(player, prefix, "§a/ticket report <ticketid>");
|
|
|
- } else {
|
|
|
- if(!issupporter(player)) {
|
|
|
- msg.prefix(player, prefix, "Du bist kein Supporter");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- ticketid = list.getIndex(args, 1);
|
|
|
- if(!isDouble(ticketid)) {
|
|
|
- msg.prefix(player, prefix, "Zahl erwartet");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- team_player_id = player.getId(player);
|
|
|
- ticket = getTicketFromID(ticketid);
|
|
|
- if(ticket == null) {
|
|
|
- msg.prefix(player, prefix, "Dieses Ticket ist nicht aktiv");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(getSolver(ticket) != team_player_id) {
|
|
|
- msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- team_player_id = player.getId(player);
|
|
|
- player_id = getHelpneeder(ticket);
|
|
|
- name = player.getNameFromId(player_id);
|
|
|
- nachricht = getMessage(ticket);
|
|
|
- msg.prefix(name, prefix, "§rDein Ticket wurde reportet");
|
|
|
- msg.prefix(player, prefix, "§rDu hast das Ticket reportet");
|
|
|
- list.remove(solvingtickets, ticket);
|
|
|
- mail.send(player.getName(player), "marvinius", concat("Ticket Report: ", name, " / ", nachricht));
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(!isSupporter(player)) {
|
|
|
+ msg.prefix(player, prefix, "You are not a supporter.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticketid = list.getIndex(args, 1);
|
|
|
+ if(!isDouble(ticketid)) {
|
|
|
+ msg.prefix(player, prefix, "Number expected.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ team_player_id = player.getId(player);
|
|
|
+ ticket = ticket.getFromID(ticketid);
|
|
|
+ if(ticket == null) {
|
|
|
+ msg.prefix(player, prefix, "Not an active ticket.");
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
+ if(ticket.getSolver(ticket) != team_player_id) {
|
|
|
+ msg.prefix(player, prefix, "Du löst dieses Ticket nicht");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ player_id = ticket.getHelpNeeder(ticket);
|
|
|
+ name = player.getNameFromId(player_id);
|
|
|
+ message = ticket.getMessage(ticket);
|
|
|
+ msg.send(player, name, prefix, "Your ticket got reported.", false);
|
|
|
+ msg.prefix(player, prefix, "You reported the ticket.");
|
|
|
+ list.remove(process_tickets, ticket);
|
|
|
+ mail.send(player.getName(player), "marvinius", concat("Ticket Report: ", name, " / ", message));
|
|
|
goto("wait");
|
|
|
}
|
|
|
if(arg0 == "stop") {
|
|
|
if(size != 2) {
|
|
|
msg.prefix(player, prefix, "§a/ticket stop <ticketid>");
|
|
|
- } else {
|
|
|
- ticketid = list.getIndex(args, 1);
|
|
|
- if(!isDouble(ticketid)) {
|
|
|
- msg.prefix(player, prefix, "Zahl erwartet");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- ticket = getTicketFromID(ticketid);
|
|
|
- if(ticket == null) {
|
|
|
- msg.prefix(player, prefix, "§rDu hast das Ticket nicht erstellt");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(!hasticketcreated(player_id, ticket)) {
|
|
|
- msg.prefix(player, prefix, "§rDu hast das Ticket nicht erstellt");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- if(stopticket(ticket)) {
|
|
|
- msg.prefix(player, prefix, "§rDein Ticket wurde aufgelöst");
|
|
|
- team_player_id = getSolver(ticket);
|
|
|
- if(team_player_id != null) {
|
|
|
- msg.prefix(player.getNameFromId(team_player_id), prefix, concat("§rDas Ticket von ", player_name, " wurde aufgelöst"));
|
|
|
- }
|
|
|
- } else {
|
|
|
- msg.prefix(player, prefix, "§rDas Ticket existiert nicht");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticketid = list.getIndex(args, 1);
|
|
|
+ if(!isDouble(ticketid)) {
|
|
|
+ msg.prefix(player, prefix, "Number expected.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ ticket = ticket.getFromID(ticketid);
|
|
|
+ if(ticket == null) {
|
|
|
+ msg.prefix(player, prefix, "§rDu hast das Ticket nicht erstellt");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(!hasTicketCreated(player_id, ticket)) {
|
|
|
+ msg.prefix(player, prefix, "§rDu hast das Ticket nicht erstellt");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(ticket.stop(ticket)) {
|
|
|
+ msg.prefix(player, prefix, "§rDein Ticket wurde aufgelöst");
|
|
|
+ team_player_id = ticket.getSolver(ticket);
|
|
|
+ if(team_player_id != null) {
|
|
|
+ msg.prefix(player.getNameFromId(team_player_id), prefix, concat("§rDas Ticket von ", player.getName(player), " wurde aufgelöst"));
|
|
|
}
|
|
|
+ } else {
|
|
|
+ msg.prefix(player, prefix, "§rDas Ticket existiert nicht");
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
|
if(arg0 == "new") {
|
|
|
if(size < 2) {
|
|
|
- msg.prefix(player, prefix, "§a/ticket new <nachricht>");
|
|
|
- } else {
|
|
|
- //checkforteamler
|
|
|
- online = players.toList();
|
|
|
- teamlers = list.new();
|
|
|
- for(i = 0; i <= list.getSize(online) - 1; i++) {
|
|
|
- p = list.getIndex(online, i);
|
|
|
- if(issupporter(p)) {
|
|
|
- list.add(teamlers, p);
|
|
|
- }
|
|
|
- }
|
|
|
- if(list.getSize(teamlers) == 0) {
|
|
|
- msg.prefix(player, prefix, "§rIm Moment steht kein Teamler zur Verfügung");
|
|
|
- goto("wait");
|
|
|
- }
|
|
|
- nachricht = concatList(args, " ", 1, size - 1);
|
|
|
- player_id = player.getId(player);
|
|
|
- createticket(player_id, nachricht);
|
|
|
- msg.prefix(player, prefix, concat("§rDas Ticket wurde eingereicht #ID:", text.number(ticketcounter)));
|
|
|
- for(i = 0; i <= list.getSize(teamlers) - 1; i++) {
|
|
|
- p = list.getIndex(teamlers, i);
|
|
|
- msg.prefix(p, prefix, concat("§r", player_name, " hat ein Ticket eingereicht: §a", nachricht));
|
|
|
- msg.prefix(p, prefix, concat("§rOffene Tickets: ", text.number(list.getSize(freetickets))));
|
|
|
- sound.spawnForPlayer(p, pling_sound, sound_category_ambient);
|
|
|
- }
|
|
|
+ msg.prefix(player, prefix, "§a/ticket new <message>");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ teamlers = getAvailableSupporters();
|
|
|
+ if(list.getSize(teamlers) == 0) {
|
|
|
+ msg.prefix(player, prefix, "There is no supporter available.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ message = concatList(args, " ", 1, size - 1);
|
|
|
+ ticket.create(player, message);
|
|
|
+ msg.prefix(player, prefix, concat("§rDas Ticket wurde eingereicht #ID:", text.number(ticketcounter)));
|
|
|
+ for(i = 0; i < list.getSize(teamlers); i++) {
|
|
|
+ p = list.getIndex(teamlers, i);
|
|
|
+ msg.prefix(p, prefix, concat("§r", player.getName(player), " hat ein Ticket eingereicht: §a", message));
|
|
|
+ msg.prefix(p, prefix, concat("§rOffene Tickets: ", text.number(list.getSize(free_tickets))));
|
|
|
+ sound.spawnForPlayer(p, pling_sound, sound_category_ambient);
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
@@ -265,133 +249,122 @@ goto("wait");
|
|
|
|
|
|
@player_logout
|
|
|
player_id = player.getId(player);
|
|
|
-if(issupporter(player)) {
|
|
|
+if(isSupporter(player)) {
|
|
|
//Liste mit Tickets in Bearbeitung durchlaufen und jeden Array auf den Solver checken
|
|
|
- for(i = 0; i <= list.getSize($solvingtickets) - 1; i++) {
|
|
|
- ticket = list.getIndex($solvingtickets, i);
|
|
|
- if(getSolver(ticket) == player_id) {
|
|
|
- freeticket(ticket);
|
|
|
+ for(i = 0; i < list.getSize($process_tickets); i++) {
|
|
|
+ ticket = list.getIndex($process_tickets, i);
|
|
|
+ if(ticket.getSolver(ticket) == player_id) {
|
|
|
+ ticket.free(ticket, player);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
//Beide Ticket-Listen durchlaufen und jeden Array auf den Helpneeder checken
|
|
|
- for(i = 0; i <= list.getSize($freetickets) - 1; i++) {
|
|
|
- ticket = list.getIndex($freetickets, i);
|
|
|
- if(getHelpneeder(ticket) == player_id) {
|
|
|
- stopticket(ticket);
|
|
|
+ for(i = 0; i < list.getSize($free_tickets); i++) {
|
|
|
+ ticket = list.getIndex($free_tickets, i);
|
|
|
+ if(ticket.getHelpNeeder(ticket) == player_id) {
|
|
|
+ ticket.stop(ticket);
|
|
|
}
|
|
|
}
|
|
|
- for(i = 0; i <= list.getSize($solvingtickets) - 1; i++) {
|
|
|
- ticket = list.getIndex($solvingtickets, 0);
|
|
|
- if(getHelpneeder(ticket) == player_id) {
|
|
|
- stopticket(ticket);
|
|
|
+ for(i = 0; i < list.getSize($process_tickets); i++) {
|
|
|
+ ticket = list.getIndex($process_tickets, 0);
|
|
|
+ if(ticket.getHelpNeeder(ticket) == player_id) {
|
|
|
+ ticket.stop(ticket);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
goto("wait");
|
|
|
|
|
|
-function issupporter(player) {
|
|
|
- if(perm.has(player, "isSupporter")) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
-function createticket(player_id, nachricht) {
|
|
|
- //Ticket erstellen
|
|
|
- $ticketcounter += 1;
|
|
|
- ticket = array.new(4);
|
|
|
- ticket[0] = player_id;
|
|
|
- ticket[1] = nachricht;
|
|
|
- ticket[3] = $ticketcounter;
|
|
|
- list.add($freetickets, ticket);
|
|
|
- return;
|
|
|
+function isSupporter(player) {
|
|
|
+ return perm.has(player, "isSupporter");
|
|
|
}
|
|
|
|
|
|
-function freeticket(ticket) {
|
|
|
- player_id = getHelpneeder(ticket);
|
|
|
- name = player.getNameFromId(player_id);
|
|
|
- team_player_id = player.getId($player);
|
|
|
- msg.prefix(name, $prefix, "§rDein Ticket wurde wieder freigegeben. Ein anderer Teamler wird sich darum kümmern");
|
|
|
- msg.prefix($player, $prefix, "§rDu hast das Ticket freigegeben");
|
|
|
- list.remove($solvingtickets, ticket);
|
|
|
- list.add($freetickets, ticket);
|
|
|
- setSolver(ticket, null);
|
|
|
- //checkforteamler
|
|
|
+function getAvailableSupporters() {
|
|
|
online = players.toList();
|
|
|
teamlers = list.new();
|
|
|
- for(i = 0; i <= list.getSize(online) - 1; i++) {
|
|
|
+ for(i = 0; i < list.getSize(online); i++) {
|
|
|
p = list.getIndex(online, i);
|
|
|
- if(issupporter(p)) {
|
|
|
+ if(isSupporter(p)) {
|
|
|
list.add(teamlers, p);
|
|
|
}
|
|
|
}
|
|
|
- for(i = 0; i <= list.getSize(teamlers) - 1; i++) {
|
|
|
+ return teamlers;
|
|
|
+}
|
|
|
+
|
|
|
+function ticket.create(player, message) {
|
|
|
+ $ticketcounter++;
|
|
|
+ ticket = array.new(4);
|
|
|
+ ticket[0] = player.getId(player);
|
|
|
+ ticket[1] = message;
|
|
|
+ ticket[3] = $ticketcounter;
|
|
|
+ list.add($free_tickets, ticket);
|
|
|
+}
|
|
|
+
|
|
|
+function ticket.free(ticket, player_solver) {
|
|
|
+ player_id = ticket.getHelpNeeder(ticket);
|
|
|
+ name = player.getNameFromId(player_id);
|
|
|
+ msg.send(player_solver, name, $prefix, "Your ticket got released, so another supporter can take care of.", false);
|
|
|
+ msg.prefix(player_solver, $prefix, "You released the ticket for another supporter.");
|
|
|
+ list.remove($process_tickets, ticket);
|
|
|
+ list.add($free_tickets, ticket);
|
|
|
+ ticket.setSolver(ticket, null);
|
|
|
+ teamlers = getAvailableSupporters();
|
|
|
+ for(i = 0; i < list.getSize(teamlers); i++) {
|
|
|
p = list.getIndex(teamlers, i);
|
|
|
- msg.prefix(p, $prefix, concat("§r", $player_name, " hat das Ticket von ", name, " wieder freigegeben: §a", getMessage(ticket)));
|
|
|
- msg.prefix(p, $prefix, concat("§rOffene Tickets: ", text.number(list.getSize($freetickets))));
|
|
|
+ msg.prefix(p, $prefix, concat("§r", player.getName(player_solver), " hat das Ticket von ", name, " wieder freigegeben: §a", ticket.getMessage(ticket)));
|
|
|
+ msg.prefix(p, $prefix, concat("§rOffene Tickets: ", text.number(list.getSize($free_tickets))));
|
|
|
sound.spawnForPlayer(p, pling_sound, sound_category_ambient);
|
|
|
}
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
-function stopticket(ticket) {
|
|
|
+function ticket.stop(ticket) {
|
|
|
//Check ob Ticket existiert
|
|
|
- if(!(list.contains($freetickets, ticket) || list.contains($solvingtickets, ticket))) {
|
|
|
+ if(!(list.contains($free_tickets, ticket) || list.contains($process_tickets, ticket))) {
|
|
|
return false;
|
|
|
}
|
|
|
//Ticket löschen
|
|
|
- player_id = getHelpneeder(ticket);
|
|
|
- list.remove($freetickets, ticket);
|
|
|
- list.remove($solvingtickets, ticket);
|
|
|
+ player_id = ticket.getHelpNeeder(ticket);
|
|
|
+ list.remove($free_tickets, ticket);
|
|
|
+ list.remove($process_tickets, ticket);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-function getHelpneeder(ticket) {
|
|
|
- player_id = ticket[0];
|
|
|
- return player_id;
|
|
|
+function ticket.getHelpNeeder(ticket) {
|
|
|
+ return ticket[0];
|
|
|
}
|
|
|
|
|
|
-function getMessage(ticket) {
|
|
|
- message = ticket[1];
|
|
|
- return message;
|
|
|
+function ticket.getMessage(ticket) {
|
|
|
+ return ticket[1];
|
|
|
}
|
|
|
|
|
|
-function getSolver(ticket) {
|
|
|
- solver = ticket[2];
|
|
|
- return solver;
|
|
|
+function ticket.getSolver(ticket) {
|
|
|
+ return ticket[2];
|
|
|
}
|
|
|
|
|
|
-function getTicketID(ticket) {
|
|
|
- ticketid = ticket[3];
|
|
|
- return ticketid;
|
|
|
+function ticket.getId(ticket) {
|
|
|
+ return ticket[3];
|
|
|
}
|
|
|
|
|
|
-function setSolver(ticket, player_id) {
|
|
|
+function ticket.setSolver(ticket, player_id) {
|
|
|
ticket[2] = player_id;
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
-function hasticketcreated(player_id, ticket) {
|
|
|
- if(player_id == getHelpneeder(ticket)) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
+function hasTicketCreated(player_id, ticket) {
|
|
|
+ return player_id == ticket.getHelpNeeder(ticket);
|
|
|
}
|
|
|
-
|
|
|
-function getTicketFromID(ticketid) {
|
|
|
+
|
|
|
+function ticket.getFromID(ticketid) {
|
|
|
//Beide Ticket-Listen durchlaufen und jeden Array auf die ID checken
|
|
|
- for(i = 0; i <= list.getSize($freetickets) - 1; i++) {
|
|
|
- tempticket = list.getIndex($freetickets, i);
|
|
|
- if(getTicketID(tempticket) == ticketid) {
|
|
|
+ for(i = 0; i < list.getSize($free_tickets); i++) {
|
|
|
+ tempticket = list.getIndex($free_tickets, i);
|
|
|
+ if(ticket.getId(tempticket) == ticketid) {
|
|
|
return tempticket;
|
|
|
}
|
|
|
}
|
|
|
- for(i = 0; i <= list.getSize($solvingtickets) - 1; i++) {
|
|
|
- tempticket = list.getIndex($solvingtickets, i);
|
|
|
- if(getTicketID(tempticket) == ticketid) {
|
|
|
+ for(i = 0; i < list.getSize($process_tickets); i++) {
|
|
|
+ tempticket = list.getIndex($process_tickets, i);
|
|
|
+ if(ticket.getId(tempticket) == ticketid) {
|
|
|
return tempticket;
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
-}
|
|
|
+}
|