WheatWar/src/main/java/tools/GameUtil.java
2024-10-30 20:39:15 +08:00

84 lines
3.3 KiB
Java

package tools;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
import com.sk89q.worldedit.math.BlockVector3;
import com.yaohun.wheatwar.WheatWar;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import java.io.File;
public class GameUtil {
public static String hideName(String audience) {
if (audience.length() <= 2) {
return "**";
}
char firstChar = audience.charAt(0);
char lastChar = audience.charAt(audience.length() - 1);
StringBuilder maskedString = new StringBuilder();
for (int i = 1; i < audience.length() - 1; i++) {
maskedString.append('*');
}
return String.valueOf(firstChar) + maskedString + lastChar;
}
public static void sendMessage(CommandSender sender, String message) {
sender.sendMessage("§c[系统]§a" + message);
}
public static void sendAllSound(String sound) {
for (Player player : Bukkit.getOnlinePlayers()) {
if (sound.contains("_")) {
player.playSound(player.getLocation(), Sound.valueOf(sound), 1, 1);
} else {
player.playSound(player.getLocation(), sound, 0.5F, 1);
}
}
}
public static void sendAllTitle(String title,String subTitle,int t1,int t2,int t3) {
for (Player player : Bukkit.getOnlinePlayers()) {
player.sendTitle(title,subTitle,t1,t2,t3);
}
}
public static Vector getRandomVector(double radius){
double x = RandomUtil.getRandomDouble(0-radius, 0+radius, 1);
double y = RandomUtil.getRandomDouble(0, 0.5, 1);
double z = RandomUtil.getRandomDouble(0-radius, 0+radius, 1);
return new Vector(x, y, z);
}
public static Vector getRandomVector(double radius,double radiusY){
double x = RandomUtil.getRandomDouble(0-radius, 0+radius, 1);
double y = RandomUtil.getRandomDouble(0+radiusY, 0.5+radiusY, 1);
double z = RandomUtil.getRandomDouble(0-radius, 0+radius, 1);
return new Vector(x, y, z);
}
public static void loadSchematics(String fileName) {
World world = Bukkit.getWorld("world");
File schema_file = new File("plugins/FastAsyncWorldEdit/schematics",fileName+".schem");
Location location = new Location(world, -233,74,258);
EditSession editSession = WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt(world));
Bukkit.getScheduler().runTaskAsynchronously(
WheatWar.inst(), () -> {
try {
Clipboard clipboard = ClipboardFormats.findByFile(schema_file).load(schema_file);
clipboard.paste(BukkitAdapter.adapt(world), BlockVector3.at(location.getBlockX(), location.getBlockY(), location.getBlockZ()));
clipboard.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
editSession.close();
}
}
);
}
}