finished first features
This commit is contained in:
parent
b6ab51ddcd
commit
3864fb6b10
13 changed files with 94 additions and 48 deletions
|
@ -3,4 +3,4 @@ org.gradle.jvmargs=-Xmx2g
|
||||||
baseGroup = com.github.stachelbeere1248.zombiesutils
|
baseGroup = com.github.stachelbeere1248.zombiesutils
|
||||||
mcVersion = 1.8.9
|
mcVersion = 1.8.9
|
||||||
modid = zombiesutils
|
modid = zombiesutils
|
||||||
version = 1.0.0
|
version = 1.0.1
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils;
|
package com.github.stachelbeere1248.zombiesutils;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.commands.CategoryCommand;
|
import com.github.stachelbeere1248.zombiesutils.commands.CategoryCommand;
|
||||||
|
import com.github.stachelbeere1248.zombiesutils.handlers.ChatHandler;
|
||||||
import com.github.stachelbeere1248.zombiesutils.handlers.TickHandler;
|
import com.github.stachelbeere1248.zombiesutils.handlers.TickHandler;
|
||||||
import com.github.stachelbeere1248.zombiesutils.render.TimeRenderer;
|
import com.github.stachelbeere1248.zombiesutils.render.TimeRenderer;
|
||||||
import net.minecraftforge.client.ClientCommandHandler;
|
import net.minecraftforge.client.ClientCommandHandler;
|
||||||
|
@ -11,7 +12,7 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
@Mod(modid = "zombiesutils", useMetadata=true, clientSideOnly = true)
|
@Mod(modid = "zombiesutils", useMetadata = true, clientSideOnly = true)
|
||||||
public class ZombiesUtils {
|
public class ZombiesUtils {
|
||||||
private static ZombiesUtils instance;
|
private static ZombiesUtils instance;
|
||||||
private Configuration config;
|
private Configuration config;
|
||||||
|
@ -34,6 +35,7 @@ public class ZombiesUtils {
|
||||||
public void init(FMLInitializationEvent event) {
|
public void init(FMLInitializationEvent event) {
|
||||||
MinecraftForge.EVENT_BUS.register(new TimeRenderer());
|
MinecraftForge.EVENT_BUS.register(new TimeRenderer());
|
||||||
MinecraftForge.EVENT_BUS.register(new TickHandler());
|
MinecraftForge.EVENT_BUS.register(new TickHandler());
|
||||||
|
MinecraftForge.EVENT_BUS.register(new ChatHandler());
|
||||||
ClientCommandHandler.instance.registerCommand(new CategoryCommand());
|
ClientCommandHandler.instance.registerCommand(new CategoryCommand());
|
||||||
}
|
}
|
||||||
public Configuration getConfig() {
|
public Configuration getConfig() {
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.github.stachelbeere1248.zombiesutils.commands;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
||||||
import net.minecraft.command.CommandBase;
|
import net.minecraft.command.CommandBase;
|
||||||
import net.minecraft.command.CommandException;
|
|
||||||
import net.minecraft.command.ICommandSender;
|
import net.minecraft.command.ICommandSender;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
|
@ -27,7 +26,7 @@ public class CategoryCommand extends CommandBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
|
public void processCommand(ICommandSender sender, String[] args) {
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
IChatComponent error = new ChatComponentText("Please input the name for the category");
|
IChatComponent error = new ChatComponentText("Please input the name for the category");
|
||||||
sender.addChatMessage(error);
|
sender.addChatMessage(error);
|
||||||
|
|
|
@ -7,7 +7,6 @@ public class GameMode {
|
||||||
public static final GameMode DEAD_END_NORMAL = new GameMode(Map.DEAD_END), DEAD_END_HARD = new GameMode(Map.DEAD_END, Difficulty.HARD), DEAD_END_RIP = new GameMode(Map.DEAD_END, Difficulty.RIP);
|
public static final GameMode DEAD_END_NORMAL = new GameMode(Map.DEAD_END), DEAD_END_HARD = new GameMode(Map.DEAD_END, Difficulty.HARD), DEAD_END_RIP = new GameMode(Map.DEAD_END, Difficulty.RIP);
|
||||||
public static final GameMode BAD_BLOOD_NORMAL = new GameMode(Map.BAD_BLOOD), BAD_BLOOD_HARD = new GameMode(Map.BAD_BLOOD, Difficulty.HARD), BAD_BLOOD_RIP = new GameMode(Map.BAD_BLOOD, Difficulty.RIP);
|
public static final GameMode BAD_BLOOD_NORMAL = new GameMode(Map.BAD_BLOOD), BAD_BLOOD_HARD = new GameMode(Map.BAD_BLOOD, Difficulty.HARD), BAD_BLOOD_RIP = new GameMode(Map.BAD_BLOOD, Difficulty.RIP);
|
||||||
public static final GameMode ALIEN_ARCADIUM = new GameMode(Map.ALIEN_ARCADIUM);
|
public static final GameMode ALIEN_ARCADIUM = new GameMode(Map.ALIEN_ARCADIUM);
|
||||||
|
|
||||||
private final Map map;
|
private final Map map;
|
||||||
private final Difficulty difficulty;
|
private final Difficulty difficulty;
|
||||||
|
|
||||||
|
@ -41,7 +40,8 @@ public class GameMode {
|
||||||
case NORMAL: currentGameMode = DEAD_END_NORMAL; break;
|
case NORMAL: currentGameMode = DEAD_END_NORMAL; break;
|
||||||
case HARD: currentGameMode = DEAD_END_HARD; break;
|
case HARD: currentGameMode = DEAD_END_HARD; break;
|
||||||
case RIP: currentGameMode = DEAD_END_RIP; break;
|
case RIP: currentGameMode = DEAD_END_RIP; break;
|
||||||
} break;
|
}
|
||||||
|
break;
|
||||||
case BAD_BLOOD:
|
case BAD_BLOOD:
|
||||||
switch (difficulty) {
|
switch (difficulty) {
|
||||||
case NORMAL: currentGameMode = BAD_BLOOD_NORMAL; break;
|
case NORMAL: currentGameMode = BAD_BLOOD_NORMAL; break;
|
||||||
|
@ -60,4 +60,8 @@ public class GameMode {
|
||||||
public static void drop() {
|
public static void drop() {
|
||||||
currentGameMode = null;
|
currentGameMode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean equals(@NotNull GameMode gameMode) {
|
||||||
|
return (this.getDifficulty() == gameMode.getDifficulty() && this.getMap() == gameMode.getMap());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,22 +9,25 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class ChatHandler {
|
public class ChatHandler {
|
||||||
|
public ChatHandler () {
|
||||||
|
}
|
||||||
|
|
||||||
private static final Pattern STRIP_COLOR_PATTERN = Pattern.compile("§[0-9A-FK-ORZ]", Pattern.CASE_INSENSITIVE);
|
private static final Pattern STRIP_COLOR_PATTERN = Pattern.compile("§[0-9A-FK-ORZ]", Pattern.CASE_INSENSITIVE);
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onChatReceived(ClientChatReceivedEvent event) {
|
public void difficultyChange(ClientChatReceivedEvent event) {
|
||||||
String message = STRIP_COLOR_PATTERN.matcher(event.message.getUnformattedText()).replaceAll("").trim();
|
String message = STRIP_COLOR_PATTERN.matcher(event.message.getUnformattedText()).replaceAll("").trim();
|
||||||
GameMode gameMode = GameMode.getCurrentGameMode();
|
GameMode gameMode = GameMode.getCurrentGameMode();
|
||||||
|
|
||||||
if (message.contains(":")) return;
|
if (message.contains(":")) return;
|
||||||
if (gameMode == null) return;
|
if (gameMode == null) return;
|
||||||
ZombiesUtils.getInstance().getLogger().debug("Chat-event: " + message);
|
|
||||||
|
|
||||||
if (message.contains("Hard Difficulty") || message.contains("困难") || message.contains("困難")) {
|
if (message.contains("Hard Difficulty") || message.contains("困难") || message.contains("困難")) {
|
||||||
gameMode.changeDifficulty(Difficulty.HARD);
|
gameMode.changeDifficulty(Difficulty.HARD);
|
||||||
|
ZombiesUtils.getInstance().getLogger().debug("Changed to Hard");
|
||||||
} else if (message.contains("RIP Difficulty") || message.contains("安息") || message.contains("RIP")) {
|
} else if (message.contains("RIP Difficulty") || message.contains("安息") || message.contains("RIP")) {
|
||||||
gameMode.changeDifficulty(Difficulty.RIP);
|
gameMode.changeDifficulty(Difficulty.RIP);
|
||||||
|
ZombiesUtils.getInstance().getLogger().debug("Changed to RIP");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||||
public class TickHandler {
|
public class TickHandler {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onTick(TickEvent.ClientTickEvent event) {
|
public void onTick(TickEvent.ClientTickEvent event) {
|
||||||
|
if (event.phase == TickEvent.Phase.START) return;
|
||||||
Scoreboard.refresh();
|
Scoreboard.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.mixin;
|
package com.github.stachelbeere1248.zombiesutils.mixin;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
||||||
|
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.client.network.NetHandlerPlayClient;
|
import net.minecraft.client.network.NetHandlerPlayClient;
|
||||||
import net.minecraft.network.play.server.S29PacketSoundEffect;
|
import net.minecraft.network.play.server.S29PacketSoundEffect;
|
||||||
|
import net.minecraft.network.play.server.S45PacketTitle;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Unique;
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
|
@ -21,15 +23,18 @@ public class MixinNetHandlerPlayClient {
|
||||||
private void handleSound(S29PacketSoundEffect packetIn, CallbackInfo ci) {
|
private void handleSound(S29PacketSoundEffect packetIn, CallbackInfo ci) {
|
||||||
zombies_utils$handleSound(packetIn);
|
zombies_utils$handleSound(packetIn);
|
||||||
}
|
}
|
||||||
|
@Inject(method = "handleTitle", at = @At(value = "HEAD"))
|
||||||
|
private void handleTitle(S45PacketTitle packetIn, CallbackInfo ci) {
|
||||||
|
zombies_utils$handleTitle(packetIn);
|
||||||
|
}
|
||||||
@Unique
|
@Unique
|
||||||
private void zombies_utils$handleSound(@NotNull S29PacketSoundEffect packet) {
|
private void zombies_utils$handleSound(@NotNull S29PacketSoundEffect packet) {
|
||||||
|
if (!Scoreboard.isZombies()) return;
|
||||||
String soundEffect = packet.getSoundName();
|
String soundEffect = packet.getSoundName();
|
||||||
if (!(
|
if (!(
|
||||||
soundEffect.equals("mob.wither.spawn")
|
soundEffect.equals("mob.wither.spawn")
|
||||||
|| soundEffect.equals("mob.enderdragon.end")
|
|
||||||
|| (soundEffect.equals("mob.guardian.curse") && !zombies_utils$alienUfoOpened)
|
|| (soundEffect.equals("mob.guardian.curse") && !zombies_utils$alienUfoOpened)
|
||||||
)) return;
|
)) return;
|
||||||
|
|
||||||
zombies_utils$alienUfoOpened = soundEffect.equals("mob.guardian.curse");
|
zombies_utils$alienUfoOpened = soundEffect.equals("mob.guardian.curse");
|
||||||
|
|
||||||
if (!Timer.getInstance().isPresent()) {
|
if (!Timer.getInstance().isPresent()) {
|
||||||
|
@ -40,7 +45,6 @@ public class MixinNetHandlerPlayClient {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Timer timer = Timer.getInstance().get();
|
Timer timer = Timer.getInstance().get();
|
||||||
//TODO: GAME END
|
|
||||||
if (timer.equalsServerOrNull(Scoreboard.getServerNumber().orElse(null))) timer.split(Scoreboard.getRound());
|
if (timer.equalsServerOrNull(Scoreboard.getServerNumber().orElse(null))) timer.split(Scoreboard.getRound());
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
@ -53,4 +57,31 @@ public class MixinNetHandlerPlayClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Unique
|
||||||
|
private void zombies_utils$handleTitle(S45PacketTitle packet) {
|
||||||
|
if (packet.getType() != S45PacketTitle.Type.TITLE) return;
|
||||||
|
if (!Scoreboard.isZombies()) return;
|
||||||
|
final String message = packet.getMessage().getUnformattedText().trim();
|
||||||
|
if (message.equals("\u00a7aYou Win!")) {
|
||||||
|
switch (GameMode.getCurrentGameMode().getMap()) {
|
||||||
|
case DEAD_END: case BAD_BLOOD:
|
||||||
|
Timer.getInstance().ifPresent(timer -> {
|
||||||
|
timer.split((byte) 30);
|
||||||
|
Timer.dropInstance();
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case ALIEN_ARCADIUM:
|
||||||
|
Timer.getInstance().ifPresent(timer -> {
|
||||||
|
timer.split((byte) 105);
|
||||||
|
Timer.dropInstance();
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (message.equals("\u00a7cGame Over!")) {
|
||||||
|
Timer.dropInstance();
|
||||||
|
} else {
|
||||||
|
ZombiesUtils.getInstance().getLogger().debug(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.render;
|
package com.github.stachelbeere1248.zombiesutils.render;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
||||||
|
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.client.gui.ScaledResolution;
|
import net.minecraft.client.gui.ScaledResolution;
|
||||||
|
@ -18,6 +19,7 @@ public class TimeRenderer {
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onRenderGameOverlay(RenderGameOverlayEvent.Post event) {
|
public void onRenderGameOverlay(RenderGameOverlayEvent.Post event) {
|
||||||
|
if (!Scoreboard.isZombies()) return;
|
||||||
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return;
|
if (event.type != RenderGameOverlayEvent.ElementType.ALL) return;
|
||||||
if (!Timer.getInstance().isPresent()) return;
|
if (!Timer.getInstance().isPresent()) return;
|
||||||
|
|
||||||
|
|
|
@ -4,63 +4,65 @@ import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.TimesFile;
|
import com.github.stachelbeere1248.zombiesutils.timer.recorder.TimesFile;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.util.*;
|
import net.minecraft.util.ChatComponentText;
|
||||||
|
|
||||||
public class RecordManager {
|
public class RecordManager {
|
||||||
public static void compareSegment(byte round, short roundTime, Category category) {
|
public static void compareSegment(byte round, short roundTime, Category category) {
|
||||||
|
sendBar();
|
||||||
TimesFile timesFile = category.getByGameMode(GameMode.getCurrentGameMode());
|
TimesFile timesFile = category.getByGameMode(GameMode.getCurrentGameMode());
|
||||||
short bestSegment = timesFile.getBestSegment(round);
|
short bestSegment = timesFile.getBestSegment(round);
|
||||||
if (roundTime<bestSegment) {
|
if (bestSegment == (short) 0) {
|
||||||
timesFile.setBestSegment(round, roundTime);
|
timesFile.setBestSegment(round, roundTime);
|
||||||
|
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
||||||
"\u00a7l\u00a7e" + category.getName() + ": ***" + "\u00a7l\u00a76 NEW BEST SEGMENT! " + "\u00a7l\u00a7e***"
|
"\u00a7l\u00a7e Category: " + category.getName() + " - ***" + "\u00a7l\u00a76 NEW BEST SEGMENT! " + "\u00a7l\u00a7e***"
|
||||||
));
|
));
|
||||||
|
final String timeString = getTimeString(roundTime);
|
||||||
|
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + "\u00a7e!";
|
||||||
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (roundTime<bestSegment) {
|
||||||
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
||||||
|
"\u00a7l\u00a7e Category: " + category.getName() + " - ***" + "\u00a7l\u00a76 NEW BEST SEGMENT! " + "\u00a7l\u00a7e***"
|
||||||
|
));
|
||||||
|
timesFile.setBestSegment(round, roundTime);
|
||||||
|
}
|
||||||
final String timeString = getTimeString(roundTime);
|
final String timeString = getTimeString(roundTime);
|
||||||
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + " \u00a79\u03B4" + (double) (roundTime-bestSegment)/20;
|
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + " \u00a79\u03B4" + (double) (roundTime-bestSegment)/20;
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
||||||
|
|
||||||
} else if (bestSegment == (short) 0) {
|
|
||||||
timesFile.setBestSegment(round, roundTime);
|
|
||||||
|
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
|
||||||
"\u00a7l\u00a7e" + category.getName() + ": ***" + "\u00a7l\u00a76 NEW BEST SEGMENT! " + "\u00a7l\u00a7e***"
|
|
||||||
));
|
|
||||||
|
|
||||||
final String timeString = getTimeString(roundTime);
|
|
||||||
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + "\u00a7e!";
|
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
sendBar();
|
||||||
}
|
}
|
||||||
public static void compareBest(byte round, int gameTime, Category category) {
|
public static void compareBest(byte round, int gameTime, Category category) {
|
||||||
|
sendBar();
|
||||||
TimesFile timesFile = category.getByGameMode(GameMode.getCurrentGameMode());
|
TimesFile timesFile = category.getByGameMode(GameMode.getCurrentGameMode());
|
||||||
int personalBest = timesFile.getPersonalBest(round);
|
int personalBest = timesFile.getPersonalBest(round);
|
||||||
|
if (personalBest == 0) {
|
||||||
if (gameTime<personalBest) {
|
|
||||||
timesFile.setPersonalBest(round, gameTime);
|
timesFile.setPersonalBest(round, gameTime);
|
||||||
|
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
||||||
"\u00a7l\u00a7e" + category.getName() + ": ***" + "\u00a7l\u00a76 NEW PERSONAL BEST! " + "\u00a7l\u00a7e***"
|
"\u00a7l\u00a7e Category: " + category.getName() + " - ***" + "\u00a7l\u00a76 NEW PERSONAL BEST! " + "\u00a7l\u00a7e***"
|
||||||
));
|
));
|
||||||
|
|
||||||
final String timeString = getTimeString(gameTime);
|
final String timeString = getTimeString(gameTime);
|
||||||
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + " \u00a79\u03B4" + (double) (gameTime-personalBest)/20;
|
final String message = "\u00a7cRound " + round + "\u00a7e finished at \u00a7a" + timeString + "\u00a7e!";
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
||||||
|
|
||||||
} else if (personalBest == 0) {
|
} else {
|
||||||
timesFile.setPersonalBest(round, gameTime);
|
if (gameTime<personalBest) {
|
||||||
|
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
||||||
"\u00a7l\u00a7e" + category.getName() + ": ***" + "\u00a7l\u00a76 NEW PERSONAL BEST! " + "\u00a7l\u00a7e***"
|
"\u00a7l\u00a7e Category: " + category.getName() + " - ***" + "\u00a7l\u00a76 NEW PERSONAL BEST! " + "\u00a7l\u00a7e***"
|
||||||
));
|
));
|
||||||
|
timesFile.setPersonalBest(round, gameTime);
|
||||||
|
}
|
||||||
|
|
||||||
final String timeString = getTimeString(gameTime);
|
final String timeString = getTimeString(gameTime);
|
||||||
final String message = "\u00a7cRound " + round + "\u00a7e took \u00a7a" + timeString + "\u00a7e!";
|
final String message = "\u00a7cRound " + round + "\u00a7e finished at \u00a7a" + timeString + " \u00a79\u03B4" + (double) (gameTime-personalBest)/20;
|
||||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
sendBar();
|
||||||
}
|
}
|
||||||
private static String getTimeString(int gameTime) {
|
private static String getTimeString(int gameTime) {
|
||||||
return String.format("%d:%02d.%d",
|
return String.format("%d:%02d.%d",
|
||||||
|
@ -69,4 +71,9 @@ public class RecordManager {
|
||||||
((gameTime *50) % 1000) / 100
|
((gameTime *50) % 1000) / 100
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
private static void sendBar() {
|
||||||
|
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
|
||||||
|
"\u00a7l\u00a7a▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬"
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.github.stachelbeere1248.zombiesutils.timer;
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.Map;
|
import com.github.stachelbeere1248.zombiesutils.game.Map;
|
||||||
//import com.github.stachelbeere1248.zombiesutils.game.Waves;
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -88,7 +87,7 @@ public class Timer {
|
||||||
/**
|
/**
|
||||||
* Call to invalidate {@link #instance} to trigger the garbage collector
|
* Call to invalidate {@link #instance} to trigger the garbage collector
|
||||||
*/
|
*/
|
||||||
public static void drop() {
|
public static void dropInstance() {
|
||||||
instance = null;
|
instance = null;
|
||||||
GameMode.drop();
|
GameMode.drop();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import scala.reflect.io.Directory;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Category {
|
public class Category {
|
||||||
private static String selectedCategory = "default"; // read from config ?
|
private static String selectedCategory = "default"; // read from config ?
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import scala.reflect.io.Directory;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,10 @@ import net.minecraft.scoreboard.Score;
|
||||||
import net.minecraft.scoreboard.ScoreObjective;
|
import net.minecraft.scoreboard.ScoreObjective;
|
||||||
import net.minecraft.scoreboard.ScorePlayerTeam;
|
import net.minecraft.scoreboard.ScorePlayerTeam;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -38,7 +41,7 @@ public class Scoreboard {
|
||||||
if (sidebar == null) return;
|
if (sidebar == null) return;
|
||||||
|
|
||||||
// get
|
// get
|
||||||
title = sidebar.getDisplayName().trim();
|
title = STRIP_COLOR_PATTERN.matcher(sidebar.getDisplayName().trim()).replaceAll("");
|
||||||
Collection<Score> scoreCollection = scoreboard.getSortedScores(sidebar);
|
Collection<Score> scoreCollection = scoreboard.getSortedScores(sidebar);
|
||||||
List<Score> filteredScores = scoreCollection.stream().filter(input -> input.getPlayerName() != null && !input.getPlayerName().startsWith("#")).collect(Collectors.toList());
|
List<Score> filteredScores = scoreCollection.stream().filter(input -> input.getPlayerName() != null && !input.getPlayerName().startsWith("#")).collect(Collectors.toList());
|
||||||
|
|
||||||
|
@ -106,7 +109,7 @@ public class Scoreboard {
|
||||||
default: return Optional.empty();
|
default: return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static String getTitle() {
|
public static boolean isZombies() {
|
||||||
return title;
|
return ("ZOMBIES".equals(title));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue