Git Product home page Git Product logo

shoal's People

Contributors

polar-pumpkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

bkm016 mscmdd

shoal's Issues

VoteUp 2 开发计划

专门开一个 Issue 用于记录 VoteUp 2 计划在未来版本中加入的激动人心的新功能!
(其实是归纳当前所想到的新功能,防止我忘记)
同时也可以针对某一项新功能的具体设计而在此 Issue 中讨论。


新投票设置

  • 允许匿名投票

    匿名投票功能可以在插件配置文件中开关,若此功能开启,且在投票中设置允许匿名投票,则其他玩家在参与投票时可选择匿名投票,将不会在“投票参与者”界面中展示出可以辨识其玩家身份的客观信息。(若该匿名玩家在“看法”中使用了常用的口头禅等信息自爆了,我也没办法)

    关于此功能当前的待决定内容:

    • 是否在数据文件中保存匿名玩家的客观辨识数据?(例如玩家 UUID 或用户名)

      保存,则仍然拥有办法查询匿名投票背后的参与者,但是这属于服务器内部管理的问题
      若不保存,则在某些必要的情况下无法查询匿名投票者的真实信息。

    • 是否设置某些权限,可查看匿名投票者的真实信息?

      例如投票发起人,拥有 VoteUp 的管理员权限(VoteUp.adminVoteUp.*)的玩家

  • 投票进度/结果公开 [Issue #2]

    能否在config文件中设定正在投票的反对和同意可以在玩家投票完后公示

    投票进度公开后,任何玩家都可以在该投票的详细信息界面查看当前的投票参与者列表,及其看法与投票选项。且在玩家投票后立刻全服通知。

    投票结果公开后,全服玩家都可以在投票结束后收到通知信息。(当前设计应该是拥有提醒权限(VoteUp.notice)或投票发起人可以在投票结束后收到投票结果的通知信息,且当目标玩家不在线时通知被挂起)

  • 允许发起人编辑已发布的投票

    编辑已发布的投票功能可以在插件配置文件中开关,若此功能开启,则投票发起人或拥有 VoteUp 的管理员权限的玩家可以在该投票的详细信息界面进入该投票的编辑模式并修改投票内容。

    关于此功能当前的待决定内容:

    • 是否在编辑保存后清空参与者数据/重新发布?

      开始我是这么决定的,但是现在我所设想的是在编辑后挂起一个通知,等到当时已参与投票的玩家上线后发送通知信息,由其自己决定是否修改投票选项及“看法”。

  • 允许参与者编辑投票选项

    投票选项编辑功能可以在插件配置文件中开关,若此功能开启,则投票参与者可以在投票结束前在该投票的详细信息界面编辑已经决定的投票选项(例如从同意票修改成反对票)并重新发表“看法”。


新 Gui 界面

  • 插件主界面

    [Issue #2]

    能否加入一个可显示目前所有正在进行的投票的功能

    加入一个查看所有正在进行的投票的快捷指令

    加入一个查看我自己的正在进行的快捷指令

    插件主界面包含了基本功能,例如发起投票,检索投票(例如某玩家的投票进行中的投票自己发起的投票所有投票自己参与的投票),查看投票详细信息等。

    主界面的**位置/显眼位置将会摆放最新的投票。底部将会依次摆放:创建投票,我的投票,所有投票,大概吧,上面检索投票的分类是我撰写这篇 Issue 时想到的,还没想好怎么设计 Gui。也许后面会推出根据条件式来搜索投票的功能,类似 CoreProtect 的命令参数。
    例如:

    • time:1d 1天前发布的投票
    • user:EntityParrot_ 由玩家 EntityParrot_ 发布的投票
    • open:true 正在进行中的投票
  • 投票参与者列表/投票列表

    列出目标投票的所有参与者,展示他们的用户名,所选投票选项(同意,中立或反对),以及他们发表的“看法”。

    列出(符合条件的)所有投票,点击进入投票详细信息页面以进一步查看信息或进行操作。

  • 投票详细信息页面/编辑投票页面完善

    完善位于该页面底部的(在刚发布的 VoteUp v2.0-Beta 中)已存在的几个按钮的功能。

    编辑投票页面即原创建投票页面,为添加以上的新投票设置而新增按钮。


其他

  • Issue #2

    加入一个玩家加入时提醒玩家什么投票正在进行的功能

    可以在投票的那个自动执行上明示白名单可以执行的命令吗?(虽然我知道直接改文件也可以办到)

    支持使用权限树来配置指令,例如限制gamemode.*权限树下的指令使用,这样可以更加精确的配置指令使用,甚至有更多可能

  • Issue #1

    可以看到正在进行的投票剩余时间

最后一个功能的实现对我来说可能有点难。

第一个功能其实是 VoteUp 项目最开始的计划内容之一。


以上

至此已是我当前对 VoteUp 2 的开发计划,我想的应该就这些了,也有可能我在撰写此 Issue 的时候已经忘记了,我是在数小时前上晚修时想的这些内容。

若您在使用过程中遇到任何问题,或对功能有建议,欢迎随时在该 Github 项目中发起新的 Issue,或在 MCBBS 帖子中回复/私信我。我会尽快尝试修复。

若喜欢本插件,欢迎在 MCBBS 帖子 中给我留下一个评分~ 或者在该 Github 项目中留下您的一个 Star。

关注(Watch)此 Github 项目,这样您就不会错过任何一个 Release 更新或 Issue 内容。

感谢您使用并支持 VoteUp。

建议加入功能

  • 能否加入一个可显示目前所有正在进行的投票的功能

  • 在config文件中加入一个最低通过人数限制,最低反对人数限制,这样可以避免设定1人通过导致投票无意义(没测试行不行,理论可以)

  • 加入一个查看所有正在进行的投票的快捷指令

  • 加入一个玩家加入时提醒玩家什么投票正在进行的功能

  • 加入一个查看我自己的正在进行的快捷指令

  • 能否在config文件中设定正在投票的反对和同意可以在玩家投票完后公示

  • 加入一个指令白名单,这个不用解释了吧

  • 加入一个可自己设定id的功能,

bug:voteup2崩溃

输入/vote create 崩溃,核心akarin #33 1.15.2
旧版文件未删除
[20:56:46] [Server thread/ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'vote' in plugin VoteUp v2.0-BETA at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:760) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1852) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1660) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1093) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1086) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:1223) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:958) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at java.lang.Thread.run(Unknown Source) [?:1.8.0_251] Caused by: java.lang.IllegalArgumentException: Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got 0) at org.apache.commons.lang.Validate.isTrue(Validate.java:136) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at org.bukkit.craftbukkit.v1_15_R1.CraftServer.createInventory(CraftServer.java:1677) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at org.bukkit.Bukkit.createInventory(Bukkit.java:1107) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] at net.shoal.sir.voteup.data.inventory.CreateInventoryHolder.construct(CreateInventoryHolder.java:52) ~[?:?] at net.shoal.sir.voteup.data.inventory.CreateInventoryHolder.<init>(CreateInventoryHolder.java:44) ~[?:?] at net.shoal.sir.voteup.command.subcommands.CreateCmd.execute(CreateCmd.java:64) ~[?:?] at org.serverct.parrot.parrotx.command.CommandHandler.onCommand(CommandHandler.java:53) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.15.2.jar:git-Akarin-"39eaaef"] ... 17 more

