no message

This commit is contained in:
DESKTOP-B8C034L\Raven 2021-03-21 21:53:13 +08:00
commit 685c0cbd16
21 changed files with 296 additions and 0 deletions

8
ResidenceBuild/.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../:\IdeaProject\ResidenceBuild\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,10 @@
<component name="ArtifactManager">
<artifact type="jar" name="ResidenceBuild">
<output-path>G:/minecraftServerLocal/plugins</output-path>
<root id="archive" name="ResidenceBuild.jar">
<element id="module-output" name="ResidenceBuild" />
<element id="file-copy" path="$PROJECT_DIR$/config.yml" />
<element id="file-copy" path="$PROJECT_DIR$/plugin.yml" />
</root>
</artifact>
</component>

View File

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Residence4.9.2.7">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../StrenghtPlus/Residence4.9.2.7.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="spigot-1.16.5">
<CLASSES>
<root url="jar://$APPLICATION_HOME_DIR$/lib/spigot-1.16.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$APPLICATION_HOME_DIR$/lib/spigot-1.16.5.jar!/" />
</SOURCES>
</library>
</component>

6
ResidenceBuild/.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
ResidenceBuild/.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/ResidenceBuild.iml" filepath="$PROJECT_DIR$/ResidenceBuild.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="spigot-1.16.5" level="project" />
<orderEntry type="library" name="Residence4.9.2.7" level="project" />
</component>
</module>

View File

@ -0,0 +1,4 @@
#世界名
Worlds:
- world1
- world2

View File

@ -0,0 +1,6 @@
name: ResBuildMain
main: com.raven.resbuild.ResBuildMain
version: 1.0
author: Raven
commands:
rsb:

View File

@ -0,0 +1,27 @@
package com.raven.ResBuild;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
public class ResBuild extends JavaPlugin {
@Override
public void onLoad() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN +"[ResidenceBuild]:plugin have been load");
}
@Override
public void onEnable() {
/*getServer().getPluginManager().registerEvents(new OnPlayerBuildListener(), this);
FlagPermissions.addFlag("build");*/
FileConfiguration config = getConfig();
if(config==null){
saveDefaultConfig();
}
}
@Override
public void onDisable() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN +"[ResidenceBuild]:plugin have been disable");
}
}

View File

@ -0,0 +1,36 @@
package com.raven.resbuild;
import com.bekvon.bukkit.residence.protection.FlagPermissions;
import com.raven.resbuild.command.CommandHandler;
import com.raven.resbuild.listener.OnPlayerBuildListener;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
public class ResBuildMain extends JavaPlugin {
private static Plugin plugin;
@Override
public void onLoad() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN +"[ResidenceBuild]:plugin have been load");
plugin = this;
}
@Override
public void onEnable() {
Bukkit.getPluginCommand("rsb").setExecutor(new CommandHandler());
getServer().getPluginManager().registerEvents(new OnPlayerBuildListener(), this);
FlagPermissions.addFlag("build");
saveDefaultConfig();
}
@Override
public void onDisable() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN +"[ResidenceBuild]:plugin have been disable");
}
public static Plugin getPlugin(){
return plugin;
}
}

View File

@ -0,0 +1,36 @@
package com.raven.resbuild.command;
import com.raven.resbuild.ResBuildMain;
import com.raven.resbuild.configtools.ConfigFactory;
import com.raven.resbuild.menu.OutPutInfo;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CommandHandler implements CommandExecutor {
@Override
public boolean onCommand(CommandSender commandSender, Command command, String info, String[] extra) {
if(commandSender instanceof Player){
Player player = (Player) commandSender;
if(info.equals("rsb") && extra.length==0){
OutPutInfo.display(player);
return true;
}else if(info.equals("rsb") && extra[0].equalsIgnoreCase("reload") && extra.length==1){
//重新读取config
if(player.hasPermission("rsb.reload")){
ConfigFactory factory = new ConfigFactory(ResBuildMain.getPlugin());
factory.reloadConfig();
player.sendMessage("§a§l[StrengthPlus]:§b§l插件已重载");
}else {
player.sendMessage("§c§l[StrengthPlus]:你没有权限去这样做!");
}
return true;
}
}else {
commandSender.sendMessage(ChatColor.GREEN+"[StrengthPlus]:"+ChatColor.RED+"你必须是一名玩家");
}
return false;
}
}

View File

@ -0,0 +1,43 @@
package com.raven.resbuild.configtools;
import com.raven.resbuild.ResBuildMain;
import org.bukkit.Server;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.util.List;
public class ConfigFactory {
private Plugin plugin;
public ConfigFactory(Plugin plugin){
this.plugin = plugin;
}
public static void loadConfig(Plugin plugin) {
try {
File configFile = new File(plugin.getDataFolder(), "config.yml");
if (!configFile.exists()) {
plugin.saveDefaultConfig();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean getUnableWorlds(String worldName){
FileConfiguration config = ResBuildMain.getPlugin().getConfig();
List<String> worldList = config.getStringList("Worlds");
for(int i=0;i<worldList.size();i++){
if(worldName.equals(worldList.get(i))){
return true;
}
}
return false;
}
public void reloadConfig(){
plugin.reloadConfig();
}
}

View File

@ -0,0 +1,67 @@
package com.raven.resbuild.listener;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.ResidencePermissions;
import com.raven.resbuild.configtools.ConfigFactory;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
public class OnPlayerBuildListener implements Listener {
Residence residence = Residence.getInstance();
@EventHandler(priority = EventPriority.HIGH)
public void onDestoryListener(BlockBreakEvent event){
Player player = event.getPlayer();
if(player.hasPermission("rsb.build")){
}else{
Location loc = event.getBlock().getLocation();
ClaimedResidence res = residence.getResidenceManager().getByLoc(loc);
String worldName = event.getBlock().getWorld().getName();
if(res!=null){
ResidencePermissions perms = res.getPermissions();
String playerName = event.getPlayer().getName();
boolean defaultValue = true;
boolean hasPermission = perms.playerHas(playerName, "build", defaultValue);
if(!hasPermission) {
event.setCancelled(true);
}
}else{
if(ConfigFactory.getUnableWorlds(worldName)){
event.setCancelled(true);
player.sendMessage("§c§l在当前世界你只能在领地中建筑!");
}
}
}
}
@EventHandler(priority = EventPriority.HIGH)
public void onBuildListener(BlockPlaceEvent event){
Player player = event.getPlayer();
if(player.hasPermission("rsb.build")){
}else{
Location loc = event.getBlock().getLocation();
ClaimedResidence res = residence.getResidenceManager().getByLoc(loc);
String worldName = event.getBlock().getWorld().getName();
if(res!=null){
ResidencePermissions perms = res.getPermissions();
String playerName = event.getPlayer().getName();
boolean defaultValue = true;
boolean hasPermission = perms.playerHas(playerName, "build", defaultValue);
if(!hasPermission) {
event.setCancelled(true);
}
}else{
if(ConfigFactory.getUnableWorlds(worldName)){
event.setCancelled(true);
player.sendMessage("§c§l在当前世界你只能在领地中建筑!");
}
}
}
}
}

View File

@ -0,0 +1,12 @@
package com.raven.resbuild.menu;
import org.bukkit.entity.Player;
public class OutPutInfo {
public static void display(Player player){
player.sendMessage("§c§l===------§6§l[ResidenceBuild]§c§l-------===");
player.sendMessage("§a§l/rsb 打开此帮助菜单");
player.sendMessage("§b§l/rsb reload 重载插件设置");
player.sendMessage("§c§l===------§6§l[ResidenceBuild]§c§l-------===");
}
}