602723113
本帖最后由 1582952890 于 2017-9-16 18:03 编辑
(萌萌的服主) (蜜汁大叔)
:这是什么?

:这个啊,一个用Shift来运行指令的插件

:(黑人问号脸)???

:在某服务器看到的一截图,于是捣鼓捣鼓就这样了233

:哦...

插件例程-大角虫就当听听歌了

https://www.bilibili.com/html/player.html?aid=6981878&wmode=transparent&as_wide=1&page=0



特性:
  • 支持变量(%player%-玩家名)
  • 可自定义的Pitch(Shift面朝角度)
  • 支持多行命令
Bug:
  • 暂无欢迎提出


未来计划:
  • 可能会加上面向地面后按Shift多少秒后再进行指令运行


图片(Gif 1.31M):



Config文件配置:
  1. #isdown是指是设定是想要Shift后面向地面的开关,false的话就是面朝向上
  2. isdown: true
  3. #这个是面朝向上时达到这个数值就会触发指令
  4. upPitch: -75
  5. #这个是面朝向下时达到这个数值就会触发指令
  6. downPitch: 75
  7. #这个是指令的发送者 true就是player false就是控制台
  8. sender: true
  9. #命令行
  10. command:
  11.   - "say hello"
  12.   - "say i'm %player%"
复制代码

源码:写得有点渣,望大角虫别责怪QAQ
  1. package com.mayspeed.shiftcommand;

  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import java.util.List;

  5. import org.bukkit.Bukkit;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.player.PlayerToggleSneakEvent;
  10. import org.bukkit.plugin.java.JavaPlugin;

  11. public class Main extends JavaPlugin implements Listener{
  12.         public void onEnable() {
  13.                 //判断是否拥有插件文件夹
  14.                 if(!getDataFolder().exists()) {
  15.                           getDataFolder().mkdir();
  16.                 }
  17.                 File file = new File(getDataFolder(),"config.yml");
  18.                 //判断是否存在config.yml
  19.                 if (!(file.exists())) {
  20.                         saveDefaultConfig();
  21.                 }
  22.                 saveConfig();
  23.                 reloadConfig();
  24.                 getLogger().info("[蹲下指令]ShiftCommand 已加载 Power By May_Speed");
  25.                 Bukkit.getPluginManager().registerEvents(this, this);
  26.         }
  27.         @EventHandler
  28.         public void onShift(PlayerToggleSneakEvent e) {
  29.                 //因为这个事件是包含了 从走路到潜行再到潜行到走路的一个事件所以要判断一下
  30.                 if(!e.isSneaking()) {
  31.                         return;
  32.                 }
  33.                 Player player = (Player) e.getPlayer();
  34.                 double pitch = player.getLocation().getPitch(); //取玩家当前的面向角度
  35.                 double downpitch = getConfig().getDouble("downPitch");
  36.                 double uppitch = getConfig().getDouble("upPitch");
  37.                 boolean isdown = getConfig().getBoolean("isdown");
  38.                 if(isdown) {
  39.                         if(pitch >= downpitch) { //经过我测试 ,只要角度大于75都差不多是面朝向下
  40.                                 List <String> command = new ArrayList <String> ();
  41.                                 command = getConfig().getStringList("command");
  42.                                 //解释一下 这里定义i为0 之后判断i是否小于List类型的command大小,是的话则i自加1
  43.                                 for(int i = 0;i < getConfig().getStringList("command").size();i++) {
  44.                                         if(getConfig().getBoolean("sender")) { //这里是判断发送者 true为玩家 false为服务器
  45.                                                 Bukkit.dispatchCommand(player, command.get(i).replace("&", "§").replace("%player%", player.getName()));
  46.                                                 System.out.println(command.get(i));
  47.                                         }else {
  48.                                                 Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.get(i).replace("&", "§").replace("%player%", player.getName()));
  49.                                         }
  50.                                 }
  51.                         }
  52.                 }else {
  53.                         if(pitch <= uppitch) { //经过我测试 ,只要角度大于75都差不多是面朝向下
  54.                                 List <String> command = new ArrayList <String> ();
  55.                                 command = getConfig().getStringList("command");
  56.                                 //解释一下 这里定义i为0 之后判断i是否小于List类型的command大小,是的话则i自加1
  57.                                 for(int i = 0;i < getConfig().getStringList("command").size();i++) {
  58.                                         if(getConfig().getBoolean("sender")) { //这里是判断发送者 true为玩家 false为服务器
  59.                                                 Bukkit.dispatchCommand(player, command.get(i).replace("&", "§").replace("%player%", player.getName()));
  60.                                                 System.out.println(command.get(i));
  61.                                         }else {
  62.                                                 Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.get(i).replace("&", "§").replace("%player%", player.getName()));
  63.                                         }
  64.                                 }
  65.                         }
  66.                 }
  67.                 return;
  68.         }
  69. }
