StreamCamera:修订间差异

来自lxStd Wiki
无编辑摘要
无编辑摘要
 
(未显示同一用户的14个中间版本)
第3行: 第3行:


本插件主要用于方便直播,相关设置还需要自己摸索!
本插件主要用于方便直播,相关设置还需要自己摸索!
本插件不是直播插件,只是一个可以辅助直播的监控插件!你需要打开一个客户端,将客户端设为相机玩家,然后用直播软件把客户端画面推流到直播间!
'''请注意!焦点玩家和相机玩家都存在时,相机玩家的背包会被设定成和相机玩家相同的背包,请自行避免焦点玩家的恶意操作导致的例如ItemBan不必要麻烦!!!'''
最近更新了很多功能,可能要看看配置文件详解.


==== 相机玩家:Camera Player ====
==== 相机玩家:Camera Player ====
第9行: 第15行:
指令: <code>/actcamera <PlayerName></code>,这个指令中的<code>PlayerName</code>指相机玩家的账户名。
指令: <code>/actcamera <PlayerName></code>,这个指令中的<code>PlayerName</code>指相机玩家的账户名。


在执行这个指令后,会显示<code>Set. Now, <PlayerName> is the camera.</code>
在执行这个指令后,相机玩家会变为旁观模式,且除非相机玩家客户端手动切换,否则永久不变。(请不要在相机玩家未清空的情况下更改模式,否则会出bug,这个bug完全是自己作的,不给修)


此时,假定相机玩家名为<code>Notch</code>,指令是:<code>/actcamera Notch</code>,返回是:<code>Set. Now, Notch is the camera.</code>
此时,假定相机玩家名为<code>Notch</code>,指令是:<code>/actcamera Notch</code>


现在,相机玩家已经设置完成,需要注意的是,直播端的Minecraft客户端不应当放在系统后台或打开任何GUI,否则当焦点玩家 (Focus Player)切换世界时,直播客户端会返回到暂停页面,影响直播。因此不要使用本机后台直播。
现在,相机玩家已经设置完成,需要注意的是,如果相机玩家客户端需要放入后台,请使用 <code>F3</code> + <code>P</code> 来 <code>关闭</code> <code>失去焦点时暂停</code> 功能


===== 相机玩家的现存问题和相比原版旁观者的优劣势。 =====
===== 相机玩家的现存问题和相比原版旁观者的优劣势。 =====
现存问题是,每3秒有极小几率出现可察觉性的旁观闪烁问题,造成原因是焦点玩家 (Focus Player)对于相机玩家,在无旁观时可见,但为了解决原版问题,需要每3秒瞬间刷新旁观。该问题可能与延时有关系,但发生几率极低,也许一万个3秒内出现1次,1次持续时间只会在一瞬间。
现存问题是,每3秒有极小几率(记录:连续直播一周,发生两次,持续一瞬间)出现可察觉性的旁观闪烁问题,造成原因是焦点玩家 (Focus Player)对于相机玩家,在无旁观时可见,但为了解决原版问题,需要每3秒瞬间刷新旁观。该问题可能与延时有关系,但发生几率极低,也许一万个3秒内出现1次,1次持续时间只会在一瞬间。


相比原版,服主不需要设置配置,不需要设置让旁观者刷新地形。其次,原版旁观者会在玩家传送后发生幽灵旁观事件,但本插件对其有解决。
相比原版,服主不需要设置配置,不需要设置让旁观者刷新地形。其次,原版旁观者会在玩家传送后发生幽灵旁观事件,但本插件对其有解决。
第33行: 第39行:
此时,如果焦点玩家需要移交镜头焦点,使用指令:<code>/migratecam <PlayerName></code>,其中,其中<code>PlayerName</code>指目标的焦点玩家账户名。该指令只能由当前焦点玩家执行,非焦点玩家执行不会被授权。
此时,如果焦点玩家需要移交镜头焦点,使用指令:<code>/migratecam <PlayerName></code>,其中,其中<code>PlayerName</code>指目标的焦点玩家账户名。该指令只能由当前焦点玩家执行,非焦点玩家执行不会被授权。


