Minecraft(我的世界)中文论坛

标题: [娱乐|机制|角色][开源]ShiftCommand —— 用Shift来执行指令吧![1.7-1.8?]

作者: 602723113    时间: 2016-11-6 13:38
标题: [娱乐|机制|角色][开源]ShiftCommand —— 用Shift来执行指令吧![1.7-1.8?]
本帖最后由 1582952890 于 2017-9-16 18:03 编辑
(萌萌的服主) (蜜汁大叔)
:这是什么?

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

:(黑人问号脸)???

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

:哦...

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

[bili=6981878]0[/bili]



特性:
Bug:


未来计划:


图片(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. }
复制代码




[蹲下指令]ShiftCommand.jar

3.28 KB, 下载次数: 341

欢迎下载~


作者: 602723113    时间: 2016-11-6 13:49
XJue_DaDa 发表于 2016-11-6 13:55
噗 ud标志呢

手动滑稽
作者: 寂静人心    时间: 2016-11-6 13:54
这个和 脚本方块  命令方块 有什么区别吗。。
作者: 幻境雲達達    时间: 2016-11-6 13:55
噗 ud标志呢
作者: 602723113    时间: 2016-11-6 14:00
寂静人心 发表于 2016-11-6 13:54
这个和 脚本方块  命令方块 有什么区别吗。。

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

命令方块的话也就不多说了吧,我不知道能不能用命令方块实现...
作者: 寂静人心    时间: 2016-11-6 14:11
602723113 发表于 2016-11-6 14:00
唯一不同的是这个是靠Shift来触发指令,不是脚本方块的那个/sbwalk,也就是说你可以在世界各地都使用这些 ...

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

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

需要识别权限 因为是以玩家的角度来发送命令 或者可以用控制台来发送
作者: 下面好舒服    时间: 2016-11-6 14:42
等这插件多久了 好人一生平安
作者: a2055799522    时间: 2017-1-13 18:40
莫老,可以帮忙加个识别手上是否没有物品然后shift+右键进行输入命令
作者: Fisherman_wcz    时间: 2017-1-13 18:56
shift打开菜单
作者: MC小白桑    时间: 2017-2-1 22:17
我让执行cmds指令不行啊
cmds是我打开菜单用的指令
作者: 行天下的猪    时间: 2017-2-10 20:22
MC小白桑 发表于 2017-2-1 22:17
我让执行cmds指令不行啊
cmds是我打开菜单用的指令

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

作者: 123飞    时间: 2017-2-10 21:12
梦某的回城插件,准确来说是炼某,其他的我没看过,那啥,版主知道梦某的那个回城怎么做到的吗,每个人都有自己的不同的出生地,还有消息提示

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

这个需要yml去记录就好了。。
作者: 123飞    时间: 2017-2-11 01:23
能不能支持同时可以使用向上指令或者向下指令
作者: MC小白桑    时间: 2017-2-14 18:12
行天下的猪 发表于 2017-2-10 20:22
或许你没有权限,菜单指令的权限

玩家拥有这个权限
但是OP也不行
提示unknown type
作者: 尊主    时间: 2017-3-18 00:53
求解楼主  我在配置文件里设置指令 cmd  之类的开cc菜单的指令   按的时候都无法识别
作者: lianqiuchen    时间: 2017-3-31 14:55
为什么我一直加载不了 1.7.2spogit
作者: kkk154    时间: 2017-3-31 19:32
这好像是梦边里有的功能,向上抬头然后按下Shift就可以打开菜单
作者: z1298701681    时间: 2017-4-1 18:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2039661878abc    时间: 2017-5-2 11:35
找了很久了我去
一直在别人服务器看到 而在mcbbs看不到 今天来翻了一下
找到了QAQ 感谢楼主
作者: 迷の十六    时间: 2017-6-22 17:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 暴君大帥哥    时间: 2017-6-22 20:05
製作者真是太贊了 太喜歡你的作品了
作者: may28js    时间: 2017-7-3 09:27
楼主,插件在服务器和本地都测试过,貌似只支持服务器JAVA版本8,java7无法加载。
楼主有可能解决java版本通用的问题吗 ?
作者: gwfblank1    时间: 2017-9-27 23:35
求解楼主  我在配置文件里设置指令 cmd  之类的开cc菜单的指令   按的时候都无法识别
作者: zykool    时间: 2017-12-8 04:34
向上支持到1.11.2吗?
作者: 498525451    时间: 2017-12-13 11:53
为什么不写成潜行右击玩家带变量 执行指令?
作者: Kavintion    时间: 2018-11-18 15:01
说实话这么好的插件居然排在这么下面?
作者: BlackGsp    时间: 2018-11-23 04:06
感谢分享 先收藏!在支持原创
作者: 193645    时间: 2018-11-24 14:59
感谢分享 支持原创
作者: Tommer    时间: 2019-1-5 09:43
那玩家不就不可以蹲下了吗emmm支持原创
作者: IFEN1993    时间: 2019-7-19 07:30
Mark一下,看看能不能在1.14.1用。????┌
作者: qq1759824979    时间: 2019-7-19 08:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: qq1759824979    时间: 2019-7-19 08:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: IFEN1993    时间: 2019-7-19 20:41
本帖最后由 IFEN1993 于 2019-7-19 20:42 编辑

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

TIM截图20190719214024.png (127.51 KB, 下载次数: 0)

调整角度

调整角度

TIM截图20190719214046.png (66.73 KB, 下载次数: 0)

按下shift

按下shift

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

确实= = 可以设置角度,比如看着地面的角度,这样就不是很影响潜行。已经操作过了
作者: 晨曦曦    时间: 2019-7-22 19:28
插件不错就是害怕蹲的时候还要等
作者: Kavintion    时间: 2020-1-23 20:50
很好的一款插件啊,收下了~