(萌萌的服主) (蜜汁大叔)
:这是什么?
:这个啊,一个用Shift来运行指令的插件
:(黑人问号脸)???
:在某服务器看到的一截图,于是捣鼓捣鼓就这样了233
:哦...
- 支持变量(%player%-玩家名)
- 可自定义的Pitch(Shift面朝角度)
- 支持多行命令
- 暂无欢迎提出
未来计划:
- 可能会加上面向地面后按Shift多少秒后再进行指令运行
图片(Gif 1.31M):
Config文件配置:
- #isdown是指是设定是想要Shift后面向地面的开关,false的话就是面朝向上
- isdown: true
- #这个是面朝向上时达到这个数值就会触发指令
- upPitch: -75
- #这个是面朝向下时达到这个数值就会触发指令
- downPitch: 75
- #这个是指令的发送者 true就是player false就是控制台
- sender: true
- #命令行
- command:
- - "say hello"
- - "say i'm %player%"
源码:写得有点渣,望大角虫别责怪QAQ
- package com.mayspeed.shiftcommand;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerToggleSneakEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Main extends JavaPlugin implements Listener{
- public void onEnable() {
- //判断是否拥有插件文件夹
- if(!getDataFolder().exists()) {
- getDataFolder().mkdir();
- }
- File file = new File(getDataFolder(),"config.yml");
- //判断是否存在config.yml
- if (!(file.exists())) {
- saveDefaultConfig();
- }
- saveConfig();
- reloadConfig();
- getLogger().info("[蹲下指令]ShiftCommand 已加载 Power By May_Speed");
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- @EventHandler
- public void onShift(PlayerToggleSneakEvent e) {
- //因为这个事件是包含了 从走路到潜行再到潜行到走路的一个事件所以要判断一下
- if(!e.isSneaking()) {
- return;
- }
- Player player = (Player) e.getPlayer();
- double pitch = player.getLocation().getPitch(); //取玩家当前的面向角度
- double downpitch = getConfig().getDouble("downPitch");
- double uppitch = getConfig().getDouble("upPitch");
- boolean isdown = getConfig().getBoolean("isdown");
- if(isdown) {
- if(pitch >= downpitch) { //经过我测试 ,只要角度大于75都差不多是面朝向下
- List <String> command = new ArrayList <String> ();
- command = getConfig().getStringList("command");
- //解释一下 这里定义i为0 之后判断i是否小于List类型的command大小,是的话则i自加1
- for(int i = 0;i < getConfig().getStringList("command").size();i++) {
- if(getConfig().getBoolean("sender")) { //这里是判断发送者 true为玩家 false为服务器
- Bukkit.dispatchCommand(player, command.get(i).replace("&", "§").replace("%player%", player.getName()));
- System.out.println(command.get(i));
- }else {
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.get(i).replace("&", "§").replace("%player%", player.getName()));
- }
- }
- }
- }else {
- if(pitch <= uppitch) { //经过我测试 ,只要角度大于75都差不多是面朝向下
- List <String> command = new ArrayList <String> ();
- command = getConfig().getStringList("command");
- //解释一下 这里定义i为0 之后判断i是否小于List类型的command大小,是的话则i自加1
- for(int i = 0;i < getConfig().getStringList("command").size();i++) {
- if(getConfig().getBoolean("sender")) { //这里是判断发送者 true为玩家 false为服务器
- Bukkit.dispatchCommand(player, command.get(i).replace("&", "§").replace("%player%", player.getName()));
- System.out.println(command.get(i));
- }else {
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.get(i).replace("&", "§").replace("%player%", player.getName()));
- }
- }
- }
- }
- return;
- }
- }
-
3.28 KB, 下载次数: 341
欢迎下载~