请注意,当前的插件版本不能避免焦点玩家和相机玩家重复,后续版本会更新!之所以<code>FocusCam</code>的指令<code>/focuscam</code>允许将初始焦点设置到其他玩家,是保留灵活性,确保在初始状态(RemotePlayer = Null)下,普通玩家可以给另一玩家设置初始焦点以达到“帮助”的目的。
之所以<code>FocusCam</code>的指令<code>/focuscam</code>允许将初始焦点设置到其他玩家,是保留灵活性,确保在初始状态(RemotePlayer = Null)下,普通玩家可以给另一玩家设置初始焦点以达到“帮助”的目的。


===== 焦点投票选择 =====
===== 焦点投票选择 =====
第61行: 第67行:
===== 查看投票 =====
===== 查看投票 =====
使用指令<code>/seevote</code>会显示投票是否超时,以及投票希望设置的焦点玩家,但不会显示投票发起者。
使用指令<code>/seevote</code>会显示投票是否超时,以及投票希望设置的焦点玩家,但不会显示投票发起者。
===== 关闭相机和聚焦 =====
使用指令<code>/shutcam</code>可以关闭重置相机玩家和焦点玩家 (设置为null)
===== 配置文件热重载 =====
使用指令<code>/camreload</code>可以热重载配置文件,热更新投票的通过人数。在已有投票时更新同样会对现有生效,即使投票时间只有短短的、不可修改的10秒。在语言文本设置更新后也需要重载。
==== 权限组 ====
===== streamcamera =====
====== streamcamera.actcamera: 指令<code>/actcamera</code> ======
通常地,这个权限不应该开放给普通玩家。因为指令会改变相机玩家
====== streamcamera.admin.setfocus: 指令<code>/setfocus</code> ======
通常地,这个权限不应该开放给普通玩家。因为指令可以随意切换焦点
====== streamcamera.agreevote: 指令<code>/agreevote</code> ======
通常地,这个权限可选开放给普通玩家,这是投票的同意功能所需权限
====== streamcamera.camreload: 指令<code>/camreload</code> ======
通常地,这个权限不应该开放给普通玩家。因为指令可以随意重载配置,被滥用可能影响服务器性能
====== streamcamera.focuscam: 指令<code>/focuscam</code> ======
通常地,这个权限应该开放给普通玩家,在没有焦点玩家时,玩家可以通过这个指令直接更改焦点而不是投票
====== streamcamera.migrate: 指令<code>/migratecam</code> ======
通常地,这个权限应该开放给普通玩家,焦点玩家需要通过这个指令移交镜头焦点
====== streamcamera.seefocus: 指令<code>/seefocus</code> ======
通常地,这个权限应该开放给普通玩家,这样,玩家就可以查看到当前焦点玩家的名字了
====== streamcamera.seevote: 指令<code>/seevote</code> ======
通常地,这个权限应该开放给普通玩家,这样,玩家就可以查看最新一次的投票信息了
====== streamcamera.shutcam: 指令<code>/shutcam</code> ======
通常地,这个权限不应该开放给普通玩家。因为指令可以重置相机和焦点。
====== streamcamera.votefocus: 指令<code>/votefocus</code> ======
通常地,这个权限可选开放给普通玩家,以此,玩家就可以发起投票
===== streamcamera.dontlookme: 指令<code>/dontlookme</code> =====
通常地,这个权限可选开放给普通玩家,通过这个指令,玩家可以积极拒绝摄像头对玩家的监视。
==== 常见问题 ====
===== 如果相机玩家或焦点玩家掉线了会怎样 =====
当焦点玩家掉线,RemotePlayer会变为null,此时没有焦点玩家(Focus Player),若当前服务器除相机玩家外有玩家,会随机选取其一,否则相机玩家不受控。
当相机玩家掉线,CameraPlayer会变为null,插件会在剩余的玩家里选择随机一个作为画面,如果没有人了,将会没有焦点画面。
==== 无人值守设定 ====
死设定!当焦点玩家掉线,RemotePlayer会变为null,此时没有焦点玩家(Focus Player),若当前服务器除相机玩家外有玩家,会随机选取其一,否则相机玩家不受控。当焦点玩家为null,即没有焦点玩家时,下一个进来的玩家会自动被设置为焦点!

