• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

资源图标

开源 工具 其他 DoubleLoginFix — 修复登陆插件新版的影分身BUG[1.7.10–1.12.2] 1.0.0

登录后下载
版权类型
转载
插件中文名称
影分身修复、修复插件
插件英文名称
DoubleLoginFix
原帖地址
https://www.mcbbs.net/thread-817128-1-1.html
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. 其他核心
语言支持
多语言
前置组件
适配版本(Java)
  1. 1.12
  2. 1.11
  3. 1.10
  4. 1.9
  5. 1.8
  6. 1.7
DoubleLoginFix 修复新版影分身BUG插件,一款防影分身插件

Bug问题:

卡出两个同ID玩家新操作
目前只有支持bukkit的服务端会出现此Bug
(比如KC或者Catsever)
而绝大多数现有1.7.10普通启动器服务器此bug依旧存在
经过试验
AuthMe以及Fastlogin各版本皆有此项Bug
如果作为一个1.7.10腐竹对此Bug无任何了解或无法防御此Bug
可以选择此插件


0.png

msg: 啦啦啦~出现了一个分身BUG,但是你无法使用~


插件原理:
当玩家进入服务器
检测玩家列表中是否有同名的玩家
如果有则踢掉此ID的所有玩家

  1. package com.anotherera.fix;

  2. import java.io.File;
  3. import java.util.Collection;
  4. import java.util.HashSet;
  5. import java.util.List;

  6. import org.bukkit.Bukkit;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.HandlerList;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.player.PlayerJoinEvent;
  12. import org.bukkit.plugin.java.JavaPlugin;

  13. public class DoubleLoginFix extends JavaPlugin {

  14. public static boolean enable;

  15. @Override
  16. public void onEnable() {
  17. if (!getDataFolder().exists()) {
  18. getDataFolder().mkdir();
  19. }
  20. File file = new File(getDataFolder(), "config.yml");
  21. if (!(file.exists())) {
  22. saveDefaultConfig();
  23. }
  24. reloadConfig();
  25. getServer().getPluginManager().registerEvents(new PluginListener(getConfig().getString("msg")), this);
  26. }

  27. @Override
  28. public void onDisable() {
  29. HandlerList.unregisterAll(this);
  30. }

  31. public static String dudulu() {
  32. return "嘟嘟噜此插件由AnotherStar提供";
  33. }

  34. public class PluginListener implements Listener {

  35. private final String msg;

  36. public PluginListener(String msg) {
  37. this.msg = msg;
  38. }

  39. @EventHandler
  40. public void fix(PlayerJoinEvent e) {
  41. Collection<? extends Player> pl = getServer().getOnlinePlayers();
  42. HashSet<String> ps = new HashSet<>();
  43. for (Player ep : pl) {
  44. System.out.println(ep.getName());
  45. if (ps.contains(ep.getName().toLowerCase())) {
  46. ep.kickPlayer(msg);
  47. break;
  48. } else {
  49. ps.add(ep.getName().toLowerCase());
  50. }
  51. }
  52. }

  53. }

  54. }




本人第一次在插件版发布修复插件
请各位大佬多多关照~
如果有问题可以在站内私信或者加我QQ:1318481736私聊
此Bug修复不唯一,站内可修复插件还有一个,但因为链接过期只有源码,所以我发布了个其他方法修复的









如果发现插件无法正常使用请根据服务器核心给配置文件转码
(不会转码的腐竹都拉出去喂阿干!)


希望各位能在下方评论和留言~
感谢~~

后退
顶部 底部