From 85cf6bf8c7ce7724efb450d796a544171ee7cf3f Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Sat, 18 Jul 2015 19:01:28 +0100 Subject: [PATCH] Some /botania-skyblock-spread changes. --- .../core/command/CommandSkyblockSpread.java | 30 +++++++++++++++---- .../common/world/SkyblockWorldEvents.java | 6 ++-- .../resources/assets/botania/lang/en_US.lang | 4 +-- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java b/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java index 46a69b246..40d8fadfc 100644 --- a/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java +++ b/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java @@ -10,11 +10,14 @@ */ package vazkii.botania.common.core.command; +import vazkii.botania.common.core.helper.MathHelper; import vazkii.botania.common.world.SkyblockWorldEvents; import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.StatCollector; public class CommandSkyblockSpread extends CommandBase { @@ -25,7 +28,7 @@ public class CommandSkyblockSpread extends CommandBase { @Override public String getCommandUsage(ICommandSender p_71518_1_) { - return ""; + return " []"; } @Override @@ -34,13 +37,30 @@ public class CommandSkyblockSpread extends CommandBase { } @Override - public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { + public void processCommand(ICommandSender sender, String[] args) { + int maxAllowed = 10000000; + int minAllowed = 250; + int minDist = 100; + int maxrange = 2000000; - EntityPlayer player = getPlayer(p_71515_1_, p_71515_2_[0]); + if(args.length == 2) + maxrange = parseInt(sender, args[1]); + + if(maxrange > maxAllowed) + throw new CommandException("botaniamisc.skyblockRangeTooHigh"); + if(maxrange < minAllowed) + throw new CommandException(StatCollector.translateToLocal("botaniamisc.skyblockRangeTooLow")); + + EntityPlayer player = getPlayer(sender, args[0]); if(player != null) { ChunkCoordinates spawn = player.worldObj.getSpawnPoint(); - int x = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posX; - int z = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posZ; + int x, z; + + do { + x = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posX; + z = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posZ; + } while(MathHelper.pointDistancePlane(x, z, spawn.posX, spawn.posZ) < minDist); + SkyblockWorldEvents.spawnPlayer(player, x, spawn.posY, z, true); } } diff --git a/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java b/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java index e771d4765..a2f5908a8 100644 --- a/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java +++ b/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java @@ -125,8 +125,10 @@ public final class SkyblockWorldEvents { if(!data.hasKey(EntityPlayer.PERSISTED_NBT_TAG)) data.setTag(EntityPlayer.PERSISTED_NBT_TAG, new NBTTagCompound()); NBTTagCompound persist = data.getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG); - - if(!persist.getBoolean(TAG_HAS_OWN_ISLAND)) { + + final boolean test = false; + + if(test || !persist.getBoolean(TAG_HAS_OWN_ISLAND)) { createSkyblock(player.worldObj, x, y, z); if(player instanceof EntityPlayerMP) { diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index b7b040265..38ac43cf5 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -129,8 +129,8 @@ botaniamisc.completed=Completed botaniamisc.notCompleted=Not Completed botaniamisc.info=Info botaniamisc.challengeInfo=Learn about the challenges -botaniamisc.notSkyblock=You need to be in a Garden of Glass world to do that. -botaniamisc.alreadyHasSkyblock=You already have a skyblock. +botaniamisc.skyblockRangeTooLow=Invalid range, must be at least 250. +botaniamisc.skyblockRangeTooHigh=Invalid range, can't be higher than 10000000 (10 million). # NEI INTEGRATION botania.nei.brewery=Botanical Brewery