2023年8月21日 (一) 16:00的最新版本

StreamCamera Wiki

StreamCamera 是由 lmsdscav 独自开发完成的一个完全免费的 Minecraft: Java Edition 的 Bukkit 插件。

本插件主要用于方便直播,相关设置还需要自己摸索!

本插件不是直播插件,只是一个可以辅助直播的监控插件!你需要打开一个客户端,将客户端设为相机玩家,然后用直播软件把客户端画面推流到直播间!

请注意!焦点玩家和相机玩家都存在时,相机玩家的背包会被设定成和相机玩家相同的背包,请自行避免焦点玩家的恶意操作导致的例如ItemBan不必要麻烦!!!

最近更新了很多功能,可能要看看配置文件详解.

相机玩家:Camera Player

相机玩家的游戏画面是在直播中展现的画面。您需要将正在直播的客户端所使用的账户设置为相机玩家。

指令: /actcamera <PlayerName>,这个指令中的PlayerName指相机玩家的账户名。

在执行这个指令后,相机玩家会变为旁观模式,且除非相机玩家客户端手动切换,否则永久不变。(请不要在相机玩家未清空的情况下更改模式,否则会出bug,这个bug完全是自己作的,不给修)

此时,假定相机玩家名为Notch,指令是:/actcamera Notch

现在,相机玩家已经设置完成,需要注意的是,如果相机玩家客户端需要放入后台,请使用 F3 + P关闭 失去焦点时暂停 功能

相机玩家的现存问题和相比原版旁观者的优劣势。

现存问题是,每3秒有极小几率(记录:连续直播一周,发生两次,持续一瞬间)出现可察觉性的旁观闪烁问题,造成原因是焦点玩家 (Focus Player)对于相机玩家,在无旁观时可见,但为了解决原版问题,需要每3秒瞬间刷新旁观。该问题可能与延时有关系,但发生几率极低,也许一万个3秒内出现1次,1次持续时间只会在一瞬间。

相比原版,服主不需要设置配置,不需要设置让旁观者刷新地形。其次,原版旁观者会在玩家传送后发生幽灵旁观事件,但本插件对其有解决。

焦点玩家

当焦点玩家不存在(RemotePlayer = null)时,相机玩家位置不会被插件更改,当焦点玩家存在时,插件会让相机玩家同步焦点玩家的位置。可以操作相机玩家的人称视角,但是不能移动位置(直到失去焦点玩家或不再是相机玩家)。

设置焦点玩家的方法是指令:/setfocus <PlayerName>,其中PlayerName指目标的焦点玩家账户名。

注意!普遍情况下,/setfocus指令不应该开放给普通玩家,因为该指令可以直接设置焦点玩家!可能出现玩家抢夺镜头的情况。

为什么无人值守?因为当玩家进入服务器后,如果焦点玩家不存在(RemotePlayer = null),玩家可以直接设置某人为焦点玩家!

方法:/focuscam <PlayerName>,其中PlayerName指目标的焦点玩家账户名。当设置焦点玩家后,该指令不再可用,当使用时,会有对应提示。

此时,如果焦点玩家需要移交镜头焦点,使用指令:/migratecam <PlayerName>,其中,其中PlayerName指目标的焦点玩家账户名。该指令只能由当前焦点玩家执行,非焦点玩家执行不会被授权。

之所以FocusCam的指令/focuscam允许将初始焦点设置到其他玩家,是保留灵活性,确保在初始状态(RemotePlayer = Null)下,普通玩家可以给另一玩家设置初始焦点以达到“帮助”的目的。

焦点投票选择

补充:注意!投票超时时间是10秒,即10000毫秒,这是无法从配置文件修改的。

该选择方式由于投票人数无法固定,因此方案是10秒内同意人数达到一定数量后设置焦点,默认值为2,即同意玩家需要两个,值得注意的是,投票发起者默认不算投票,但仍然可以自己给自己投。(每个玩家只能投票一次)

