【问题标题】:How to get an elapsed time for this?如何获得此经过的时间?
【发布时间】:2014-04-25 06:48:30
【问题描述】:

我正在创建一个 Spigot(Bukkit(Minecraft 服务器软件)的高性能分支)插件,它与 Bungee(用于管理多个 spigot 实例的代理服务器)服务器通信。

我有一个功能,当您键入命令“/setbar (time-in-seconds) (message)”时,它将使用 API(如果您熟悉 BarAPI)在连接到的每个服务器上创建一个栏Bungee 实例。

这样做的问题是,当玩家在发出命令后加入其中一个 Spigot 服务器时,Bar 不存在。我通过在代理级别存储栏的信息并将这些值发送到玩家尝试加入的特定 Spigot 实例来解决这个问题。

好的,足够的背景信息。我遇到的问题是我将管理员(或发出命令的人)请求的时间存储在变量中。当用户加入时,显然时间会稍微减少(或减少很多。)我想确保加入的用户收到正确的经过时间的方式,(所以 BarAPI 知道计时器图形需要多大be),是将命令执行的时间存储在变量(currentTimeMillis / currentTimeNano)中并将其转换为秒,然后从命令中指定的时间中减去该时间。

我知道我的逻辑存在缺陷,我似乎无法计算出数学。我知道这很简单,但是您能提供的任何帮助都会非常有益。

提前致谢。

后记:任何我未能提供的信息,请告诉我,我会将其添加到此帖子中。

【问题讨论】:

  • 将时间存储在 HashMap 中,然后当玩家加入时在地图中显示时间条如何?

标签: java sql minecraft bukkit


【解决方案1】:

我意识到这是一个“无休止”的问题,因为如果我实际上没有提供任何代码,则没有确切的答案。

不过,这是我用简单的英语解决它的方法:

  • 存储第一次执行命令的时间(以毫秒为单位)。

  • 下次执行命令时,将新值中的第一个值去掉,除以1000得到秒值。

  • 秒值是经过的时间。一旦从最初为条形提供的秒值中减去秒值,就可以找到剩余的时间。

  • 删除相关用户的栏;重新创建相同的值,但用秒替换新计算的秒值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多