复制代码





寂静人心
这个和 脚本方块  命令方块 有什么区别吗。。

晚安2001
噗 ud标志呢

602723113
寂静人心 发表于 2016-11-6 13:54
这个和 脚本方块  命令方块 有什么区别吗。。

唯一不同的是这个是靠Shift来触发指令,不是脚本方块的那个/sbwalk,也就是说你可以在世界各地都使用这些指令,而不用走到某个方块上,但是这个插件最多也就能执行执行些买卖啊传送什么的

命令方块的话也就不多说了吧,我不知道能不能用命令方块实现...

602723113

手动滑稽

寂静人心
602723113 发表于 2016-11-6 14:00
唯一不同的是这个是靠Shift来触发指令,不是脚本方块的那个/sbwalk,也就是说你可以在世界各地都使用这些 ...

那。。这个触发的命令是无视权限的还是要识别权限的

602723113
寂静人心 发表于 2016-11-6 14:11
那。。这个触发的命令是无视权限的还是要识别权限的

需要识别权限 因为是以玩家的角度来发送命令 或者可以用控制台来发送

下面好舒服
等这插件多久了 好人一生平安

a2055799522
莫老,可以帮忙加个识别手上是否没有物品然后shift+右键进行输入命令

Fisherman_wcz
shift打开菜单

MC小白桑
我让执行cmds指令不行啊
cmds是我打开菜单用的指令

行天下的猪
MC小白桑 发表于 2017-2-1 22:17
我让执行cmds指令不行啊
cmds是我打开菜单用的指令

或许你没有权限,菜单指令的权限

Little_Wool
梦某的回城插件,准确来说是炼某,其他的我没看过,那啥,版主知道梦某的那个回城怎么做到的吗,每个人都有自己的不同的出生地,还有消息提示

602723113
123飞 发表于 2017-2-10 21:12
梦某的回城插件,准确来说是炼某,其他的我没看过,那啥,版主知道梦某的那个回城怎么做到的吗,每个人都有 ...

这个需要yml去记录就好了。。

Little_Wool
能不能支持同时可以使用向上指令或者向下指令

MC小白桑
行天下的猪 发表于 2017-2-10 20:22
或许你没有权限,菜单指令的权限

玩家拥有这个权限
但是OP也不行
提示unknown type

尊主
求解楼主  我在配置文件里设置指令 cmd  之类的开cc菜单的指令   按的时候都无法识别

lianqiuchen
为什么我一直加载不了 1.7.2spogit

kkk154
这好像是梦边里有的功能,向上抬头然后按下Shift就可以打开菜单

z1298701681
牛逼6666666666

2039661878abc
找了很久了我去
一直在别人服务器看到 而在mcbbs看不到 今天来翻了一下
找到了QAQ 感谢楼主

迷の十六
能不能支持 Shift+右键玩家 打开界面

暴君大帥哥
製作者真是太贊了 太喜歡你的作品了

may28js
楼主,插件在服务器和本地都测试过,貌似只支持服务器JAVA版本8,java7无法加载。
楼主有可能解决java版本通用的问题吗 ?

gwfblank1
求解楼主  我在配置文件里设置指令 cmd  之类的开cc菜单的指令   按的时候都无法识别

zykool
向上支持到1.11.2吗?

498525451
为什么不写成潜行右击玩家带变量 执行指令?

Kavintion
说实话这么好的插件居然排在这么下面?

BlackGsp
感谢分享 先收藏!在支持原创

193645
感谢分享 支持原创

Tommer
那玩家不就不可以蹲下了吗emmm支持原创

IFEN1993
Mark一下,看看能不能在1.14.1用。????┌

qq1759824979
        MCBBS有你更精彩~

qq1759824979
        MCBBS有你更精彩~

IFEN1993
本帖最后由 IFEN1993 于 2019-7-19 20:42 编辑

1.14.1可以用。配合sunlight-core的菜单让玩家按shift能够打开系统菜单(注意最好设置冷却时间)简直是完美。基本上可以把chestcommand删了。非常好!上个图

IFEN1993
本帖最后由 IFEN1993 于 2019-7-19 20:57 编辑
Tommer 发表于 2019-1-5 09:43
那玩家不就不可以蹲下了吗emmm支持原创

确实= = 可以设置角度,比如看着地面的角度,这样就不是很影响潜行。已经操作过了

晨曦曦
插件不错就是害怕蹲的时候还要等

Kavintion
很好的一款插件啊,收下了~

第一页 上一页 下一页 最后一页