Compare commits
	
		
			No commits in common. "1e4e9a5e52d02ca033f541a648e1615997566a80" and "c3d88cdfbefa1b95bb0aef809b178271638786f9" have entirely different histories.
		
	
	
		
			1e4e9a5e52
			...
			c3d88cdfbe
		
	
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -3,6 +3,3 @@ | ||||||
| /.idea/misc.xml | /.idea/misc.xml | ||||||
| /.idea/jarRepositories.xml | /.idea/jarRepositories.xml | ||||||
| /.idea/.gitignore | /.idea/.gitignore | ||||||
| /.idea/ |  | ||||||
| /out/ |  | ||||||
| /target/ |  | ||||||
|  |  | ||||||
|  | @ -43,7 +43,6 @@ public class Main extends JavaPlugin { | ||||||
|         DemonAPI.sendConsoleMessage("§f[§6!§f] §b极光像素工作室出品"); |         DemonAPI.sendConsoleMessage("§f[§6!§f] §b极光像素工作室出品"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     @Override |     @Override | ||||||
|     public void onDisable() { |     public void onDisable() { | ||||||
|         for (String uuid : serverManage.getDataHashMap().keySet()){ |         for (String uuid : serverManage.getDataHashMap().keySet()){ | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ public class PlayerData { | ||||||
|         this.exp = new BigInteger(expString); |         this.exp = new BigInteger(expString); | ||||||
|         String totalExpString = fileConfiguration.getString("totalExp"); |         String totalExpString = fileConfiguration.getString("totalExp"); | ||||||
|         this.totalExp = new BigInteger(totalExpString); |         this.totalExp = new BigInteger(totalExpString); | ||||||
| 
 |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public String getUuid() { |     public String getUuid() { | ||||||
|  | @ -87,10 +86,9 @@ public class PlayerData { | ||||||
|             // 加载文件配置 |             // 加载文件配置 | ||||||
|             FileConfiguration yml = YamlConfiguration.loadConfiguration(file); |             FileConfiguration yml = YamlConfiguration.loadConfiguration(file); | ||||||
|             yml.set("uuid",uuid); |             yml.set("uuid",uuid); | ||||||
|             UUID uuid1 = UUID.fromString(uuid); |             Player player = Bukkit.getPlayer(UUID.fromString(uuid)); | ||||||
|             Player player = Bukkit.getPlayer(uuid1); |  | ||||||
|             if(player != null) { |             if(player != null) { | ||||||
|                 System.out.println("[调试 - UUID检测] uuid: "+uuid+"  name: "+player.getName()); |                 System.out.println("[日志 - 等级] 玩家 " + player.getName() + " 已创建档案数据."); | ||||||
|                 yml.set("name",player.getName()); |                 yml.set("name",player.getName()); | ||||||
|                 // 判断玩家之前是否存在等级数据 |                 // 判断玩家之前是否存在等级数据 | ||||||
|                 FileConfiguration config = Main.plugin.getConfig(); |                 FileConfiguration config = Main.plugin.getConfig(); | ||||||
|  | @ -98,19 +96,16 @@ public class PlayerData { | ||||||
|                 if(config.getInt(str+"level") >= 1){ |                 if(config.getInt(str+"level") >= 1){ | ||||||
|                     int dlevel = config.getInt(str+"level"); |                     int dlevel = config.getInt(str+"level"); | ||||||
|                     int exp = config.getInt(str+"exp"); |                     int exp = config.getInt(str+"exp"); | ||||||
|                     BigInteger totalExp = new BigInteger(config.getString(str+"totalExp")); |                     int totalExp = config.getInt(str+"totalExp"); | ||||||
|                     yml.set("level", dlevel); |                     yml.set("level", dlevel); | ||||||
|                     yml.set("exp", exp); |                     yml.set("exp", exp); | ||||||
|                     yml.set("totalExp", totalExp.toString()); |                     yml.set("totalExp", totalExp); | ||||||
|                     System.out.println("[日志 - 等级] 玩家 " + player.getName() + " 已创建数据档案.#"+config.getInt(str+"level")+" - "+totalExp.toString()); |  | ||||||
|                 }else{ |                 }else{ | ||||||
|                     yml.set("level", 1); |                     yml.set("level", 1); | ||||||
|                     yml.set("exp", 0); |                     yml.set("exp", 0); | ||||||
|                     yml.set("totalExp", 1); |                     yml.set("totalExp", 1); | ||||||
|                     System.out.println("[日志 - 等级] 玩家 " + player.getName() + " 等级低于1级,已创建默认数据档案.#"+config.getInt(str+"level")+" - "+config.getInt(str+"totalExp")); |  | ||||||
|                 } |                 } | ||||||
|             } else { |             }else { | ||||||
|                 System.out.println("[调试 - UUID检测] uuid: "+uuid+"  name: 检测失败"); |  | ||||||
|                 yml.set("level", 1); |                 yml.set("level", 1); | ||||||
|                 yml.set("exp", 0); |                 yml.set("exp", 0); | ||||||
|                 yml.set("totalExp", 1); |                 yml.set("totalExp", 1); | ||||||
|  |  | ||||||
|  | @ -1,37 +1,20 @@ | ||||||
| package me.Demon.DemonLevels.listener; | package me.Demon.DemonLevels.listener; | ||||||
| 
 | 
 | ||||||
| import me.Demon.DemonLevels.Main; | import me.Demon.DemonLevels.Main; | ||||||
| import me.Demon.DemonLevels.api.DLevelAPI; |  | ||||||
| import me.Demon.DemonLevels.data.PlayerData; | import me.Demon.DemonLevels.data.PlayerData; | ||||||
| import org.bukkit.configuration.file.FileConfiguration; |  | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.event.EventHandler; | import org.bukkit.event.EventHandler; | ||||||
| import org.bukkit.event.Listener; | import org.bukkit.event.Listener; | ||||||
| import org.bukkit.event.player.PlayerJoinEvent; | import org.bukkit.event.player.PlayerJoinEvent; | ||||||
| import org.bukkit.event.player.PlayerQuitEvent; | import org.bukkit.event.player.PlayerQuitEvent; | ||||||
| import org.bukkit.scheduler.BukkitRunnable; |  | ||||||
| 
 |  | ||||||
| import java.math.BigInteger; |  | ||||||
| 
 | 
 | ||||||
| public class JoinEvent implements Listener { | public class JoinEvent implements Listener { | ||||||
| 
 | 
 | ||||||
|     @EventHandler |     @EventHandler | ||||||
|     public void onJoin(PlayerJoinEvent e){ |     public void onJoin(PlayerJoinEvent e){ | ||||||
|         Player p = e.getPlayer(); |         Player p = e.getPlayer(); | ||||||
|         String name = p.getName(); |  | ||||||
|         String uuid = p.getUniqueId().toString(); |         String uuid = p.getUniqueId().toString(); | ||||||
|         PlayerData playerData = Main.serverManage.getPlayerData(uuid); // 读取玩家的等级数据 |         Main.serverManage.getPlayerData(uuid); // 读取玩家的等级数据 | ||||||
|         new BukkitRunnable() { |  | ||||||
|             @Override |  | ||||||
|             public void run() { |  | ||||||
|                 FileConfiguration yml = Main.plugin.getConfig(); |  | ||||||
|                 int totalExp = yml.getInt("levelstats."+name+".totalExp"); |  | ||||||
|                 if(totalExp > playerData.getTotalExp().intValue()){ |  | ||||||
|                     DLevelAPI.setTotalExp(p,new BigInteger(yml.getString("levelstats."+name+".totalExp"))); |  | ||||||
|                     System.out.println("[调试 - 修正] 玩家 "+name+" 经验出现错误,已被纠正."); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }.runTaskLater(Main.plugin,100L); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @EventHandler |     @EventHandler | ||||||
|  |  | ||||||
|  | @ -94,9 +94,9 @@ public class MobDeath implements Listener { | ||||||
|                 // 获取队伍成员列表 |                 // 获取队伍成员列表 | ||||||
|                 List<String> memberList = teamData.getMemberList(); |                 List<String> memberList = teamData.getMemberList(); | ||||||
|                 double teamExp = teamMap.get(teamData); // 获取队伍瓜分经验数量 |                 double teamExp = teamMap.get(teamData); // 获取队伍瓜分经验数量 | ||||||
|                 if(memberList.size() >= 2) { // 当成员满足3人后 开启队伍经验加成 |                 if(memberList.size() >= 2) { // 当成员满足2人后 开启队伍经验加成 | ||||||
|                     double teamAddonExp = 1.0; |                     double teamAddonExp = 1.0; | ||||||
|                     if (Main.serverManage.isLinkDemonVipSystem()) { |                     if(Main.serverManage.isLinkDemonVipSystem()) { | ||||||
|                         int vip_level = DvipAPI.getLevel(owner.getName()); |                         int vip_level = DvipAPI.getLevel(owner.getName()); | ||||||
|                         if (vip_level >= 8) { |                         if (vip_level >= 8) { | ||||||
|                             teamAddonExp = 1.30; |                             teamAddonExp = 1.30; | ||||||
|  | @ -112,46 +112,41 @@ public class MobDeath implements Listener { | ||||||
|                         magnificationDisplay = magnificationDisplay + (teamAddonExp - 1); |                         magnificationDisplay = magnificationDisplay + (teamAddonExp - 1); | ||||||
|                     } |                     } | ||||||
|                     teamExp = teamExp * teamAddonExp; |                     teamExp = teamExp * teamAddonExp; | ||||||
|                 } |                     List<String> playerList = new ArrayList<>(); // 参与经验共享的成员 | ||||||
|                 List<String> playerList = new ArrayList<>(); // 参与经验共享的成员 |                     for (String memberName : memberList){// 遍历成员列表 | ||||||
|                 for (String memberName : memberList){// 遍历成员列表 |                         Player teamPlayer = Bukkit.getPlayer(memberName); | ||||||
|                     Player teamPlayer = Bukkit.getPlayer(memberName); |                         if(teamPlayer == null || !teamPlayer.isOnline()){ | ||||||
|                     if(teamPlayer == null || !teamPlayer.isOnline()){ |                             continue; | ||||||
|                         continue; |                         } | ||||||
|                     } |                         // 获取队友所在世界名 | ||||||
|                     // 获取队友所在世界名 |                         String locationWorld = teamPlayer.getWorld().getName(); | ||||||
|                     String locationWorld = teamPlayer.getWorld().getName(); |                         if(supportedDirectness(locationWorld)){ // 判断玩家所处世界是否是新手世界 | ||||||
|                     if(supportedDirectness(locationWorld)){ // 判断玩家所处世界是否是新手世界 |  | ||||||
|                         playerList.add(memberName); |  | ||||||
|                     }else if(p.getWorld().equals(teamPlayer.getWorld())){ |  | ||||||
|                         // 若玩家所处世界相同则开启共享 |  | ||||||
|                         // 但前提是他们两点距离不超过15格 |  | ||||||
|                         double distance = p.getLocation().distance(teamPlayer.getLocation()); |  | ||||||
|                         if(distance <= 50){ |  | ||||||
|                             playerList.add(memberName); |                             playerList.add(memberName); | ||||||
|  |                         }else if(p.getWorld().equals(teamPlayer.getWorld())){ | ||||||
|  |                             // 若玩家所处世界相同则开启共享 | ||||||
|  |                             // 但前提是他们两点距离不超过50格 | ||||||
|  |                             double distance = p.getLocation().distance(teamPlayer.getLocation()); | ||||||
|  |                             if(distance <= 50){ | ||||||
|  |                                 playerList.add(memberName); | ||||||
|  |                             } | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                     int magnificationDisplayString = (int) (magnificationDisplay * 100); | ||||||
|                 int magnificationDisplayString = (int) (magnificationDisplay * 100); |                     for (String memberName : playerList){ | ||||||
|                 for (String memberName : memberList){ |                         Player player = Bukkit.getPlayer(memberName); | ||||||
|                     Player player = Bukkit.getPlayer(memberName); |                         if(player == null){continue;} | ||||||
|                     if(player == null){continue;} |                         int shareExperience = (int) (teamExp / playerList.size()); | ||||||
|                     if(!playerList.contains(memberName)){ |                         // 给予玩家经验值 | ||||||
|                         player.sendMessage("§f[§e提示§f] §7由于距离过远,组队经验共享失败."); |                         DLevelAPI.addExp(p,shareExperience); | ||||||
|                         continue; |                         experienceGainTips(player,shareExperience,magnificationDisplayString); | ||||||
|  |                         if(magnificationDisplayString >= 1){ | ||||||
|  |                             player.sendMessage("§f[§e提示§f] §7队伍经验分享你获得了§6" + shareExperience + "§7! [§a+" + magnificationDisplayString + "%§7]"); | ||||||
|  |                         } else { | ||||||
|  |                             player.sendMessage("§f[§c消息§f] §7队伍经验分享你获得了 §d§l+" + shareExperience); | ||||||
|  |                         } | ||||||
|  |                         ShareExpEvent share_event = new ShareExpEvent(player, shareExperience, playerList); | ||||||
|  |                         Bukkit.getPluginManager().callEvent(share_event); | ||||||
|                     } |                     } | ||||||
|                     // 检测玩家在队伍里但是不在共享名单里 |  | ||||||
|                     int shareExperience = (int) (teamExp / playerList.size()); |  | ||||||
|                     // 给予玩家经验值 |  | ||||||
|                     DLevelAPI.addExp(p,shareExperience); |  | ||||||
|                     experienceGainTips(player,shareExperience,magnificationDisplayString); |  | ||||||
|                     if(magnificationDisplayString >= 1){ |  | ||||||
|                         player.sendMessage("§f[§e提示§f] §7队伍经验分享你获得了§6" + shareExperience + "§7! [§a+" + magnificationDisplayString + "%§7]"); |  | ||||||
|                     } else { |  | ||||||
|                         player.sendMessage("§f[§c消息§f] §7队伍经验分享你获得了 §d§l+" + shareExperience); |  | ||||||
|                     } |  | ||||||
|                     ShareExpEvent share_event = new ShareExpEvent(player, shareExperience, playerList); |  | ||||||
|                     Bukkit.getPluginManager().callEvent(share_event); |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -11,18 +11,18 @@ public class UpgradePrompt implements Listener { | ||||||
| 
 | 
 | ||||||
|     @EventHandler |     @EventHandler | ||||||
|     public void onUpLevel(UpLevelEvant e){ |     public void onUpLevel(UpLevelEvant e){ | ||||||
|  |         // 获取触发事件的玩家 | ||||||
|  |         Player p = e.getPlayer(); | ||||||
|  |         // 获取玩家名称 | ||||||
|  |         String name = p.getName(); | ||||||
|         // 获取玩家的新等级 |         // 获取玩家的新等级 | ||||||
|         int level = e.getLevel(); |         int level = e.getLevel(); | ||||||
|  |         // 从配置中获取当前等级对应的前缀 | ||||||
|  |         String prefix = Main.configYml.getRankTitle(level); | ||||||
|  |         // 广播消息,通知所有玩家该玩家达到新的境界 | ||||||
|  |         Bukkit.broadcastMessage("§f[§c§l公告§f] §a玩家§e" + name + "§a境界成功达到了 §7[" + prefix + "§7]"); | ||||||
|         // 检查玩家的等级是否是5的倍数 |         // 检查玩家的等级是否是5的倍数 | ||||||
|         if (level % 10 == 0) { |         if (level%5 == 0) { | ||||||
|             // 获取触发事件的玩家 |  | ||||||
|             Player p = e.getPlayer(); |  | ||||||
|             // 获取玩家名称 |  | ||||||
|             String name = p.getName(); |  | ||||||
|             // 从配置中获取当前等级对应的前缀 |  | ||||||
|             String prefix = Main.configYml.getRankTitle(level); |  | ||||||
|             // 广播消息,通知所有玩家该玩家达到新的境界 |  | ||||||
|             Bukkit.broadcastMessage("§f[§c§l公告§f] §a玩家§e" + name + "§a境界成功达到了 §7[" + prefix + "§7]"); |  | ||||||
|             // 获取玩家对象 |             // 获取玩家对象 | ||||||
|             Player player = Bukkit.getPlayer(name); |             Player player = Bukkit.getPlayer(name); | ||||||
|             if(player == null){return;} |             if(player == null){return;} | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| name: DemonLevels | name: DemonLevels | ||||||
| main: me.Demon.DemonLevels.Main | main: me.Demon.DemonLevels.Main | ||||||
| version: 2.1.9 | version: 2.1.6 | ||||||
| depend: [DemonTeam] | depend: [DemonTeam] | ||||||
| commands: | commands: | ||||||
|   dlevel: |   dlevel: | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user