Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ buildscript
apply plugin: 'net.minecraftforge.gradle.forge'

// Gradle project metadata
version = "1.12.2-1.0.5"
version = "1.12.2-1.0.7"
group = "com.wimbli.WorldBorder"

minecraft
{
// Forge version
version = "1.12.2-14.23.1.2561"
version = "1.12.2-14.23.1.2555"
runDir = "debug"

mappings = "snapshot_20171003"
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/com/wimbli/WorldBorder/WBCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
import net.minecraft.server.management.UserListOpsEntry;
import net.minecraft.util.math.BlockPos;

import javax.annotation.Nonnull;
//import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.*;

public class WBCommand implements ICommand
{
static final String NAME = "wborder";
static final List ALIASES = Arrays.asList(NAME, "wb", "worldborder");
static final List<String> ALIASES = Arrays.asList("wb", "worldborder");

// map of all sub-commands with the command name (string) for quick reference
public Map<String, WBCmd> subCommands = new LinkedHashMap<>();
Expand All @@ -40,11 +40,10 @@ public static void checkRegistrations(MinecraftServer server)
List<String> valid = new ArrayList<>( ALIASES.size() );
List<String> conflict = new ArrayList<>( ALIASES.size() );

Map commands = server.getCommandManager().getCommands();
Map<String, ICommand> commands = server.getCommandManager().getCommands();

for (Object o : ALIASES)
for (String name : ALIASES)
{
String name = (String) o;
Object value = commands.get(name);

if (value == null)
Expand Down Expand Up @@ -213,7 +212,7 @@ public String getUsage(ICommandSender sender)
}

@Override
public List getAliases()
public List<String> getAliases()
{
return ALIASES;
}
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/wimbli/WorldBorder/forge/Particles.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.wimbli.WorldBorder.forge;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.SoundEvents;
import net.minecraft.network.play.server.SPacketParticles;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import com.wimbli.WorldBorder.Config;
import com.wimbli.WorldBorder.WorldBorder;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.common.MinecraftForge;
//import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
Expand All @@ -26,9 +27,9 @@ public boolean isRunning()
public void setRunning(boolean state)
{
if (state)
FMLCommonHandler.instance().bus().register(this);
MinecraftForge.EVENT_BUS.register(this);
else
FMLCommonHandler.instance().bus().unregister(this);
MinecraftForge.EVENT_BUS.unregister(this);

running = state;
}
Expand Down
13 changes: 6 additions & 7 deletions src/main/java/com/wimbli/WorldBorder/task/ChunkUtil.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.wimbli.WorldBorder.task;

import com.wimbli.WorldBorder.forge.Log;

import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;

public class ChunkUtil {
Expand All @@ -15,13 +15,12 @@ public static void unloadChunksIfNotNearSpawn(WorldServer world, int par1, int p
int var4 = par1 * 16 + 8 - var3.getX();
int var5 = par2 * 16 + 8 - var3.getZ();
short var6 = 128;
if(var4 < -var6 || var4 > var6 || var5 < -var6 || var5 > var6)
if(!(var4 < -var6 || var4 > var6 || var5 < -var6 || var5 > var6))
{
world.getChunkProvider().droppedChunksSet.add(Long.valueOf(ChunkPos.asLong(par1, par2)));
Log.warn("Couldn't unload chunk from location (X: " + par1 + ", Z: " + par2 + ")");
return;
}
} else
{
world.getChunkProvider().droppedChunksSet.add(Long.valueOf(ChunkPos.asLong(par1, par2)));
}
world.getChunkProvider().queueUnload(world.getChunkFromChunkCoords(par1, par2));
}
}
44 changes: 34 additions & 10 deletions src/main/java/com/wimbli/WorldBorder/task/WorldFillTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import net.minecraft.world.WorldServer;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.gen.ChunkProviderServer;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

Expand Down Expand Up @@ -153,7 +153,8 @@ public void start()
if (INSTANCE != this)
throw new IllegalStateException("Cannot start a stopped task");

FMLCommonHandler.instance().bus().register(this);
//FMLCommonHandler.instance().bus().register(this);
MinecraftForge.EVENT_BUS.register(this);
}

/** Starts this task by resuming from prior progress */
Expand All @@ -173,7 +174,8 @@ public void stop()
if (INSTANCE != this)
throw new IllegalStateException("Task has already been stopped");
else
FMLCommonHandler.instance().bus().unregister(this);
MinecraftForge.EVENT_BUS.unregister(this);


