测试版1.0.3

This commit is contained in:
tianyu 2024-08-11 13:14:26 +08:00
parent f62e66ad05
commit 5c88e81278
8 changed files with 149 additions and 48 deletions

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -12,6 +12,9 @@ import java.util.Map;
public class GameManager {
private int dianzan = 0;
private int dianzanNeed;
private String eventName;
private Map<String, GiftData> 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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}
}
}