N
.Niklas.
Gast
Hallo,
Ich arbeite zurzeit an einem Plugin für Minecraft und ich möchte Blöcke schützen, mein problem ist das es schon bei 10 tausend gespeicherten blöcken anfängt bei einem Server reload etwa 5-6 sekunden zu hacken
Ich lese die .yml aus mit:
Und wird dann hier verarbeitet:
Bei " String[] saveBlockSplit = saveBlockYml.fileGetContent().split("\n"); " dauert es sehr lange
(liegt nicht am split , ich habs getestet)
Und dann habe ich noch ein problem beim trennen der ArrayList gibts da eine Methode die schneller ist als
Wie mache ich es das er die Datei schneller ausliest und Die ArrayList "blockSave" schneller speichern kann
?
Mfg Niklas
Ich arbeite zurzeit an einem Plugin für Minecraft und ich möchte Blöcke schützen, mein problem ist das es schon bei 10 tausend gespeicherten blöcken anfängt bei einem Server reload etwa 5-6 sekunden zu hacken
Ich lese die .yml aus mit:
Code:
public String fileGetContent()
{
String buffer = "";
String line = "";
try
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(myFile)));
while((line = br.readLine()) != null)
buffer = (new StringBuilder(String.valueOf(buffer))).append(line = (new StringBuilder(String.valueOf(line))).append("\n").toString()).toString();
br.close();
}
catch(Exception e)
{
System.out.println("[MineBuilder] A file is missing, please reload the server when this error is still there contact me");
}
return buffer;
}
Und wird dann hier verarbeitet:
Code:
private ArrayList<String> saveBlock = new ArrayList<String>();
public void readBlockSaveFile()
{
configer saveBlockYml = new configer("plugins/MineBuilder","plugins/MineBuilder/SavedBlocks.yml");
String[] saveBlockSplit = saveBlockYml.fileGetContent().split("\n");
Boolean add = false;
for(String addSave : saveBlockSplit)
{
if(add == true)
{
saveBlock.add(addSave);
}
if(addSave.contains("Latest Block at:"))
{
add = true;
String[] numberSplit = addSave.split(":");
amountOfSavedBlocks = Integer.parseInt(numberSplit[1]);
}
}
}
(liegt nicht am split , ich habs getestet)
Und dann habe ich noch ein problem beim trennen der ArrayList gibts da eine Methode die schneller ist als
Code:
public void writeBlockSaveFile()
{
ArrayList<String> saveBlockCopy = new ArrayList<String>();
saveBlockCopy.addAll(saveBlock); //Mit es keine errors gibt falls saveBlock sich verändert
configer saveBlockYml = new configer("plugins/MineBuilder","plugins/MineBuilder/SavedBlocks.yml");
String writeToFile = "Latest Block at:"+amountOfSavedBlocks+freizeile; //Speichert die array list in einen string
//Hier hackt es
for(String savePlaceBlock : saveBlockCopy)
{
writeToFile += savePlaceBlock+freizeile;
}
//Speichert es in einem file
saveBlockYml.writeFile(writeToFile);
}
Wie mache ich es das er die Datei schneller ausliest und Die ArrayList "blockSave" schneller speichern kann
Mfg Niklas