gpt4 book ai didi

java - 未知错误导致服务器崩溃 - 控制台也崩溃

转载 作者:行者123 更新时间:2023-12-03 06:03:18 25 4
gpt4 key购买 nike

基本上,每当我在服务器中键入某个命令时,它都会多次加载所有这些代码(20+)。由于某种原因,每当我键入命令时,服务器都会卡住(包括控制台)。如果我停止服务器并重新启动它,它会说某些内容绑定(bind)到服务器正在运行的端口,导致我必须终止服务器进程。是否是因为我发出命令时正在运行太多计算?我记得它以前没有那么崩溃,但是在我更改了百分比条的计算方式之后,它每次都会崩溃。

package com.mcvigor.utils;

import java.util.ArrayList;

import org.apache.commons.lang.WordUtils;
import org.bukkit.ChatColor;
import org.bukkit.inventory.meta.ItemMeta;

import com.mcvigor.RunePlayer;
import com.mcvigor.Skills;

public class ItemUtils {

public static ItemMeta addSkillInformation(ItemMeta i, Skills skill, RunePlayer rp) {
i.setDisplayName(ChatColor.GOLD + WordUtils.capitalize(skill.toString().toLowerCase()));
ArrayList<String> lore = new ArrayList<String>();
lore.add(ChatColor.RED + "Level " + ChatColor.YELLOW + rp.getSkillLevel(skill));
int xp = rp.getSkillXP(skill);
int neededXP = rp.getXPRequiredForLevel((rp.getSkillLevel(skill) + 1));
lore.add(ChatColor.RED + "Experience: " + ChatColor.YELLOW + xp + ChatColor.RED + " / " + ChatColor.YELLOW + neededXP);
lore.add(ChatColor.RED + "Remainder: " + ChatColor.YELLOW + (neededXP - xp));
float percent = (xp/neededXP);
int percent10 = (int) Math.floor(percent * 10);
String bar = "";
while (percent10 >= 10) {
bar += ChatColor.GREEN + "▀";
percent--;
}
while (percent10 < 10) {
bar += ChatColor.RED + "▀";
percent10--;
}
lore.add(ChatColor.RED + "Percent to next level: " + ChatColor.YELLOW + (int) percent + ChatColor.RED + "%");
lore.add(bar);
i.setLore(lore);
return i;
}
}

编辑:认为其原因是:

    while (percent10 < 10) {
bar += ChatColor.RED + "▀";
percent10--;
}

percent10 将始终小于 10,因此它会继续重复。

最佳答案

您正在循环结束条件中测试变量,但该变量在循环中不会更改:

while (percent10 >= 10) {
bar += ChatColor.GREEN + "▀";
percent--;
}

如果在循环之前 percent10 大于 10,您将一直循环,直到没有足够的内存来扩充 bar

你可能应该更换

percent--;

percent10--;

您在循环中遇到类似的问题:

while (percent10 < 10) {
bar += ChatColor.RED + "▀";
percent10--;
}

如果percent10 < 10,那么它在循环中不会大于10(溢出的情况除外)。

关于java - 未知错误导致服务器崩溃 - 控制台也崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com