From 892070f2ea40f0c738da67cf46e23f507a58e5b1 Mon Sep 17 00:00:00 2001 From: mckuhei Date: Tue, 9 May 2023 18:18:36 +0800 Subject: [PATCH] Use BigDecimal for tp command --- src/minecraft/net/minecraft/src/CommandBase.java | 14 ++++++++++++++ .../net/minecraft/src/CommandServerTp.java | 8 ++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/minecraft/net/minecraft/src/CommandBase.java b/src/minecraft/net/minecraft/src/CommandBase.java index eab09e0..1080c4c 100644 --- a/src/minecraft/net/minecraft/src/CommandBase.java +++ b/src/minecraft/net/minecraft/src/CommandBase.java @@ -1,6 +1,8 @@ package net.minecraft.src; import org.mcmodule.math.BigInteger; + +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -61,6 +63,18 @@ public abstract class CommandBase implements ICommand throw new NumberInvalidException("commands.generic.num.invalid", new Object[] {par1Str}); } } + + public static BigDecimal parseBigDecimal(ICommandSender par0ICommandSender, String par1Str) + { + try + { + return new BigDecimal(par1Str); + } + catch (NumberFormatException var3) + { + throw new NumberInvalidException("commands.generic.num.invalid", new Object[] {par1Str}); + } + } /** * Parses an int from the given sring with a specified minimum. diff --git a/src/minecraft/net/minecraft/src/CommandServerTp.java b/src/minecraft/net/minecraft/src/CommandServerTp.java index 4599c80..abf6ff6 100644 --- a/src/minecraft/net/minecraft/src/CommandServerTp.java +++ b/src/minecraft/net/minecraft/src/CommandServerTp.java @@ -62,16 +62,16 @@ public class CommandServerTp extends CommandBase { int var5 = par2ArrayOfStr.length - 3; int var6 = 30000000; - BigInteger var7 = parseBigInt(par1ICommandSender, par2ArrayOfStr[var5++]); + BigDecimal var7 = parseBigDecimal(par1ICommandSender, par2ArrayOfStr[var5++]); int var8 = parseIntBounded(par1ICommandSender, par2ArrayOfStr[var5++], 0, 256); - BigInteger var9 = parseBigInt(par1ICommandSender, par2ArrayOfStr[var5++]); - var4.serverForThisPlayer.setPlayerLocation(MathHelper.toBigDecimal(var7).add(BigDecimal.valueOf(0.5)), (double)var8, MathHelper.toBigDecimal(var9).add(BigDecimal.valueOf(0.5)), var4.rotationYaw, var4.rotationPitch); + BigDecimal var9 = parseBigDecimal(par1ICommandSender, par2ArrayOfStr[var5++]); + var4.serverForThisPlayer.setPlayerLocation(var7.add(BigDecimal.valueOf(0.5)), (double)var8, var9.add(BigDecimal.valueOf(0.5)), var4.rotationYaw, var4.rotationPitch); notifyAdmins(par1ICommandSender, "commands.tp.coordinates", new Object[] {var4.getEntityName(), var7.toString(), Integer.valueOf(var8), var9.toString()}); } } } - /** + /** * Adds the strings available in this command to the given list of tab completion options. */ public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)