重投问题,重新投票有效,且报错

12:45:46 ERROR]: Could not pass event PlayerJoinEvent to VoteUp v2.0.5-BETA
java.util.ConcurrentModificationException: null
	at java.util.HashMap.forEach(HashMap.java:1432) ~[?:?]
	at net.shoal.sir.voteup.config.CacheManager.lambda$report$5(CacheManager.java:86) ~[VoteUp-2.0.5-BETA.jar:?]
	at java.util.HashMap.forEach(HashMap.java:1429) ~[?:?]
	at net.shoal.sir.voteup.config.CacheManager.report(CacheManager.java:85) ~[VoteUp-2.0.5-BETA.jar:?]
	at net.shoal.sir.voteup.listener.PlayerJoinListener.onJoin(PlayerJoinListener.java:61) ~[VoteUp-2.0.5-BETA.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor7.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:git-Paper-238]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.2.jar:git-Paper-238]
	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.2.jar:git-Paper-238]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at net.minecraft.server.players.PlayerList.placeNewPlayer(PlayerList.java:325) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.handleConfigurationFinished(ServerConfigurationPacketListenerImpl.java:130) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.handle(ServerboundFinishConfigurationPacket.java:18) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.a(ServerboundFinishConfigurationPacket.java:9) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:53) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1324) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-238]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
