package los.numeros.EPHS.modules; import los.numeros.GameEngine.Module; import los.numeros.utils.GiveItem; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.Team; import net.minecraft.scoreboard.AbstractTeam.VisibilityRule; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Formatting; import net.minecraft.world.GameMode; import los.numeros.EPHS.Constants; public class MainModule implements Module { ServerPlayerEntity[] seekers, hiders, players; ServerCommandSource source; Scoreboard scoreboard; Team seekersTeam, hidersTeam; public MainModule(ServerPlayerEntity[] seekers, ServerPlayerEntity[] hiders, ServerPlayerEntity[] players, ServerCommandSource source) { this.seekers = seekers; this.hiders = hiders; this.players = players; this.source = source; } public void giveSeekerItems(ServerPlayerEntity[] seekers) { for (ServerPlayerEntity p : seekers) { // give armor GiveItem.givePlayerItem(p, "diamond_helmet", GiveItem.ARMOR_HEAD); GiveItem.givePlayerItem(p, "diamond_leggings", GiveItem.ARMOR_LEGS); GiveItem.givePlayerItem(p, "diamond_chestplate", GiveItem.ARMOR_CHEST); GiveItem.givePlayerItem(p, "diamond_boots", GiveItem.ARMOR_BOOTS); // get diamond sword and put sarp 1 on it for seeker ItemStack sword = GiveItem.getItem("iron_sword"); sword.addEnchantment(Enchantments.SHARPNESS, 1); // make sword unbreakable NbtCompound sTag = sword.getTag(); sTag.putBoolean("Unbreakable", true); sword.setTag(sTag); p.equip(0, sword); // give seeker ender pearl x32 GiveItem.giveMultipleItem(p, "ender_pearl", null, 32); // teleport to the seeker box p.teleport(Constants.seekerSpawnX, Constants.seekerSpawnY, Constants.seekerSpawnZ); } } public void giveHidersItems(ServerPlayerEntity[] hiders) { for (ServerPlayerEntity p : hiders) { // Give hiders ender pearls x16 GiveItem.giveMultipleItem(p, "ender_pearl", null, 16); p.teleport(Constants.hidersSpawnX, Constants.hidersSpawnY, Constants.hidersSpawnZ); } } @Override public int init() { //set up seeker team scoreboard = players[0].getScoreboard(); seekersTeam = scoreboard.addTeam("Seeksers"); seekersTeam.setColor(Formatting.GOLD); seekersTeam.setFriendlyFireAllowed(false); //set up hidders team hidersTeam = scoreboard.addTeam("Hidders"); hidersTeam.setColor(Formatting.BLUE); hidersTeam.setFriendlyFireAllowed(false); hidersTeam.setNameTagVisibilityRule(VisibilityRule.HIDE_FOR_OTHER_TEAMS); // Give items and status effects to everyone playing game for (ServerPlayerEntity p : players) { // Put everyone to full health and hunger p.inventory.clear(); p.addStatusEffect(new StatusEffectInstance(StatusEffects.SATURATION, 300, 100, false, false)); p.heal(20); // give steak x64 GiveItem.giveMultipleItem(p, "cooked_beef", 2, 64); // set everyones gamemode p.setGameMode(GameMode.ADVENTURE); } giveSeekerItems(seekers); giveHidersItems(hiders); return 0; } @Override public int end() { for (ServerPlayerEntity p : players) { // resets all effects and inventoty and tp's aeveryone back to spawn p.teleport(Constants.spawnX, Constants.spawnY, Constants.spawnZ); p.clearStatusEffects(); p.setGameMode(GameMode.CREATIVE); p.inventory.clear(); // removes the teams scoreboard.removeTeam(hidersTeam); scoreboard.removeTeam(seekersTeam); } return 0; } }