BridgingPractise - 更高级的搭路练习插件

Plugins BridgingPractise - 更高级的搭路练习插件 v1.2

Source of resources
Original
API
1.0.0
Copyright link
#
Language
Multi-language
BridgingPractise
更高级的搭路练习插件
为什么要放弃CoBlock插件来写这个插件:因为最近玩Java版看到了一个炒鸡完善的搭路练习插件,回头康康自己的CoBlock插件,感觉要重新写,就整体用Java重写了个全新的插件

更完善的功能:智能初始化,自带地图(初始化自动生成配置文件和初始地图),更像Java版的BridgingAnalyzer插件(出生点保存,加速方块,结束方块结束提示,上下传送方块,回到出生点方块),死后方块逐渐消失

此插件开源,代码下载:https://github.com/LiuliWorks/BridgingPractiseNK


Config File
./plugins/BridgingPractise/lang/en_us.json
JSON:
{
    "usage":"§dUSAGE§a/%1 <join/leave>",
    "notplayer":"§cYOU MUST BE A PLAYER TO USE THIS COMMAND.",
    "joinedarena":"§aJoined Arena.",
    "stillinarena":"§cJoin Arena Failed.You are in the arena.",
    "leavearena":"§aLeaved Arena.",
    "notinarena":"§cLeaved Arena Failed.You not in the arena.",
    "completebridge":"§6§lVICTORY",
    "setresp":"§aRespawn Setted",
    "falldmgtip":"§cFALL DAMAGE %1 HP",
    "cantdrop":"§cYou can't drop this item.",
    "cmddisable":"§cThis command is disable in bridging practise.",
    "prompt":"§l%1 Blocks/s | Distance %2 | Farthest %3",
    "backresp":"§9Return to Respawn",
    "tpfailed":"§cTeleport Failed.",
    "sbtitle": "BridgingPractise",
    "timeearn": "§b+%1 Experience (Time Played)",
    "blockearn": "§b+%1 Experience (Blocks)",
    "levelup": "§f--------------------\n     §aLevel UP!\n       §9Level §e%1\n\n§f--------------------",
    "cantplaceon":"§cYou cam't place block over there!"
}
./plugins/BridgingPractise/lang/zh_cn.json
JSON:
{
    "usage":"§d用法:§a/%1 <join/leave>",
    "notplayer":"§c只有玩家才能执行这个指令",
    "joinedarena":"§a加入成功",
    "stillinarena":"§c加入失败,你正在地图中",
    "leavearena":"§a离开成功",
    "notinarena":"§c离开失败,你不在地图中",
    "completebridge":"§6§lVICTORY",
    "setresp":"§a重生点已设置",
    "falldmgtip":"§c受到%1点掉落伤害",
    "cantdrop":"§c你不能扔出这个物品",
    "cmddisable":"§c这个指令不能在搭路练习区域使用",
    "prompt":"§l%1 方块/秒 | 距离 %2 | 最远距离 %3",
    "backresp":"§9回到出生点",
    "tpfailed":"§c传送失败",
    "sbtitle": "搭路练习",
    "timeearn": "§b+%1 经验 (时长奖励)",
    "blockearn": "§b+%1 经验 (方块放置)",
    "levelup": "§f--------------------\n     §a升级啦!\n       §c%1 §e级\n\n§f--------------------",
    "cantplaceon":"§c你不能在这里放置方块!"
}
./plugins/BridgingPractise/config.json
JSON:
{
    "block":{
        "pra":{"id":24,"d":0,"c":64},
        "stop":152,
        "res":133,
        "speedup":41,
        "backres":22,
        "elevator":138,
        "pickaxe":{"id":278,"d":0}
    },
    "pos":{
        "lowy":0.0,
        "pra":{"x":4.5,"y":24.0,"z":10.5,"l":"bpractise"},
        "exit":{"x":%1,"y":%2,"z":%3,"l":"%4"}
    },
    "pra":{
        "language":"en_us",
        "instabreak":false,
        "breakparticle":true,
        "breakdelay":150,
        "falldmgtip":true,
        "falllagdmg":20,
        "iffalllagdmg":true,
        "pvpprotect":false,
        "candrop":false,
        "prompt":true,
        "speedlv":10,
        "speedtick":100,
        "time":700,
        "weather":"clear",
        "command":"bpractise",
        "enablecmd":["bpractise"],
        "victoryreplace": {"id": 169,"d": 0},
        "exp": {
            "enable": true,
            "scoreboard": true,
            "levelup": true,
            "getexp": true,
            "timeearn": {"enable":true,"sec": 30,"exp": 5},
            "blockearn": {"enable":true,"bls": 50,"exp": 10}
        },
        "scoreboard": [
            "§fName: §a%player%",
            "§fLevel: §b%level%",
            "§fProcess: §b%lowProgcess%§f/§a%maxProgcess%",
            "Placed: §a%placed%",
            "§6§lMineBBS.com"
        ]
    }
}

指令
(默认/bpractise可在config.json中修改)
/bpractise join 加入练习区
/bpractise leave 离开练习区

警告

