From a58828b394d81629e3d76f79bd87899d8f7393fb Mon Sep 17 00:00:00 2001 From: Nil Date: Thu, 16 Aug 2018 18:05:10 +0200 Subject: [PATCH 1/5] no se que estic fent --- src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java diff --git a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java new file mode 100644 index 0000000..68d4c03 --- /dev/null +++ b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java @@ -0,0 +1,4 @@ +package com.biel.lobby.mapes.jocs; + +public class BatallaAerea { +} From beab4dec3591b7517e31067dd70fd0010215b01f Mon Sep 17 00:00:00 2001 From: Nil Date: Thu, 16 Aug 2018 18:10:47 +0200 Subject: [PATCH 2/5] Nou joc Batalla Aerea --- src/main/java/com/biel/lobby/GestorMapes.java | 1 + .../biel/lobby/mapes/jocs/BatallaAerea.java | 162 +++++++++++++++++- 2 files changed, 161 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/biel/lobby/GestorMapes.java b/src/main/java/com/biel/lobby/GestorMapes.java index 3ac1950..2d05cb6 100644 --- a/src/main/java/com/biel/lobby/GestorMapes.java +++ b/src/main/java/com/biel/lobby/GestorMapes.java @@ -66,6 +66,7 @@ public GestorMapes() { //Mapes.add(new ContenidorJoc(TempleQuest.class, "Temple Quest", Material.QUARTZ_BLOCK, DevelopmentState.InDevelopment)); Mapes.add(new ContenidorJoc(OneInTheChamber.class, "OneInTheChamber", Material.BOW, DevelopmentState.Alpha)); Mapes.add(new ContenidorJoc(BedWars.class, "Bed Wars", Material.BED, DevelopmentState.InDevelopment)); + Mapes.add(new ContenidorJoc(BatallaAerea.class, "Batalla Aerea", Material.ELYTRA, DevelopmentState.InDevelopment)); } public void queryAutoRatings() { auto_ratings = Com.getDataAPI().getAutoRating(); diff --git a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java index 68d4c03..d0dcbad 100644 --- a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java +++ b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java @@ -1,4 +1,162 @@ package com.biel.lobby.mapes.jocs; -public class BatallaAerea { -} +import java.util.ArrayList; +import java.util.Collections; + +import com.biel.BielAPI.Utils.GUtils; +import org.bukkit.Effect; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.Potion; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.potion.PotionType; + +import com.biel.lobby.mapes.JocScoreRace; +import com.biel.lobby.utilities.Utils; +import org.bukkit.util.Vector; + +public class BatallaAerea extends JocScoreRace { + + @Override + protected int getFinishScore() { + // TODO Auto-generated method stub + return 2 + getPlayers().size(); + } + + @Override + public String getGameName() { + // TODO Auto-generated method stub + return "Batalla Aerea"; + } + @Override + protected ArrayList getStartingItems(Player ply) { + ArrayList items = new ArrayList<>(); + items.add(new ItemStack(Material.IRON_SWORD, 1)); + ItemStack bow =new ItemStack(Material.BOW, 1); + bow.addEnchantment(Enchantment.ARROW_INFINITE, 1); + items.add(bow); + Potion p1 = new Potion(PotionType.INSTANT_DAMAGE); + p1.setSplash(true); + items.add(p1.toItemStack(1)); + Potion p2 = new Potion(PotionType.SLOWNESS); + p2.setSplash(true); + items.add(p2.toItemStack(2)); + items.add(new ItemStack(Material.ARROW, 1)); + items.add(new ItemStack(Material.CHAINMAIL_HELMET, 1)); + items.add(new ItemStack(Material.ELYTRA, 1)); + items.add(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1)); + items.add(new ItemStack(Material.CHAINMAIL_BOOTS, 1)); + return items; + } + @Override + protected int getBaseSkillUnlockerAmount() { + // TODO Auto-generated method stub + return 1; + } + @Override + protected void teletransportarTothom() { + for (Player d : getPlayers()) { // d gets successively each value in ar. + teleportToRandomSpawn(d); + } + } + + protected void teleportToRandomSpawn(Player d) { + Location loc; + loc = getRandomSpawnLoc(); + d.teleport(loc); + } + private Location getRandomSpawnLoc() { + ArrayList loc = pMapaActual().ObtenirLocations("arena", world); + Collections.shuffle(loc); + Location l = loc.get(0); + l.add(0, 2, 0); + return l; + } + + + @Override + protected void onPlayerDeathByPlayer(PlayerDeathEvent evt, Player killed, + Player killer) { + // + super.onPlayerDeathByPlayer(evt, killed, killer); + incrementScore(killer); + Potion p1 = new Potion(PotionType.REGEN); + killer.getInventory().addItem(p1.toItemStack(1)); + killer.getInventory().addItem(getMagnusLauncherItem()); + evt.getDrops().clear(); + evt.setDeathMessage(killer.getName() + " ha matat a " + killed.getName() + " [+1]"); + updateScoreBoards(); + } + + @Override + protected void onPlayerDamageByPlayer(EntityDamageByEntityEvent evt, Player damaged, Player damager, + boolean ranged) { + // TODO Auto-generated method stub + super.onPlayerDamageByPlayer(evt, damaged, damager, ranged); + if(ranged)damager.getInventory().addItem(new ItemStack(Material.ARROW, 1)); + } + @Override + protected void onPlayerRespawnAfterTick(PlayerRespawnEvent evt, Player p) { + // TODO Auto-generated method stub + super.onPlayerRespawnAfterTick(evt, p); + teleportToRandomSpawn(p); + } + public double getMinimumHeight(){ + double r = 10.0; + if(pMapaActual().ExisteixPropietat("MinHeight")){ + r = pMapaActual().ObtenirPropietatInt("MinHeight"); + } + return r; + } + public ItemStack getMagnusLauncherItem(){ + ItemStack item = new ItemStack(Material.FIREWORK, 1); + + return item; + } + @EventHandler + public void onPlayerDropItem(PlayerDropItemEvent event) { + if (event.getItemDrop().getItemStack().getType() == Material.FIREWORK) { + event.setCancelled(true); + event.getItemDrop().getItemStack().setType(Material.AIR); + } + } + @Override + protected void onPlayerMove(PlayerMoveEvent evt, Player p) { + // TODO Auto-generated method stub + super.onPlayerMove(evt, p); + + if(evt.getTo().getY() < getMinimumHeight()){ + teleportToRandomSpawn(p); + p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 30, 128, true), true); + p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 30, 128, true), true); + p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 30, 128, true), true); + p.addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 30, 128, true), true); + + } + if(p.getInventory().contains(getMagnusLauncherItem(), 1)){ + + }else if(p.getInventory().containsAtLeast(getMagnusLauncherItem(), 2)){ + p.getInventory().remove(getMagnusLauncherItem()); + + + } + else{p.getInventory().addItem(getMagnusLauncherItem());} + } + } + + + + From d8a226ca049cf1e74c1c1d507da5c80d34ac15d6 Mon Sep 17 00:00:00 2001 From: Nil Date: Thu, 16 Aug 2018 20:45:58 +0200 Subject: [PATCH 3/5] minor update --- src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java index d0dcbad..b7f858a 100644 --- a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java +++ b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java @@ -56,9 +56,11 @@ protected ArrayList getStartingItems(Player ply) { items.add(p2.toItemStack(2)); items.add(new ItemStack(Material.ARROW, 1)); items.add(new ItemStack(Material.CHAINMAIL_HELMET, 1)); - items.add(new ItemStack(Material.ELYTRA, 1)); + ply.getInventory().setChestplate(new ItemStack(Material.ELYTRA)); + ply.getInventory().setItemInOffHand(new ItemStack(Material.SHIELD)); items.add(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1)); items.add(new ItemStack(Material.CHAINMAIL_BOOTS, 1)); + return items; } @Override @@ -144,8 +146,10 @@ protected void onPlayerMove(PlayerMoveEvent evt, Player p) { p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 30, 128, true), true); p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 30, 128, true), true); p.addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 30, 128, true), true); + // Aixó dona els items inicials als jugadors } + if(p.getInventory().contains(getMagnusLauncherItem(), 1)){ }else if(p.getInventory().containsAtLeast(getMagnusLauncherItem(), 2)){ From d479f7e4fa949145d158a916f7521541b089e452 Mon Sep 17 00:00:00 2001 From: pmarg4 Date: Thu, 16 Aug 2018 21:54:43 +0200 Subject: [PATCH 4/5] implemented check for elytras, a part from chestplates, when checking for armor in the starting items --- .idea/modules/{Minicat.iml => minicat.iml} | 0 .idea/modules/{Minicat_main.iml => minicat_main.iml} | 0 .idea/modules/{Minicat_test.iml => minicat_test.iml} | 0 src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java | 1 + src/main/java/com/biel/lobby/utilities/Utils.java | 2 +- 5 files changed, 2 insertions(+), 1 deletion(-) rename .idea/modules/{Minicat.iml => minicat.iml} (100%) rename .idea/modules/{Minicat_main.iml => minicat_main.iml} (100%) rename .idea/modules/{Minicat_test.iml => minicat_test.iml} (100%) diff --git a/.idea/modules/Minicat.iml b/.idea/modules/minicat.iml similarity index 100% rename from .idea/modules/Minicat.iml rename to .idea/modules/minicat.iml diff --git a/.idea/modules/Minicat_main.iml b/.idea/modules/minicat_main.iml similarity index 100% rename from .idea/modules/Minicat_main.iml rename to .idea/modules/minicat_main.iml diff --git a/.idea/modules/Minicat_test.iml b/.idea/modules/minicat_test.iml similarity index 100% rename from .idea/modules/Minicat_test.iml rename to .idea/modules/minicat_test.iml diff --git a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java index d0dcbad..ec33be3 100644 --- a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java +++ b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java @@ -113,6 +113,7 @@ protected void onPlayerRespawnAfterTick(PlayerRespawnEvent evt, Player p) { // TODO Auto-generated method stub super.onPlayerRespawnAfterTick(evt, p); teleportToRandomSpawn(p); + } public double getMinimumHeight(){ double r = 10.0; diff --git a/src/main/java/com/biel/lobby/utilities/Utils.java b/src/main/java/com/biel/lobby/utilities/Utils.java index 21104d1..d2386db 100644 --- a/src/main/java/com/biel/lobby/utilities/Utils.java +++ b/src/main/java/com/biel/lobby/utilities/Utils.java @@ -108,7 +108,7 @@ public static int getArmorSlot(ItemStack itemstack){ if(matstr.contains("HELMET")){ slot = 3; } - if(matstr.contains("CHESTPLATE")){ + if(matstr.contains("CHESTPLATE")||matstr.contains("ELYTRA")){ slot = 2; } if(matstr.contains("LEGGINGS")){ From 14cedaed290842e7aa877dbe12b5050970514514 Mon Sep 17 00:00:00 2001 From: Nil Date: Fri, 17 Aug 2018 16:09:00 +0200 Subject: [PATCH 5/5] clean --- .../biel/lobby/mapes/jocs/BatallaAerea.java | 69 ++++++------------- 1 file changed, 21 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java index f305fe0..6e5d06b 100644 --- a/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java +++ b/src/main/java/com/biel/lobby/mapes/jocs/BatallaAerea.java @@ -2,16 +2,10 @@ import java.util.ArrayList; import java.util.Collections; - -import com.biel.BielAPI.Utils.GUtils; -import org.bukkit.Effect; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Sound; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByEntityEvent; @@ -23,10 +17,7 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; - import com.biel.lobby.mapes.JocScoreRace; -import com.biel.lobby.utilities.Utils; -import org.bukkit.util.Vector; public class BatallaAerea extends JocScoreRace { @@ -35,12 +26,8 @@ protected int getFinishScore() { // TODO Auto-generated method stub return 2 + getPlayers().size(); } - @Override - public String getGameName() { - // TODO Auto-generated method stub - return "Batalla Aerea"; - } + public String getGameName() { return "Batalla Aerea"; } @Override protected ArrayList getStartingItems(Player ply) { ArrayList items = new ArrayList<>(); @@ -51,7 +38,7 @@ protected ArrayList getStartingItems(Player ply) { Potion p1 = new Potion(PotionType.INSTANT_DAMAGE); p1.setSplash(true); items.add(p1.toItemStack(1)); - Potion p2 = new Potion(PotionType.SLOWNESS); + Potion p2 = new Potion(PotionType.WEAKNESS); p2.setSplash(true); items.add(p2.toItemStack(2)); items.add(new ItemStack(Material.ARROW, 1)); @@ -64,17 +51,11 @@ protected ArrayList getStartingItems(Player ply) { return items; } @Override - protected int getBaseSkillUnlockerAmount() { - // TODO Auto-generated method stub - return 1; - } + protected int getBaseSkillUnlockerAmount() {return 1;} // Activa les skills @Override protected void teletransportarTothom() { - for (Player d : getPlayers()) { // d gets successively each value in ar. - teleportToRandomSpawn(d); - } + for (Player d : getPlayers()) { teleportToRandomSpawn(d); } } - protected void teleportToRandomSpawn(Player d) { Location loc; loc = getRandomSpawnLoc(); @@ -88,47 +69,47 @@ private Location getRandomSpawnLoc() { return l; } - @Override - protected void onPlayerDeathByPlayer(PlayerDeathEvent evt, Player killed, - Player killer) { - // + protected void onPlayerDeathByPlayer(PlayerDeathEvent evt, Player killed, Player killer) { super.onPlayerDeathByPlayer(evt, killed, killer); incrementScore(killer); Potion p1 = new Potion(PotionType.REGEN); killer.getInventory().addItem(p1.toItemStack(1)); - killer.getInventory().addItem(getMagnusLauncherItem()); + killer.getInventory().addItem(getRocket()); evt.getDrops().clear(); evt.setDeathMessage(killer.getName() + " ha matat a " + killed.getName() + " [+1]"); updateScoreBoards(); } @Override - protected void onPlayerDamageByPlayer(EntityDamageByEntityEvent evt, Player damaged, Player damager, - boolean ranged) { + protected void onPlayerDamageByPlayer(EntityDamageByEntityEvent evt, Player damaged, Player damager, boolean ranged) { // TODO Auto-generated method stub super.onPlayerDamageByPlayer(evt, damaged, damager, ranged); - if(ranged)damager.getInventory().addItem(new ItemStack(Material.ARROW, 1)); } @Override protected void onPlayerRespawnAfterTick(PlayerRespawnEvent evt, Player p) { // TODO Auto-generated method stub super.onPlayerRespawnAfterTick(evt, p); + // teletransporta a un dels spawns teleportToRandomSpawn(p); } public double getMinimumHeight(){ - double r = 10.0; + //quan es crida comprova l'altura en la que es troba el jugador + double r = 10.0; // altura predeterminada + //agafa la propietat del fitxer de config del mapa si hi és if(pMapaActual().ExisteixPropietat("MinHeight")){ r = pMapaActual().ObtenirPropietatInt("MinHeight"); } return r; } - public ItemStack getMagnusLauncherItem(){ + public ItemStack getRocket(){ + // proporciona un coet quan es crida ItemStack item = new ItemStack(Material.FIREWORK, 1); return item; } + //TODO No funciona s'ha d'arreglar (onPlayerDropItem) @EventHandler public void onPlayerDropItem(PlayerDropItemEvent event) { if (event.getItemDrop().getItemStack().getType() == Material.FIREWORK) { @@ -140,27 +121,19 @@ public void onPlayerDropItem(PlayerDropItemEvent event) { protected void onPlayerMove(PlayerMoveEvent evt, Player p) { // TODO Auto-generated method stub super.onPlayerMove(evt, p); - - if(evt.getTo().getY() < getMinimumHeight()){ - teleportToRandomSpawn(p); + if(evt.getTo().getY() < getMinimumHeight()){ //quan el jugador està en una altura menor que 5 et teletransporta a un respawn aleatori + teleportToRandomSpawn(p); //teletransporta a spawn aleatori + //Control per evitar caigudes un cop teletransportat p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 30, 128, true), true); p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 30, 128, true), true); p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 30, 128, true), true); - p.addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 30, 128, true), true); - // Aixó dona els items inicials als jugadors - - } - - if(p.getInventory().contains(getMagnusLauncherItem(), 1)){ - - }else if(p.getInventory().containsAtLeast(getMagnusLauncherItem(), 2)){ - p.getInventory().remove(getMagnusLauncherItem()); - - } - else{p.getInventory().addItem(getMagnusLauncherItem());} } + // controla que no es doni mes d'un coet a l'hora + if(p.getInventory().containsAtLeast(getRocket(), 2)){ p.getInventory().remove(getRocket());} + else{p.getInventory().addItem(getRocket());} } +}