[12:45:46 INFO]: AoMe joined the game
[12:45:46 INFO]: AoMe[/127.0.0.1:13499] logged in with entity id 3661 at ([world]29.14331783040025, 65.0, 94.47712955055734)
[12:45:52 INFO]: AoMe issued server command: /vote view 00c357be-9c86-4521-bb27-9817726c7242
[12:45:56 INFO]: AoMe lost connection: Disconnected
[12:45:56 INFO]: AoMe left the game
[12:45:58 INFO]: UUID of player AoMe is b65076b5-f062-3000-87c3-c70d6339a3c4
[12:45:58 ERROR]: Could not pass event PlayerJoinEvent to VoteUp v2.0.5-BETA
java.util.ConcurrentModificationException: null
	at java.util.HashMap.forEach(HashMap.java:1432) ~[?:?]
	at net.shoal.sir.voteup.config.CacheManager.lambda$report$5(CacheManager.java:86) ~[VoteUp-2.0.5-BETA.jar:?]
	at java.util.HashMap.forEach(HashMap.java:1429) ~[?:?]
	at net.shoal.sir.voteup.config.CacheManager.report(CacheManager.java:85) ~[VoteUp-2.0.5-BETA.jar:?]
	at net.shoal.sir.voteup.listener.PlayerJoinListener.onJoin(PlayerJoinListener.java:61) ~[VoteUp-2.0.5-BETA.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor7.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:git-Paper-238]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.2.jar:git-Paper-238]
	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.2.jar:git-Paper-238]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
	at net.minecraft.server.players.PlayerList.placeNewPlayer(PlayerList.java:325) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.handleConfigurationFinished(ServerConfigurationPacketListenerImpl.java:130) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.handle(ServerboundFinishConfigurationPacket.java:18) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.a(ServerboundFinishConfigurationPacket.java:9) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:53) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1324) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-238]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-238]
	at java.lang.Thread.run(Thread.java:1623) ~[?:?]
[12:45:58 INFO]: AoMe joined the game
[12:45:58 INFO]: AoMe[/127.0.0.1:13514] logged in with entity id 3691 at ([world]29.14331783040025, 65.0, 94.47712955055734)
[12:46:03 INFO]: AoMe issued server command: /vote view 00c357be-9c86-4521-bb27-9817726c7242
[12:46:11 INFO]: AoMe issued server command: /vote view 00c357be-9c86-4521-bb27-9817726c7242

建議後續能新增的功能

  • 管理員能夠刪除提早結束投票的功能
  • 管理員能夠刪除正在進行的投票的功能

除此之外目前在服內用起來非常的開心,感謝大大開發這個投票插件!

1.16.1 说需要前置??

[Server thread/ERROR]: Could not load 'plugins/VoteUp-2.0.3-BETA.jar' in folder 'plugins'
org.bukkit.plugin.UnknownDependencyException: Unknown dependency ParrotX. Please download and install ParrotX to run this plugin.

[Server thread/INFO]: Plugins (4): CoreProtect, Skript, GroupManager, TabooSK

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.