Skip to content

Commit

Permalink
v 1.0.16
Browse files Browse the repository at this point in the history
  • Loading branch information
Yeqi99 committed Sep 5, 2023
1 parent 242be19 commit a35ff26
Show file tree
Hide file tree
Showing 8 changed files with 143 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
<dependency>
<groupId>cn.origincraft.magic</groupId>
<artifactId>MagicRedis</artifactId>
<version>1.0.9</version>
<version>1.0.10</version>
</dependency>
<!-- YamlCore -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import cn.originmc.plugins.magicpaper.data.config.MagicData;
import cn.originmc.plugins.magicpaper.data.manager.MagicDataManager;
import cn.originmc.plugins.magicpaper.magic.FunctionRegister;
import cn.originmc.plugins.magicpaper.trigger.MagicPaperTriggerManager;
import cn.originmc.plugins.magicpaper.trigger.abs.MagicPaperTrigger;
import cn.originmc.plugins.magicpaper.util.text.Sender;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import org.bukkit.command.Command;
Expand Down Expand Up @@ -114,6 +116,10 @@ public boolean onCommand(CommandSender commandSender, Command command, String s,
}
MagicPaper.getSender().sendToSender(commandSender,"&a&b"+info+"&7:&c"+argsInfo);
return true;
}else if(args[0].equalsIgnoreCase("triggers")){
for (MagicPaperTrigger magicPaperTrigger : MagicPaperTriggerManager.magicPaperTriggers) {
MagicPaper.getSender().sendToSender(commandSender, magicPaperTrigger.getName());
}
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import cn.originmc.plugins.magicpaper.MagicPaper;
import cn.originmc.plugins.magicpaper.data.manager.MagicDataManager;
import cn.originmc.plugins.magicpaper.magic.FunctionRegister;
import cn.originmc.plugins.magicpaper.trigger.MagicPaperTriggerManager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
Expand All @@ -25,6 +26,7 @@ public List<String> onTabComplete(CommandSender sender, Command command, String
completions.add("publicspell");
completions.add("functions");
completions.add("functioninfo");
completions.add("triggers");
} else if (args.length == 2) {
if (args[0].equalsIgnoreCase("spell")) {
// 提示第二个参数的补全,可能是法术ID
Expand All @@ -40,6 +42,13 @@ public List<String> onTabComplete(CommandSender sender, Command command, String
// 提示第二个参数的补全,可能是法术ID
completions.addAll(new ArrayList<>(FunctionRegister.funInfo.keySet()));
}
if (args[0].equalsIgnoreCase("functions")) {
// 提示第二个参数的补全,可能是法术ID
completions.addAll(MagicPaper.getMagicManager().getFunctionsRealNames());
}
if (args[0].equalsIgnoreCase("triggers")){
completions.addAll(MagicPaperTriggerManager.getTriggerNames());
}
}

// 对补全进行排序,可以自行根据需要更改
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import cn.originmc.plugins.magicpaper.magic.function.magictimer.PaperTimerFunction;
import cn.originmc.plugins.magicpaper.magic.function.object.LocationFunction;
import cn.originmc.plugins.magicpaper.magic.function.object.PlayerFunction;
import cn.originmc.plugins.magicpaper.magic.function.trigger.AddSpellToTriggerFunction;
import cn.originmc.plugins.magicpaper.magic.function.trigger.TriggerClearSpellFunction;
import dev.rgbmc.expression.managers.FunctionManager;

import java.util.HashMap;
Expand Down Expand Up @@ -42,10 +44,14 @@ public static void register(MagicManager magicManager) {
fm.register(new PaperSpellAsyncExecuteFunction(),"papersae");
fm.register(new FoliaSpellExecuteFunction(),"foliase");
fm.register(new FoliaSpellAsyncExecuteFunction(),"foliasae");
fm.register(new PublicContextGetFunction(),"getpc");
// magictimer
fm.register(new AddToTimerFunction(),"att");
fm.register(new FoliaTimerFunction(),"ftimer");
fm.register(new PaperTimerFunction(),"ptimer");
// trigger
fm.register(new AddSpellToTriggerFunction(),"astt");
fm.register(new TriggerClearSpellFunction(),"tcs");
}
public static void registerInfo(){
funInfo.put("playerLPMetaGet","获取玩家的LuckPerms的meta");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package cn.originmc.plugins.magicpaper.magic.function.control.execute;

import cn.origincraft.magic.function.NormalFunction;
import cn.origincraft.magic.function.results.ContextMapResult;
import cn.origincraft.magic.object.SpellContext;
import cn.originmc.plugins.magicpaper.MagicPaper;
import dev.rgbmc.expression.functions.FunctionResult;

import java.util.List;

public class PublicContextGetFunction extends NormalFunction {
@Override
public FunctionResult whenFunctionCalled(SpellContext spellContext, List<FunctionResult> list) {
return new ContextMapResult(MagicPaper.getContext());
}

@Override
public String getType() {
return "PAPER_SYSTEM";
}

@Override
public String getName() {
return "publicContextGet";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package cn.originmc.plugins.magicpaper.magic.function.trigger;

import cn.origincraft.magic.function.NormalFunction;
import cn.origincraft.magic.function.results.ErrorResult;
import cn.origincraft.magic.function.results.NullResult;
import cn.origincraft.magic.function.results.SpellResult;
import cn.origincraft.magic.object.Spell;
import cn.origincraft.magic.object.SpellContext;
import cn.originmc.plugins.magicpaper.trigger.MagicPaperTriggerManager;
import dev.rgbmc.expression.functions.FunctionResult;
import dev.rgbmc.expression.results.StringResult;

import java.util.List;

public class AddSpellToTriggerFunction extends NormalFunction {
@Override
public FunctionResult whenFunctionCalled(SpellContext spellContext, List<FunctionResult> args) {
if (args.size()<2) {
return new ErrorResult("ERROR_ARGUMENTS","Arguments are not enough.");
}
FunctionResult triggerName = args.get(0);
FunctionResult spell = args.get(1);
if(triggerName instanceof StringResult && spell instanceof SpellResult){
StringResult triggerNameStringResult = (StringResult) triggerName;
SpellResult spellResult = (SpellResult) spell;
String triggerNameString = triggerNameStringResult.getString();
Spell spell1 = spellResult.getSpell();
if (!MagicPaperTriggerManager.isTrigger(triggerNameString)){
return new ErrorResult("ERROR_TRIGGER_NOT_EXIST","Trigger does not exist.");
}
MagicPaperTriggerManager.register(triggerNameString,spell1);
return new NullResult();
}else {
return new ErrorResult("TYPE_ERROR","Argument type error.");
}
}

@Override
public String getType() {
return "TRIGGER";
}

@Override
public String getName() {
return "addSpellToTrigger";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package cn.originmc.plugins.magicpaper.magic.function.trigger;

import cn.origincraft.magic.function.NormalFunction;
import cn.origincraft.magic.function.results.ErrorResult;
import cn.origincraft.magic.function.results.NullResult;
import cn.origincraft.magic.object.SpellContext;
import cn.originmc.plugins.magicpaper.trigger.MagicPaperTriggerManager;
import dev.rgbmc.expression.functions.FunctionResult;
import dev.rgbmc.expression.results.StringResult;

import java.util.List;

public class TriggerClearSpellFunction extends NormalFunction {
@Override
public FunctionResult whenFunctionCalled(SpellContext spellContext, List<FunctionResult> args) {
if (args.isEmpty()){
return new ErrorResult("ARGS_EMPTY","Args is empty");
}
FunctionResult triggerName = args.get(0);
if (triggerName instanceof StringResult){
StringResult triggerNameStringResult = (StringResult) triggerName;
String triggerNameString = triggerNameStringResult.getString();
MagicPaperTriggerManager.clear(triggerNameString);
return new NullResult();
}else {
return new ErrorResult("TYPE_ERROR","Argument type error.");
}
}

@Override
public String getType() {
return "PAPER_SYSTEM";
}

@Override
public String getName() {
return "triggerClearSpell";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,15 @@ public static void unregister(String name, Spell spell){
}
}
}
public static void clear(String name){
for(MagicPaperTrigger trigger:magicPaperTriggers){
if (trigger.getName().equalsIgnoreCase(name)){
trigger.getSpells().clear();
return;
}
}
}

public static void unregisterAll(Spell spell){
for(MagicPaperTrigger trigger:magicPaperTriggers){
trigger.unregister(spell);
Expand Down

0 comments on commit a35ff26

Please sign in to comment.