默认值为2人,即同意人数达到2人即可切换焦点玩家。投票选择功能是焦点玩家不能操作的,一旦超过指定人数,原焦点玩家将会失去焦点。

投票发起通常所有玩家都应当拥有权限,指令为:/votefocus <PlayerName>,其中PlayerName是投票通过后会被应用的焦点玩家。

投票只有同意票,拒绝票不支持,且未来不会额外开发。(说起来,一个数字,同意的人加,拒绝的人减,这种算法是很奇怪的)。

同意投票指令:/agreevote同样,该指令也应该对所有玩家开放

要修改投票通过人数,请在插件的配置文件夹中修改,文件夹名为StreamCamera,配置文件是config.yml

初始文件内容是VoteApplyCount: 2,其中VoteApplyCount就是通过人数。当发起投票后,使用了/agreevote指令的人数达到该值,焦点玩家就会被设置。例如,当值为x时,第x个玩家执行/agreevote后,焦点玩家被设置。

如果要禁用投票,直接关闭权限即可,权限节点在后面会有提及。

额外功能

查看概况

当相机玩家和焦点玩家都存在时,使用/seefocus指令可以显示相机玩家和焦点玩家,但如果其中有一个不存在,则两者都不显示

查看投票

使用指令/seevote会显示投票是否超时,以及投票希望设置的焦点玩家,但不会显示投票发起者。

关闭相机和聚焦

使用指令/shutcam可以关闭重置相机玩家和焦点玩家 (设置为null)

配置文件热重载

使用指令/camreload可以热重载配置文件,热更新投票的通过人数。在已有投票时更新同样会对现有生效,即使投票时间只有短短的、不可修改的10秒。在语言文本设置更新后也需要重载。

权限组

streamcamera
streamcamera.actcamera: 指令/actcamera

通常地,这个权限不应该开放给普通玩家。因为指令会改变相机玩家

streamcamera.admin.setfocus: 指令/setfocus

通常地,这个权限不应该开放给普通玩家。因为指令可以随意切换焦点

streamcamera.agreevote: 指令/agreevote

通常地,这个权限可选开放给普通玩家,这是投票的同意功能所需权限

streamcamera.camreload: 指令/camreload

通常地,这个权限不应该开放给普通玩家。因为指令可以随意重载配置,被滥用可能影响服务器性能

streamcamera.focuscam: 指令/focuscam

通常地,这个权限应该开放给普通玩家,在没有焦点玩家时,玩家可以通过这个指令直接更改焦点而不是投票

streamcamera.migrate: 指令/migratecam

通常地,这个权限应该开放给普通玩家,焦点玩家需要通过这个指令移交镜头焦点

streamcamera.seefocus: 指令/seefocus

通常地,这个权限应该开放给普通玩家,这样,玩家就可以查看到当前焦点玩家的名字了

streamcamera.seevote: 指令/seevote

通常地,这个权限应该开放给普通玩家,这样,玩家就可以查看最新一次的投票信息了

streamcamera.shutcam: 指令/shutcam

通常地,这个权限不应该开放给普通玩家。因为指令可以重置相机和焦点。

streamcamera.votefocus: 指令/votefocus

通常地,这个权限可选开放给普通玩家,以此,玩家就可以发起投票

streamcamera.dontlookme: 指令/dontlookme

通常地,这个权限可选开放给普通玩家,通过这个指令,玩家可以积极拒绝摄像头对玩家的监视。

常见问题

如果相机玩家或焦点玩家掉线了会怎样

当焦点玩家掉线,RemotePlayer会变为null,此时没有焦点玩家(Focus Player),若当前服务器除相机玩家外有玩家,会随机选取其一,否则相机玩家不受控。

当相机玩家掉线,CameraPlayer会变为null,插件会在剩余的玩家里选择随机一个作为画面,如果没有人了,将会没有焦点画面。

无人值守设定

死设定!当焦点玩家掉线,RemotePlayer会变为null,此时没有焦点玩家(Focus Player),若当前服务器除相机玩家外有玩家,会随机选取其一,否则相机玩家不受控。当焦点玩家为null,即没有焦点玩家时,下一个进来的玩家会自动被设置为焦点!