// Unload chunks that are still loaded
while( !storedChunks.isEmpty() )
Expand Down Expand Up @@ -307,9 +309,9 @@ public void onServerTick(TickEvent.ServerTickEvent event)
long now = Util.now();

// every 5 seconds or so, give basic progress report to let user know how it's going
if (now > lastReport + 5000)
if (now > lastReport + 5000){
reportProgress();

}
// if this iteration has been running for 45ms (almost 1 tick) or more, stop to take a breather
if (now > loopStartTime + 45)
{
Expand All @@ -334,7 +336,7 @@ public void onServerTick(TickEvent.ServerTickEvent event)
}

// load the target chunk and generate it if necessary
provider.loadChunk(x, z);
generateChunk(provider, x, z);
worldData.chunkExistsNow(x, z);

// There need to be enough nearby chunks loaded to make the server populate a chunk with trees, snow, etc.
Expand All @@ -343,28 +345,39 @@ public void onServerTick(TickEvent.ServerTickEvent event)
int popZ = isZLeg ? z : (z + (!isNeg ? -1 : 1));
// RoyCurtis: this originally specified "false" for chunk generation; things
// may break now that it is true
provider.loadChunk(popX, popZ);
generateChunk(provider, popX, popZ);

// make sure the previous chunk in our spiral is loaded as well (might have already existed and been skipped over)
if (!storedChunks.contains(lastChunk) && !originalChunks.contains(lastChunk))
{
provider.loadChunk(lastChunk.x, lastChunk.z);
generateChunk(provider, lastChunk.x, lastChunk.z);
storedChunks.add(new CoordXZ(lastChunk.x, lastChunk.z));
}

// Store the coordinates of these latest 2 chunks we just loaded, so we can unload them after a bit...
storedChunks.add(new CoordXZ(popX, popZ));
storedChunks.add(new CoordXZ(x, z));

// force populate if the chunk is still unpopulated
if(provider.getLoadedChunk(x, z) != null && !provider.getLoadedChunk(x, z).isPopulated())
try{
provider.chunkGenerator.populate(x, z);
} catch(Exception e) {
Log.error("Error while populating chunk!");
e.printStackTrace();
}

// If enough stored chunks are buffered in, go ahead and unload the oldest to free up memory
while (storedChunks.size() > 8)
while (storedChunks.size() > 16)
{
CoordXZ coord = storedChunks.remove(0);

if (!originalChunks.contains(coord))
ChunkUtil.unloadChunksIfNotNearSpawn(world, coord.x, coord.z);
}


DynMapFeatures.renderRegion(world, new CoordXZ(x, z));

// move on to next chunk
if (!moveToNext())
return;
Expand All @@ -373,6 +386,17 @@ public void onServerTick(TickEvent.ServerTickEvent event)
// ready for the next iteration to run
readyToGo = true;
}

private static boolean generateChunk(ChunkProviderServer chunkProvider, int x, int z) {
if (chunkProvider.chunkExists(x, z)) {
return false;
}
chunkProvider.saveChunks(true);
chunkProvider.provideChunk(x, z);
chunkProvider.loadChunk(x, z);

return true;
}

// step through chunks in spiral pattern from center; returns false if we're done, otherwise returns true
public boolean moveToNext()
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/com/wimbli/WorldBorder/task/WorldTrimTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@
import com.wimbli.WorldBorder.forge.Worlds;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.WorldServer;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

Expand Down Expand Up @@ -90,7 +88,8 @@ public void start()
if (INSTANCE != this)
throw new IllegalStateException("Cannot start a stopped task");

FMLCommonHandler.instance().bus().register(this);
//FMLCommonHandler.instance().bus().register(this);
MinecraftForge.EVENT_BUS.register(this);
}

/** Stops this task by unregistering the tick handler and removing the instance */
Expand All @@ -99,7 +98,7 @@ public void stop()
if (INSTANCE != this)
throw new IllegalStateException("Task has already been stopped");
else
FMLCommonHandler.instance().bus().unregister(this);
MinecraftForge.EVENT_BUS.unregister(this);

regionChunks.clear();
trimChunks.clear();
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/mcmod.info
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["Brettflan", "RoyCurtis", "abused_master"],
"authorList": ["Brettflan", "RoyCurtis", "abused_master", "LizNet"],
"credits": "",
"logoFile": "",
"screenshots": [],
Expand Down