1.不要让MobPlugin在练习区生成生物,否则会空指针
2.不要乱动./plugins/BridgingPractise/cache下的地图备份文件
3.关服请用stop命令关服,不要点X,否则可能会导致一些未知的问题
4.初始化前请保证没有名为“bpractise”的地图,否则将被覆盖


配置文件
config.json键值说明:

block
block 搭路用方块(id:物品id,d:物品特殊值,c:物品数量)
stop 结束点方块id
res 重生点设置方块id
speedup 加速方块id
backres 回出生点方块id
elevator 电梯方块id(需在同一x,z坐标不同高度有2个这种方块,站在其中一个方块上即可传送到另一个)
pickaxe 搞(id:物品id,d:物品特殊值)

pos
lowy 最低y坐标(低于将被拉回重生点)
pra 练习区坐标(x:x坐标,y:y坐标,z:z坐标,l:世界名)
exit 退出后回到的坐标(x:x坐标,y:y坐标,z:z坐标,l:世界名)(初始化时会使用主世界安全重生点)

pra
language 语言文件(对应./plugins/BridgingPractise/lang/值.json)(假如没有会在控制台警告并读取英文的语言文件)
instabreak 死亡后方块是否直接清除(true直接清除,false逐渐清除)
breakparticle 清除方块是否掉落粒子
breakdelay 逐渐清除方块时清除单个方块的延时(ms)
falldmgtip 是否在受到掉落伤害时向玩家发出提示
iffalllagdmg 是否受到超过阈值的跌落伤害时回到出生点
pvpprotect pvp保护
candrop 玩家能否扔物品
prompt 是否向玩家发送搭路方块速度,距离,最远距离信息的Popup提示
speedlv 站在加速方块上获得速度效果的等级
speedtick 站在加速方块上获得速度效果的世时间(tick刻)
time 锁定练习区世界的时间
weather 锁定练习区世界的天气(clear,rain,thunder)
command 搭路练习指令名(/值 join/leave)
enablecmd 练习区允许的指令(需包含插件指令否则玩家无法退出)(取指令名例如/kill @e就是kill)
enable - 启用等级系统
scoreboard - 显示积分版(需启动等级系统)
levelup - 升级提示
getexp - 获得经验提示
timeearn - 时间奖励(enable开关,sec时长,exp获得的经验)
blockearn - 方块奖励(enable-开关,bls-需要的方块,exp-获得的经验)

从1.0/1.1升级:
东西写在github里了

bstats

BridgingPractiseNK.svg
Author
ColorGlaze
Price
100金粒
Downloads
121
Views
4,501
First release
Last update
Rating
3.71 star(s) 7 ratings

More resources from ColorGlaze

Share this resource

Latest updates

  1. v1.2

    升级了: 等级系统 等级条 积分版 胜利方块替换
  2. v1.1-Fix1

    Fix bugs
  3. v1.1

    Java8 supported 增加Java8的支持

Latest reviews

