diff --git a/src/main/java/com/yaohun/enderdragonwars/Main.java b/src/main/java/com/yaohun/enderdragonwars/Main.java index cf7fc21..d1f028f 100644 --- a/src/main/java/com/yaohun/enderdragonwars/Main.java +++ b/src/main/java/com/yaohun/enderdragonwars/Main.java @@ -4,6 +4,8 @@ import com.yaohun.enderdragonwars.effect.types.*; import com.yaohun.enderdragonwars.game.Game; import com.yaohun.enderdragonwars.listener.GameListener; import com.yaohun.enderdragonwars.listener.PlayerListener; +import com.yaohun.enderdragonwars.liveevent.LikeListener; +import com.yaohun.enderdragonwars.liveevent.LiveEvent; import com.yaohun.enderdragonwars.manager.GameManager; import com.yaohun.enderdragonwars.manager.GiftEffectManager; import org.bukkit.Bukkit; @@ -27,6 +29,8 @@ public class Main extends JavaPlugin { Bukkit.getPluginManager().registerEvents(new PlayerListener(), this); Bukkit.getPluginManager().registerEvents(new GameListener(), this); + Bukkit.getPluginManager().registerEvents(new LiveEvent(), this); + Bukkit.getPluginManager().registerEvents(new LikeListener(), this); } @Override diff --git a/src/main/java/com/yaohun/enderdragonwars/game/Game.java b/src/main/java/com/yaohun/enderdragonwars/game/Game.java index b712fd6..3fa5ce0 100644 --- a/src/main/java/com/yaohun/enderdragonwars/game/Game.java +++ b/src/main/java/com/yaohun/enderdragonwars/game/Game.java @@ -81,6 +81,7 @@ public class Game { if(startd){return;} this.player = player; this.startd = true; + this.world = player.getWorld(); this.liveTime = 1000 * 60 * 60 * 3; // 默认下播时间 60秒x60分钟x2小时 // 添加boss血条 updataPlayerData(player); diff --git a/src/main/java/com/yaohun/enderdragonwars/liveevent/GiftEventHandler.java b/src/main/java/com/yaohun/enderdragonwars/liveevent/GiftEventHandler.java deleted file mode 100644 index ebfe163..0000000 --- a/src/main/java/com/yaohun/enderdragonwars/liveevent/GiftEventHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.yaohun.enderdragonwars.liveevent; - -import com.yaohun.enderdragonwars.manager.GiftEffectManager; -import org.bukkit.entity.Player; - -public class GiftEventHandler { - - public static void handlerEffect(Player zhubo, String hideName, String eventName) { - if (eventName.equalsIgnoreCase("清空背包")) { - GiftEffectManager.addGiftEffect(hideName, eventName); - } - } -} diff --git a/src/main/java/com/yaohun/enderdragonwars/liveevent/LikeListener.java b/src/main/java/com/yaohun/enderdragonwars/liveevent/LikeListener.java new file mode 100644 index 0000000..92c5cdf --- /dev/null +++ b/src/main/java/com/yaohun/enderdragonwars/liveevent/LikeListener.java @@ -0,0 +1,32 @@ +package com.yaohun.enderdragonwars.liveevent; + +import com.io.yutian.mclive.event.LiveLikeEvents; +import com.yaohun.enderdragonwars.Main; +import com.yaohun.enderdragonwars.manager.GameManager; +import com.yaohun.enderdragonwars.manager.GiftEffectManager; +import com.yaohun.enderdragonwars.util.RandomUtil; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class LikeListener implements Listener { + @EventHandler//点赞 + public void onDianZan(LiveLikeEvents e) { + Player zhubo = e.getPlayer(); + String userName = ""+ RandomUtil.getRandomInt(999,10000); + if(e.getUser().nickName() != null) { + userName = e.getUser().nickName(); + } + long add_amount = e.getCount(); + GameManager gameManager = Main.gameManager; + gameManager.addDianzan_amount((int) add_amount); + if (gameManager.getDianzan_amount() >= gameManager.getDianzan_need()) { + String eventName_Show = gameManager.getDianzan_event(); + String title = "§c"+eventName_Show; + String subtitle = "§9双击屏幕x"+gameManager.getDianzan_need(); + zhubo.sendTitle(title, subtitle,10, 30, 10); + GiftEffectManager.addGiftEffect(userName,eventName_Show); + gameManager.setDianzan_amount(0); + } + } +} diff --git a/src/main/java/com/yaohun/enderdragonwars/liveevent/LiveEvent.java b/src/main/java/com/yaohun/enderdragonwars/liveevent/LiveEvent.java new file mode 100644 index 0000000..515eb5d --- /dev/null +++ b/src/main/java/com/yaohun/enderdragonwars/liveevent/LiveEvent.java @@ -0,0 +1,65 @@ +package com.yaohun.enderdragonwars.liveevent; + +import com.io.yutian.mclive.event.LiveGiftEvents; +import com.yaohun.enderdragonwars.Main; +import com.yaohun.enderdragonwars.data.GiftData; +import com.yaohun.enderdragonwars.manager.GameManager; +import com.yaohun.enderdragonwars.manager.GiftEffectManager; +import com.yaohun.enderdragonwars.util.GameUtil; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class LiveEvent implements Listener { + + @EventHandler + public void onLive(LiveGiftEvents e){ + Player zhubo = e.getPlayer(); + String userName = e.getUser().nickName(); + boolean butt = false; + if(userName != null){ + userName = e.getUser().nickName(); + butt = true; + } + String giftName = e.getName(); + int giftAmount = (int) e.getAmount(); + if(giftAmount < 0){ + giftAmount = 1; + } + GameManager gameManager = Main.gameManager; + if(gameManager.getGiftData(giftName) == null){ + return; + } + GiftData giftData = gameManager.getGiftData(giftName); + String hideUserName = GameUtil.hideName(userName); + String eventName = giftData.getEvent(); + if(GameUtil.specialGiftEffectTriggers(zhubo,eventName,hideUserName,giftAmount)){ + return; + } + String title = "§c" + eventName; + if(giftAmount >= 2) { + title = "§c" + eventName + " x" + giftAmount; + } + String subtitle = "§9" + giftName; + if(butt) { + subtitle = "§9" + hideUserName; + } + zhubo.sendTitle(title, subtitle,0, 30, 10); + if (giftAmount <= 1) { + giftData.playSoundEvent(); + GiftEffectManager.addGiftEffect(hideUserName, eventName); + } else { + long dadey = 5L; + for (int i = 0; i < giftAmount; i++) { + Bukkit.getScheduler().runTaskLater(Main.plugin, () -> { + giftData.playSoundEvent(); + GiftEffectManager.addGiftEffect(hideUserName, eventName); + }, (long) i * dadey); + } + } + for (Player player : Bukkit.getOnlinePlayers()){ + player.sendMessage("§a礼物: §e"+ hideUserName+" §d送来了 §e"+giftName+"x"+giftAmount); + } + } +} diff --git a/src/main/java/com/yaohun/enderdragonwars/manager/GameManager.java b/src/main/java/com/yaohun/enderdragonwars/manager/GameManager.java index f3c3d75..ac71996 100644 --- a/src/main/java/com/yaohun/enderdragonwars/manager/GameManager.java +++ b/src/main/java/com/yaohun/enderdragonwars/manager/GameManager.java @@ -12,6 +12,9 @@ import java.util.Map; public class GameManager { + private int dianzan = 0; + private int dianzanNeed; + private String eventName; private Map giftDataMap = new HashMap<>(); public GameManager() { @@ -22,6 +25,15 @@ public class GameManager { File file = new File("./plugins/游戏设置", "礼物设置.yml"); FileConfiguration yml = YamlConfiguration.loadConfiguration(file); Bukkit.getConsoleSender().sendMessage("[日志 - 末影龙挑战] 事件注册:"); + this.dianzanNeed = 100; + if(yml.getInt("点赞整蛊.点赞次数") >= 1){ + this.dianzanNeed = yml.getInt("点赞整蛊.点赞次数"); + } + this.eventName = "怪物来袭"; + if(yml.getString("点赞整蛊.效果") != null){ + this.eventName = yml.getString("点赞整蛊.效果"); + } + Bukkit.getConsoleSender().sendMessage("事件: "+this.getDianzan_event()+" 条件: 点赞x"+this.getDianzan_need()); ConfigurationSection section = yml.getConfigurationSection("礼物设置"); if (section == null) { System.out.println("[错误 - 游戏] 礼物设置错误,请检查文件."); @@ -42,4 +54,21 @@ public class GameManager { } return getGiftDataMap().get(giftName); } + + public int getDianzan_need() { + return this.dianzanNeed; + } + + public String getDianzan_event() { + return this.eventName; + } + public int getDianzan_amount() { + return dianzan; + } + public void addDianzan_amount(int add_amount){ + setDianzan_amount(getDianzan_amount()+add_amount); + } + public void setDianzan_amount(int dianzan_amount) { + this.dianzan = dianzan_amount; + } } diff --git a/src/main/java/com/yaohun/enderdragonwars/util/GameUtil.java b/src/main/java/com/yaohun/enderdragonwars/util/GameUtil.java index 698fb4e..116598b 100644 --- a/src/main/java/com/yaohun/enderdragonwars/util/GameUtil.java +++ b/src/main/java/com/yaohun/enderdragonwars/util/GameUtil.java @@ -25,4 +25,22 @@ public class GameUtil { } } } + public static boolean specialGiftEffectTriggers(Player player,String eventName,String show_userName,int amount) { + if (eventName.contains("盲盒")) { + if (eventName.contains("#")) { + String s1 = "love"; + String s2 = "000304"; + String box = s1 + "-" + s2 + "-" + eventName.split("#")[1]; + if (eventName.contains("X")) { + amount = Integer.parseInt(eventName.split("X")[1]); + } + // RBoxAPI.addUserData(player, show_userName, box, amount); + } else { + System.out.println("[错误 - 盲盒] 随机盲盒在礼物设置中配置错误."); + } + return true; + } + return false; + } + } diff --git a/src/main/java/com/yaohun/enderdragonwars/util/GiftUtil.java b/src/main/java/com/yaohun/enderdragonwars/util/GiftUtil.java deleted file mode 100644 index 60e9e4e..0000000 --- a/src/main/java/com/yaohun/enderdragonwars/util/GiftUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.yaohun.enderdragonwars.util; - -import com.yaohun.enderdragonwars.Main; -import com.yaohun.enderdragonwars.data.GiftData; -import com.yaohun.enderdragonwars.liveevent.GiftEventHandler; -import com.yaohun.enderdragonwars.manager.GameManager; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -public class GiftUtil { - - // 执行礼物效果 - public static void executeGiftEffect(Player zhubo, String userName, String giftName, int giftAmount) { - GameManager gameManage = Main.gameManager; - if (gameManage.getGiftData(giftName) == null) { - zhubo.sendMessage("§c[系统]§a礼物 " + giftName + " 的未设置任何礼物效果."); - return; - } - GiftData giftData = gameManage.getGiftData(giftName); - String hideName = GameUtil.hideName(userName); - String eventName = giftData.getEvent(); - if (giftAmount <= 1) { - giftData.playSoundEvent(); - GiftEventHandler.handlerEffect(zhubo, userName, eventName); - } else { - long dadey = 5L; - for (int i = 0; i < giftAmount; i++) { - Bukkit.getScheduler().runTaskLater(Main.plugin, () -> { - giftData.playSoundEvent(); - GiftEventHandler.handlerEffect(zhubo, userName, eventName); - }, (long) i * dadey); - } - } - } -}