本文整理汇总了Java中org.spongepowered.api.text.action.ClickAction类的典型用法代码示例。如果您正苦于以下问题:Java ClickAction类的具体用法?Java ClickAction怎么用?Java ClickAction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ClickAction类属于org.spongepowered.api.text.action包,在下文中一共展示了ClickAction类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: callback
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
protected ClickAction.ExecuteCallback callback(Chunk chunk) {
return TextActions.executeCallback((commandSource -> {
if (commandSource instanceof ConsoleSource) {
commandSource.sendMessage(Text.of(TextColors.RED + "Silly console, you can't teleport."));
return;
}
Player player = (Player) commandSource;
Location<World> a = new Location<>(chunk.getWorld(), chunk.getPosition());
Location<World> b = new Location<>(a.getExtent(), a.getX() * 16, a.getExtent().getBlockMax().getY(), a.getZ() * 16);
Optional<BlockRayHit<World>> c = BlockRay.from(b).stopFilter(BlockRay.onlyAirFilter()).to(a.getPosition().sub(b.getX(), 1, b.getZ()))
.end();
if (c.isPresent()) {
BlockRayHit<World> d = c.get();
player.setLocation(d.getLocation());
} else {
commandSource.sendMessage(Text.of("Could not send you to: " + a.getX() + "," + a.getZ()));
}
}));
}
开发者ID:Time6628,项目名称:CatClearLag,代码行数:21,代码来源:LaggyChunksCommand.java
示例2: raw
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public static RawAction raw(ClickAction<?> clickAction) {
if (clickAction instanceof ClickAction.ChangePage) {
return new RawAction("change_page", ((ClickAction.ChangePage) clickAction).getResult().toString());
} else if (clickAction instanceof ClickAction.OpenUrl) {
final URL url = ((ClickAction.OpenUrl) clickAction).getResult();
final String scheme = url.getProtocol();
final String host = url.getProtocol();
if ("file".equalsIgnoreCase(scheme) && (host == null || host.equals(""))) {
return new RawAction("open_file", url.getFile());
} else {
return new RawAction("open_url", url.toExternalForm());
}
} else if (clickAction instanceof ClickAction.ExecuteCallback) {
final UUID uniqueId = LanternClickActionCallbacks.get().getOrCreateIdForCallback(
((ClickAction.ExecuteCallback) clickAction).getResult());
return new RawAction("run_command", LanternClickActionCallbacks.COMMAND_BASE + uniqueId.toString());
} else if (clickAction instanceof ClickAction.RunCommand) {
return new RawAction("run_command", ((ClickAction.RunCommand) clickAction).getResult());
} else if (clickAction instanceof ClickAction.SuggestCommand) {
return new RawAction("suggest_command", ((ClickAction.SuggestCommand) clickAction).getResult());
} else {
throw new IllegalArgumentException("Unknown click action type: " + clickAction.getClass().getName());
}
}
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:25,代码来源:LanternTextHelper.java
示例3: createClickAction
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
@Override
protected ClickAction<?> createClickAction(ConfigEntry entry, ConfigEditTab boundTab) {
if (!boundTab.control.options.canEdit) {
return null;
}
return this.type.createClickAction(this.value, entry, boundTab);
}
开发者ID:simon816,项目名称:ChatUI,代码行数:8,代码来源:ConfigEntry.java
示例4: onClick
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
private ClickAction<?> onClick(Runnable callback) {
return Utils.execClick(view -> {
if (!ChatUI.isTabActive(view, this.tab) || this.tab.nodeBuilder != this) {
return;
}
callback.run();
view.update();
});
}
开发者ID:simon816,项目名称:ChatUI,代码行数:10,代码来源:NodeBuilder.java
示例5: clickAction
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public static ClickAction<?> clickAction(Runnable action, Tab tab) {
return clickAction(view -> {
action.run();
return true;
}, tab);
}
开发者ID:simon816,项目名称:ChatUI,代码行数:7,代码来源:ExtraUtils.java
示例6: command
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public static ClickAction<?> command(String subcommand) {
return TextActions.runCommand("/chatui " + subcommand);
}
开发者ID:simon816,项目名称:ChatUI,代码行数:4,代码来源:ChatUILib.java
示例7: drawTextArea
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
void drawTextArea(PlayerContext ctx, LineFactory lineFactory) {
int remaining = ctx.height;
int largestLineNum = Math.min(this.lines.size(), this.viewOffset + ctx.height);
int largestNumWidth = ctx.utils().getStringWidth(String.valueOf(largestLineNum), false);
char sp = ' ';
int spWidth = ctx.utils().getWidth(sp, false);
for (int i = this.viewOffset; i < this.lines.size(); i++) {
String line = this.lines.get(i);
List<String> splitLines = ctx.utils().splitLines(line, ctx.width - largestNumWidth - spWidth);
Text.Builder lineBuilder = Text.builder();
ClickAction<?> lineClick;
if (this.activeLine == i) {
lineClick = TextActions.suggestCommand(line);
lineBuilder.style(TextStyles.UNDERLINE);
} else {
lineClick = Utils.execClick(setActiveLine(i, false));
}
lineBuilder.onClick(lineClick);
for (int j = 0; j < splitLines.size(); j++) {
String outputLine = splitLines.get(j);
StringBuilder sideLine = new StringBuilder();
if (j == 0) {
String ourLine = String.valueOf(i + 1); // + 1 for 1-indexed
TextUtils.padSpaces(sideLine, largestNumWidth - ctx.utils().getStringWidth(ourLine, false));
sideLine.append(ourLine);
} else {
TextUtils.padSpaces(sideLine, largestNumWidth);
}
sideLine.append(sp);
lineBuilder.append(Text.builder(sideLine.toString()).color(TextColors.GRAY).build());
lineBuilder.append(Text.of(outputLine));
lineFactory.appendNewLine(lineBuilder.build(), ctx);
lineBuilder.removeAll();
remaining--;
if (remaining == 0) {
break;
}
}
if (remaining == 0) {
break;
}
}
if (remaining > 0) {
Text newlineButton = Text.builder("*").color(TextColors.GRAY)
.onClick(Utils.execClick(setActiveLine(this.lines.size(), remaining < 2)))
.build();
lineFactory.appendNewLine(newlineButton, ctx);
}
}
开发者ID:simon816,项目名称:ChatUI,代码行数:56,代码来源:TextEditorWindow.java
示例8: execClick
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public static ClickAction<?> execClick(Consumer<PlayerChatView> handler) {
return TextActions.runCommand(ClickCallback.generateCommand(handler));
}
开发者ID:simon816,项目名称:ChatUI,代码行数:4,代码来源:Utils.java
示例9: sendClickableMessage
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public Text sendClickableMessage(String path, ClickAction<?> action){
return Text.builder(TextSerializers.FORMATTING_CODE.replaceCodes(configNode.getNode(path).getString(), '&'))
.onClick(action).build();
}
开发者ID:NamelessMC,项目名称:Nameless-Plugin,代码行数:5,代码来源:MessagesUtil.java
示例10: execute
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
@Override
public final CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
try {
if (args.hasAny("username")) {
String username = args.<String>getOne("username").get();
Profile profile = profileResolver.findByName(username);
if (profile == null) {
src.sendMessage(Texts.of(TextColors.RED,"Sorry failed to find a profile for that username."));
return CommandResult.empty();
}
src.sendMessage(Texts.of(TextColors.GREEN, "Found a profile for the provided username."));
ClickAction.SuggestCommand clickAction = new ClickAction.SuggestCommand(profile.getUniqueId().toString());
Text clickableUUID = Texts.builder()
.append(Texts.of(TextColors.GREEN, profile.getUniqueId().toString()))
.onClick(clickAction).build();
src.sendMessage(Texts.of(TextColors.BLUE, profile.getName(), TextColors.GRAY, ": ", clickableUUID));
MinecraftSkin skin = game.getServiceManager().provideUnchecked(SkinResolverService.class).getSkin(profile.getUniqueId());
if (skin == null) {
src.sendMessage(Texts.of(TextColors.RED, "Failed to resolve skin for the profile."));
} else {
src.sendMessage(Texts.of(TextColors.GREEN, "Skin type: ", skin.type));
ColorMapping mapping = ColorMapping.matchColor(new Color(skin.texture.getRGB(12, 12)));
String message = String.format("The matching block was %s and the color was %s", mapping.equivalentBlock.toString(), mapping.dyeColor.orNull() == null ? "null" : mapping.dyeColor.toString());
if (src instanceof Player) {
Player player = (Player) src;
Vector3d rot = player.getRotation();
int value = floor_double((double)(rot.getX() * 4.0F / 360.0F) + 0.5D) & 3;
System.out.println(value);
player.sendMessage(Texts.of((rot.getX() * 4.0F / 360.0F) + 0.5D));
player.sendMessage(Texts.of(rot.getX() * 4.0F / 360.0F));
player.sendMessage(Texts.of(value));
int pos = ((value < 0 ? -value : value) % 4);
Direction buildDirection = null;
switch (pos) {
case 0:
// South
System.out.println("SOUTH");
player.sendMessage(Texts.of("SOUTH"));
buildDirection = Direction.SOUTH;
break;
case 1:
// WEST
System.out.println("WEST");
player.sendMessage(Texts.of("WEST"));
buildDirection = Direction.WEST;
break;
case 2:
// NORTH
System.out.println("NORTH");
player.sendMessage(Texts.of("NORTH"));
buildDirection = Direction.NORTH;
break;
case 3:
// EAST
System.out.println("EAST");
player.sendMessage(Texts.of("EAST"));
buildDirection = Direction.EAST;
break;
}
}
}
return CommandResult.success();
}
return CommandResult.empty();
} catch (Throwable th) {
th.printStackTrace();
return CommandResult.empty();
}
}
开发者ID:modwizcode,项目名称:Statue,代码行数:73,代码来源:TestResolveCommand.java
示例11: prepare
import org.spongepowered.api.text.action.ClickAction; //导入依赖的package包/类
public static Message.Text prepare(final InfluxManager<?> manager, final SpongeHelpEntry helpEntry, String message, int maxDescLength) {
int aliases = helpEntry.getController().getCommand().getAliases().size();
MessageBuilder.Text result = Messages.builder("");
int next = 0;
Matcher matcher = Pattern.compile("<(.+?)>").matcher(message);
while (next < message.length()) {
if (matcher.find()) {
if (matcher.start() > next) {
result.append(Messages.of(manager.getResponder().format(message.substring(matcher.start(), next))));
}
next = matcher.end() + 1;
switch (matcher.group(1)) {
case "command":
result.append(Messages.of(manager.getResponder().format(manager.getCommandPrefix() + helpEntry.getController().getCommand().getAcceptedStringSyntax(), false)))
.style(TextStyles.UNDERLINE)
.onHover(new HoverAction.ShowText() {
@Override
public String getId() {
return "auto-complete";
}
@Override
public Message getResult() {
return Messages.of(manager.getResponder().format("{c2}Click to auto-complete"));
}
})
.onClick(new ClickAction.SuggestCommand() {
@Override
public String getId() {
return "entry-command";
}
@Override
public String getResult() {
return helpEntry.getController().getCommand().getAcceptedStringSyntax();
}
});
break;
case "alias_num":
result.append(Messages.of(aliases + " alias" + (aliases == 1 ? "" : "es") + ""));
if (aliases > 1) {
result.onHover(new HoverAction.ShowText() {
@Override
public String getId() {
return "aliases";
}
@Override
public Message getResult() {
return Messages.of(manager.getResponder().format(StringUtil.combine("{c1}, {c2}", helpEntry.getController().getCommand().getReadableStringAliases())));
}
});
}
break;
case "short_desc":
case "long_desc":
String desc = matcher.group(1).equals("short_desc") ? helpEntry.getShortDescription() : StringUtil.combineArray("\n", helpEntry.getLongDescription()[0]);
if (maxDescLength > 0) {
desc = desc.length() > maxDescLength ? desc.substring(0, maxDescLength - 3) + "..." : desc;
}
result.append(Messages.of(desc));
break;
default:
result.append(Messages.of(manager.getResponder().format(matcher.group(0), false)));
break;
}
} else {
// We're done
result.append(Messages.of(message.substring(next)));
break;
}
}
return result.build();
}
开发者ID:DSH105,项目名称:Influx,代码行数:77,代码来源:SpongeHelpProvider.java
注:本文中的org.spongepowered.api.text.action.ClickAction类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论