怎么破坏不了地图,想改一下
报错,完全用不了
23:40:12 [FATAL] An error occurred while enabling the plugin BridgingPractise, 1.2, cn.ricoco.bridgingpractise.Main
java.lang.NullPointerException: Cannot read the array length because "flist" is null
at cn.ricoco.bridgingpractise.Utils.FileUtils.Copydir(FileUtils.java:27) ~[?:?]
at cn.ricoco.bridgingpractise.Main.onEnable(Main.java:53) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:107) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:125) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:466) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:1879) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:1862) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.reload(Server.java:1015) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:40) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.command.SimpleCommandMap.executeCommand(SimpleCommandMap.java:314) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.executeCommand(Server.java:1620) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.console.NukkitConsole.lambda$runCommand$0(NukkitConsole.java:36) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.TaskHandler.run(TaskHandler.java:100) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.ServerScheduler.runTasks(ServerScheduler.java:370) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.ServerScheduler.mainThreadHeartbeat(ServerScheduler.java:351) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.tick(Server.java:1286) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.tickProcessor(Server.java:1152) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.start(Server.java:1133) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.<init>(Server.java:960) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:160) [PowerNukkitX-1.20.0-r2.jar:?]
23:40:12 [INFO ] 关闭 BridgingPractise v1.2 中
23:40:12 [FATAL] An error occurred while disabling the plugin BridgingPractise, 1.2, cn.ricoco.bridgingpractise.Main
java.lang.NullPointerException: Cannot invoke "cn.nukkit.level.Level.unload(boolean)" because "level" is null
at cn.nukkit.Server.unloadLevel(Server.java:2671) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.unloadLevel(Server.java:2654) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.ricoco.bridgingpractise.Utils.LevelUtils.unloadLevel(LevelUtils.java:32) ~[?:?]
at cn.ricoco.bridgingpractise.Main.onDisable(Main.java:77) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:109) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:146) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.plugin.PluginManager.disablePlugin(PluginManager.java:547) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:470) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:1879) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:1862) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.reload(Server.java:1015) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:40) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.command.SimpleCommandMap.executeCommand(SimpleCommandMap.java:314) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.executeCommand(Server.java:1620) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.console.NukkitConsole.lambda$runCommand$0(NukkitConsole.java:36) ~[PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.TaskHandler.run(TaskHandler.java:100) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.ServerScheduler.runTasks(ServerScheduler.java:370) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.scheduler.ServerScheduler.mainThreadHeartbeat(ServerScheduler.java:351) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.tick(Server.java:1286) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.tickProcessor(Server.java:1152) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.start(Server.java:1133) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Server.<init>(Server.java:960) [PowerNukkitX-1.20.0-r2.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:160) [PowerNukkitX-1.20.0-r2.jar:?]
23:40:12 [INFO ] 重新加载完成
报错阿
看下吧
> java.io.FileNotFoundException: D:\文件\Nukkit服务器\plugins\Road%20practice.jar (系统找不到指定的文件。)
java.io.FileNotFoundException: .\plugins\BridgingPractise\config.json (系统找不到指定的文件。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at cn.ricoco.bridgingpractise.Utils.FileUtils.readFile(FileUtils.java:64)
at cn.ricoco.bridgingpractise.Main.onEnable(Main.java:35)
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:89)
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:117)
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:436)
at cn.nukkit.Server.enablePlugin(Server.java:750)
at cn.nukkit.Server.enablePlugins(Server.java:739)
at cn.nukkit.Server.<init>(Server.java:582)
at cn.nukkit.Nukkit.main(Nukkit.java:120)
14:57:03 [ERROR] Throwing
java.lang.RuntimeException: java.lang.NullPointerException
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:440) [1.17.41.01.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:750) [1.17.41.01.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:739) [1.17.41.01.jar:?]
at cn.nukkit.Server.<init>(Server.java:582) [1.17.41.01.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:120) [1.17.41.01.jar:?]
Caused by: java.lang.NullPointerException
at cn.ricoco.bridgingpractise.Main.onEnable(Main.java:35) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:89) ~[1.17.41.01.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:117) ~[1.17.41.01.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:436) ~[1.17.41.01.jar:?]
... 4 more
14:57:03 [INFO ] 关闭 BridgingPractise v1.2 中
14:57:03 [ERROR] Throwing
java.lang.NullPointerException: null
at cn.ricoco.bridgingpractise.Main.onDisable(Main.java:77) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:91) ~[1.17.41.01.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:132) ~[1.17.41.01.jar:?]
at cn.nukkit.plugin.PluginManager.disablePlugin(PluginManager.java:510) [1.17.41.01.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:442) [1.17.41.01.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:750) [1.17.41.01.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:739) [1.17.41.01.jar:?]
at cn.nukkit.Server.<init>(Server.java:582) [1.17.41.01.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:120) [1.17.41.01.jar:?]
可以完美运行,不过没有自动清理方块
您看一下报错:
开启 BridgingPractise v1.2 中
java.io.FileNotFoundException: C:\Users\Administrator\Desktop\新建文件夹%20(3)\server\plugins\%5B搭路练习%5DBridgingPractise-1.0-SNAPSHOT.jar (系统找不到指定的路径。)
java.io.FileNotFoundException: .\plugins\BridgingPractise\config.json (系统找不到指定的文件。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at cn.ricoco.bridgingpractise.Utils.FileUtils.readFile(FileUtils.java:64)
at cn.ricoco.bridgingpractise.Main.onEnable(Main.java:35)
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:89)
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:117)
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:436)
at cn.nukkit.Server.enablePlugin(Server.java:750)
at cn.nukkit.Server.enablePlugins(Server.java:739)
at cn.nukkit.Server.<init>(Server.java:582)
at cn.nukkit.Nukkit.main(Nukkit.java:120)
[36m15:28:56[m [[1;31m错误[m] Throwing
java.lang.RuntimeException: java.lang.NullPointerException
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:440) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:750) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:739) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.<init>(Server.java:582) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:120) [nukkit-1.0-SNAPSHOT.jar:?]
Caused by: java.lang.NullPointerException
at cn.ricoco.bridgingpractise.Main.onEnable(Main.java:35) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:89) ~[nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:117) ~[nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:436) ~[nukkit-1.0-SNAPSHOT.jar:?]
... 4 more
[36m15:28:56[m [[34m信息 [m] 关闭 BridgingPractise v1.2 中
[36m15:28:56[m [[1;31m错误[m] Throwing
java.lang.NullPointerException: null
at cn.ricoco.bridgingpractise.Main.onDisable(Main.java:77) ~[?:?]
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:91) ~[nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.plugin.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:132) ~[nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.plugin.PluginManager.disablePlugin(PluginManager.java:510) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:442) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.enablePlugin(Server.java:750) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.enablePlugins(Server.java:739) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Server.<init>(Server.java:582) [nukkit-1.0-SNAPSHOT.jar:?]
at cn.nukkit.Nukkit.main(Nukkit.java:120) [nukkit-1.0-SNAPSHOT.jar:?]
非常优秀的插件!
为啥我用不了?
ColorGlaze
ColorGlaze
?,有报错嘛,麻烦发一下