minecraft-mod/src/main/java/modchest/util/setAndGetMultiButtonsSpawn....

64 lines
3.2 KiB
Java
Raw Normal View History

package modchest.util;
import modchest.REServerMod;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
public class setAndGetMultiButtonsSpawn {
public synchronized void setMultiSpawn(ServerPlayerEntity player, int spawn) {
ServerPlayerEntityInterface castedPlayer = (ServerPlayerEntityInterface) player;
int[] fullArray = castedPlayer.getDataSaver(); //holt sich den ganzen Array, mit allen gespeicherten Spawnpunkten; struktur wird etwas weiter unten erklaert
spawn--; //weil der Array mit Slot 0 beginnt, rutscht alles eins auf
if (fullArray.length != 15) { //Wenn der array unbeschrieben ist (Laenge ungleich 15), wird ein neuer erstellt
fullArray = new int[15];
for (int i = 0; i < 15; i++) {
fullArray[i] = 77889911; //Lueckenfueller; wird in deathScreenMultiButtonsC2SPacket uebrprueft und rausgefiltert
}
}
fullArray[spawn * 3 + 0] = (int) player.getX();
fullArray[spawn * 3 + 1] = (int) player.getY();
fullArray[spawn * 3 + 2] = (int) player.getZ();
try {
castedPlayer.setDataSaver(fullArray);
} catch (Exception e) {
REServerMod.LOGGER.info("Sorry! Error when saving Spawnpoint! Exception: " + e);
player.sendMessage(Text.of("Tut mir leid! Das hat nicht geklappt!" + e));
}
}
public synchronized int[] getMultiSpawn(ServerPlayerEntity player, int spawn) {
ServerPlayerEntityInterface castedPlayer = (ServerPlayerEntityInterface) player;
int[] fullArray = castedPlayer.getDataSaver();
if (fullArray.length != 15) {
int[] tempArray = new int[15];
for (int i = 0; i < 15; i++) {
tempArray[i] = 77889922; //Lueckenfueller; wird in deathScreenMultiButtonsC2SPacket uebrprueft und rausgefiltert
}
try {
castedPlayer.setDataSaver(fullArray);
} catch (Exception e) {
REServerMod.LOGGER.info("Sorry! Error when loading Spawnpoint! Exception: " + e);
player.sendMessage(Text.of("Tut mir leid! Das hat nicht geklappt!" + e));
}
}
fullArray = castedPlayer.getDataSaver();
spawn--;
int[] posXYZ = new int[3];
try {
posXYZ[0] = fullArray[spawn * 3 + 0]; //der array ist 15 slots lang, davon gehoeren immer 3 zusammen; wir rutschen also um die anzahl an Spawns weiter und holen uns dann den nullten, ersten un zweiten
posXYZ[1] = fullArray[spawn * 3 + 1]; //Bsp.: angenommen wir wollen den 2. spawn, ueberspringen wir FullArray[0] (x-Koordinate fuer slot 1), FullArray[1] (y-Koordinate fuer slot 1), FullArray[03] (z-Koordinate fuer slot 1),
posXYZ[2] = fullArray[spawn * 3 + 2]; //dann holen wir uns also fullArray[3] = x-Koordinate slot 2, fullArray[4] = y-Koordinate slot 2 und fullArray[5] = z-Koordinate slot 2
//Diese Art macht es beim Abspeichern etwas einfacher
} catch (Exception e) {
posXYZ[0] = 77889933;
posXYZ[1] = 77889933;
posXYZ[2] = 77889933;
}
return posXYZ;
}
}