forked from circlecloud/MiaoChat
		
	
							
								
								
									
										8
									
								
								.classpath
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.classpath
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<classpath>
 | 
				
			||||||
 | 
						<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 | 
				
			||||||
 | 
						<classpathentry kind="src" output="target/classes" path="src/main/resources"/>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
 | 
				
			||||||
 | 
						<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 | 
				
			||||||
 | 
						<classpathentry kind="output" path="target/classes"/>
 | 
				
			||||||
 | 
					</classpath>
 | 
				
			||||||
							
								
								
									
										38
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# Eclipse stuff
 | 
				
			||||||
 | 
					/.settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# netbeans
 | 
				
			||||||
 | 
					/nbproject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# we use maven!
 | 
				
			||||||
 | 
					/build.xml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# maven
 | 
				
			||||||
 | 
					/target
 | 
				
			||||||
 | 
					/repo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim
 | 
				
			||||||
 | 
					.*.sw[a-p]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# various other potential build files
 | 
				
			||||||
 | 
					/build
 | 
				
			||||||
 | 
					/bin
 | 
				
			||||||
 | 
					/dist
 | 
				
			||||||
 | 
					/manifest.mf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/world
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mac filesystem dust
 | 
				
			||||||
 | 
					*.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# intellij
 | 
				
			||||||
 | 
					*.iml
 | 
				
			||||||
 | 
					*.ipr
 | 
				
			||||||
 | 
					*.iws
 | 
				
			||||||
 | 
					.idea/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Project Stuff
 | 
				
			||||||
 | 
					/src/main/resources/Soulbound
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Atlassian Stuff
 | 
				
			||||||
 | 
					/atlassian-ide-plugin.xml
 | 
				
			||||||
							
								
								
									
										23
									
								
								.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.project
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<projectDescription>
 | 
				
			||||||
 | 
						<name>MiaoChat</name>
 | 
				
			||||||
 | 
						<comment></comment>
 | 
				
			||||||
 | 
						<projects>
 | 
				
			||||||
 | 
						</projects>
 | 
				
			||||||
 | 
						<buildSpec>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.jdt.core.javabuilder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
							<buildCommand>
 | 
				
			||||||
 | 
								<name>org.eclipse.m2e.core.maven2Builder</name>
 | 
				
			||||||
 | 
								<arguments>
 | 
				
			||||||
 | 
								</arguments>
 | 
				
			||||||
 | 
							</buildCommand>
 | 
				
			||||||
 | 
						</buildSpec>
 | 
				
			||||||
 | 
						<natures>
 | 
				
			||||||
 | 
							<nature>org.eclipse.m2e.core.maven2Nature</nature>
 | 
				
			||||||
 | 
							<nature>org.eclipse.jdt.core.javanature</nature>
 | 
				
			||||||
 | 
						</natures>
 | 
				
			||||||
 | 
					</projectDescription>
 | 
				
			||||||
							
								
								
									
										65
									
								
								class.dict
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								class.dict
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					IIIIiI
 | 
				
			||||||
 | 
					IIiIiI
 | 
				
			||||||
 | 
					iiIIiI
 | 
				
			||||||
 | 
					Iiiiii
 | 
				
			||||||
 | 
					IIIIIi
 | 
				
			||||||
 | 
					IiIiII
 | 
				
			||||||
 | 
					iiIIIi
 | 
				
			||||||
 | 
					iIIIii
 | 
				
			||||||
 | 
					iIiiIi
 | 
				
			||||||
 | 
					iiiIiI
 | 
				
			||||||
 | 
					IiiIii
 | 
				
			||||||
 | 
					iIiiiI
 | 
				
			||||||
 | 
					iiiIIi
 | 
				
			||||||
 | 
					IIiIII
 | 
				
			||||||
 | 
					IIIIii
 | 
				
			||||||
 | 
					IIIiii
 | 
				
			||||||
 | 
					iiiiII
 | 
				
			||||||
 | 
					iIIiII
 | 
				
			||||||
 | 
					IIiiII
 | 
				
			||||||
 | 
					iiIIii
 | 
				
			||||||
 | 
					IiiIII
 | 
				
			||||||
 | 
					iIiIII
 | 
				
			||||||
 | 
					IiIIii
 | 
				
			||||||
 | 
					iiIiiI
 | 
				
			||||||
 | 
					iIiiII
 | 
				
			||||||
 | 
					IiiIiI
 | 
				
			||||||
 | 
					iiiIII
 | 
				
			||||||
 | 
					IIiIIi
 | 
				
			||||||
 | 
					iIiIiI
 | 
				
			||||||
 | 
					iiIiii
 | 
				
			||||||
 | 
					IiIiii
 | 
				
			||||||
 | 
					IiIIiI
 | 
				
			||||||
 | 
					IiiIIi
 | 
				
			||||||
 | 
					IiIIIi
 | 
				
			||||||
 | 
					IIiiIi
 | 
				
			||||||
 | 
					iIIiIi
 | 
				
			||||||
 | 
					iIIIII
 | 
				
			||||||
 | 
					IIIiIi
 | 
				
			||||||
 | 
					iiiiiI
 | 
				
			||||||
 | 
					iIiIIi
 | 
				
			||||||
 | 
					IIIiiI
 | 
				
			||||||
 | 
					iiiiIi
 | 
				
			||||||
 | 
					iiIiIi
 | 
				
			||||||
 | 
					IIiiiI
 | 
				
			||||||
 | 
					IiiiII
 | 
				
			||||||
 | 
					iIIiii
 | 
				
			||||||
 | 
					iIiIii
 | 
				
			||||||
 | 
					IiIiiI
 | 
				
			||||||
 | 
					IIiIii
 | 
				
			||||||
 | 
					IiIIII
 | 
				
			||||||
 | 
					IIIIII
 | 
				
			||||||
 | 
					iIIIIi
 | 
				
			||||||
 | 
					IIIiII
 | 
				
			||||||
 | 
					iiiiii
 | 
				
			||||||
 | 
					IiiiiI
 | 
				
			||||||
 | 
					IiIiIi
 | 
				
			||||||
 | 
					iiiIii
 | 
				
			||||||
 | 
					iIIIiI
 | 
				
			||||||
 | 
					iIIiiI
 | 
				
			||||||
 | 
					iIiiii
 | 
				
			||||||
 | 
					iiIiII
 | 
				
			||||||
 | 
					IIiiii
 | 
				
			||||||
 | 
					iiIIII
 | 
				
			||||||
 | 
					IiiiIi
 | 
				
			||||||
 | 
					llllll
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								lib/PlaceholderAPI.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/PlaceholderAPI.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								obf.dict
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								obf.dict
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					if
 | 
				
			||||||
 | 
					try
 | 
				
			||||||
 | 
					for
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					new
 | 
				
			||||||
 | 
					true
 | 
				
			||||||
 | 
					null
 | 
				
			||||||
 | 
					this
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					enum
 | 
				
			||||||
 | 
					final
 | 
				
			||||||
 | 
					false
 | 
				
			||||||
 | 
					class
 | 
				
			||||||
 | 
					catch
 | 
				
			||||||
 | 
					import
 | 
				
			||||||
 | 
					double
 | 
				
			||||||
 | 
					public
 | 
				
			||||||
 | 
					static
 | 
				
			||||||
 | 
					boolean
 | 
				
			||||||
 | 
					package
 | 
				
			||||||
 | 
					finally
 | 
				
			||||||
 | 
					private
 | 
				
			||||||
 | 
					protected
 | 
				
			||||||
							
								
								
									
										134
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
				
			|||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
						xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
						<modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
						<groupId>pw.yumc</groupId>
 | 
				
			||||||
 | 
						<artifactId>MiaoChat</artifactId>
 | 
				
			||||||
 | 
						<version>1.0</version>
 | 
				
			||||||
 | 
						<build>
 | 
				
			||||||
 | 
							<finalName>${project.name}</finalName>
 | 
				
			||||||
 | 
							<resources>
 | 
				
			||||||
 | 
								<resource>
 | 
				
			||||||
 | 
									<directory>src/main/resources</directory>
 | 
				
			||||||
 | 
									<filtering>true</filtering>
 | 
				
			||||||
 | 
								</resource>
 | 
				
			||||||
 | 
							</resources>
 | 
				
			||||||
 | 
							<plugins>
 | 
				
			||||||
 | 
								<plugin>
 | 
				
			||||||
 | 
									<artifactId>maven-compiler-plugin</artifactId>
 | 
				
			||||||
 | 
									<version>3.3</version>
 | 
				
			||||||
 | 
									<configuration>
 | 
				
			||||||
 | 
										<source>1.7</source>
 | 
				
			||||||
 | 
										<target>1.7</target>
 | 
				
			||||||
 | 
									</configuration>
 | 
				
			||||||
 | 
								</plugin>
 | 
				
			||||||
 | 
								<plugin>
 | 
				
			||||||
 | 
									<groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
									<artifactId>maven-shade-plugin</artifactId>
 | 
				
			||||||
 | 
									<version>2.3</version>
 | 
				
			||||||
 | 
									<configuration>
 | 
				
			||||||
 | 
										<createDependencyReducedPom>false</createDependencyReducedPom>
 | 
				
			||||||
 | 
										<minimizeJar>true</minimizeJar>
 | 
				
			||||||
 | 
										<artifactSet>
 | 
				
			||||||
 | 
											<includes>
 | 
				
			||||||
 | 
												<include>pw.yumc:YumCore</include>
 | 
				
			||||||
 | 
												<include>cn.citycraft:PluginHelper</include>
 | 
				
			||||||
 | 
											</includes>
 | 
				
			||||||
 | 
										</artifactSet>
 | 
				
			||||||
 | 
										<relocations>
 | 
				
			||||||
 | 
											<relocation>
 | 
				
			||||||
 | 
												<pattern>pw.yumc.YumCore</pattern>
 | 
				
			||||||
 | 
												<shadedPattern>${project.groupId}.${project.artifactId}</shadedPattern>
 | 
				
			||||||
 | 
											</relocation>
 | 
				
			||||||
 | 
											<relocation>
 | 
				
			||||||
 | 
												<pattern>cn.citycraft.PluginHelper</pattern>
 | 
				
			||||||
 | 
												<shadedPattern>${project.groupId}.${project.artifactId}</shadedPattern>
 | 
				
			||||||
 | 
											</relocation>
 | 
				
			||||||
 | 
										</relocations>
 | 
				
			||||||
 | 
									</configuration>
 | 
				
			||||||
 | 
									<executions>
 | 
				
			||||||
 | 
										<execution>
 | 
				
			||||||
 | 
											<phase>package</phase>
 | 
				
			||||||
 | 
											<goals>
 | 
				
			||||||
 | 
												<goal>shade</goal>
 | 
				
			||||||
 | 
											</goals>
 | 
				
			||||||
 | 
										</execution>
 | 
				
			||||||
 | 
									</executions>
 | 
				
			||||||
 | 
								</plugin>
 | 
				
			||||||
 | 
								<plugin>
 | 
				
			||||||
 | 
									<groupId>com.github.wvengen</groupId>
 | 
				
			||||||
 | 
									<artifactId>proguard-maven-plugin</artifactId>
 | 
				
			||||||
 | 
									<executions>
 | 
				
			||||||
 | 
										<execution>
 | 
				
			||||||
 | 
											<phase>package</phase>
 | 
				
			||||||
 | 
											<goals>
 | 
				
			||||||
 | 
												<goal>proguard</goal>
 | 
				
			||||||
 | 
											</goals>
 | 
				
			||||||
 | 
											<configuration>
 | 
				
			||||||
 | 
												<options>
 | 
				
			||||||
 | 
													<option>-repackageclasses nul.${project.groupId}.for.${project.artifactId}.class</option>
 | 
				
			||||||
 | 
													<option>-keep class ${project.groupId}.${project.artifactId}.${project.artifactId}</option>
 | 
				
			||||||
 | 
												</options>
 | 
				
			||||||
 | 
												<libs>
 | 
				
			||||||
 | 
													<lib>${java.home}/lib/rt.jar</lib>
 | 
				
			||||||
 | 
												</libs>
 | 
				
			||||||
 | 
											</configuration>
 | 
				
			||||||
 | 
										</execution>
 | 
				
			||||||
 | 
									</executions>
 | 
				
			||||||
 | 
								</plugin>
 | 
				
			||||||
 | 
							</plugins>
 | 
				
			||||||
 | 
						</build>
 | 
				
			||||||
 | 
						<ciManagement>
 | 
				
			||||||
 | 
							<system>Jenkins</system>
 | 
				
			||||||
 | 
							<url>http://ci.yumc.pw/job/${project.artifactId}/</url>
 | 
				
			||||||
 | 
						</ciManagement>
 | 
				
			||||||
 | 
						<properties>
 | 
				
			||||||
 | 
							<update.description></update.description>
 | 
				
			||||||
 | 
							<update.changes></update.changes>
 | 
				
			||||||
 | 
							<env.GIT_COMMIT>DEBUG</env.GIT_COMMIT>
 | 
				
			||||||
 | 
							<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
				
			||||||
 | 
						</properties>
 | 
				
			||||||
 | 
						<repositories>
 | 
				
			||||||
 | 
							<repository>
 | 
				
			||||||
 | 
								<id>spigot-repo</id>
 | 
				
			||||||
 | 
								<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
 | 
				
			||||||
 | 
							</repository>
 | 
				
			||||||
 | 
							<repository>
 | 
				
			||||||
 | 
								<id>yumc-repo</id>
 | 
				
			||||||
 | 
								<url>http://repo.yumc.pw/content/groups/public/</url>
 | 
				
			||||||
 | 
							</repository>
 | 
				
			||||||
 | 
						</repositories>
 | 
				
			||||||
 | 
						<distributionManagement>
 | 
				
			||||||
 | 
							<repository>
 | 
				
			||||||
 | 
								<id>jtb</id>
 | 
				
			||||||
 | 
								<name>YUMC</name>
 | 
				
			||||||
 | 
								<url>http://repo.yumc.pw/content/repositories/yumcenter/</url>
 | 
				
			||||||
 | 
							</repository>
 | 
				
			||||||
 | 
						</distributionManagement>
 | 
				
			||||||
 | 
						<dependencies>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<groupId>org.spigotmc</groupId>
 | 
				
			||||||
 | 
								<artifactId>spigot-api</artifactId>
 | 
				
			||||||
 | 
								<type>jar</type>
 | 
				
			||||||
 | 
								<version>1.10.2-R0.1-SNAPSHOT</version>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<groupId>cn.citycraft</groupId>
 | 
				
			||||||
 | 
								<artifactId>PluginHelper</artifactId>
 | 
				
			||||||
 | 
								<type>jar</type>
 | 
				
			||||||
 | 
								<version>1.0</version>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<groupId>pw.yumc</groupId>
 | 
				
			||||||
 | 
								<artifactId>YumCore</artifactId>
 | 
				
			||||||
 | 
								<type>jar</type>
 | 
				
			||||||
 | 
								<version>1.0</version>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<groupId>pw.yumc</groupId>
 | 
				
			||||||
 | 
								<artifactId>PlaceholderAPI</artifactId>
 | 
				
			||||||
 | 
								<version>1.0</version>
 | 
				
			||||||
 | 
								<scope>system</scope>
 | 
				
			||||||
 | 
								<systemPath>${project.basedir}/lib/PlaceholderAPI.jar</systemPath>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
 | 
						</dependencies>
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
							
								
								
									
										56
									
								
								proguard.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								proguard.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					# -----不优化-----
 | 
				
			||||||
 | 
					-dontoptimize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----忽略所有警告-----
 | 
				
			||||||
 | 
					-dontwarn
 | 
				
			||||||
 | 
					-dontnote
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----混淆时应用侵入式重载-----
 | 
				
			||||||
 | 
					-overloadaggressively   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----启用混淆字典-----
 | 
				
			||||||
 | 
					-obfuscationdictionary obf.dict
 | 
				
			||||||
 | 
					-classobfuscationdictionary class.dict
 | 
				
			||||||
 | 
					-packageobfuscationdictionary class.dict
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----保留所有属性
 | 
				
			||||||
 | 
					-keepattributes **
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----公共数据不混淆-----
 | 
				
			||||||
 | 
					-keep class cn.citycraft.CommonData.** {*;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----保护所有实体中的字段名称-----
 | 
				
			||||||
 | 
					-keepclassmembers class * implements java.io.Serializable { <fields>; }  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----保护监听方法不被清理-----
 | 
				
			||||||
 | 
					-keepclassmembers class * implements org.bukkit.event.Listener { 
 | 
				
			||||||
 | 
						@org.bukkit.event.EventHandler <methods>; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# -----保护枚举方法的完整性-----
 | 
				
			||||||
 | 
					-keep enum ** {*;}
 | 
				
			||||||
 | 
					# -----保护配置注入不被清理-----
 | 
				
			||||||
 | 
					-keepclassmembers class * extends **.config.InjectConfigurationSection { 
 | 
				
			||||||
 | 
						<fields>;
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					-keepclassmembers class * extends **.config.InjectConfig { 
 | 
				
			||||||
 | 
						<fields>;
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					# -----保护注解命令方法不被清理-----
 | 
				
			||||||
 | 
					-keepclassmembers class **.commands.annotation.** { <methods>; }  
 | 
				
			||||||
 | 
					-keepclassmembers class * implements **.commands.CommandExecutor { <methods>; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-keepclassmembers class **.commands.HandlerCommand { <methods>; }  
 | 
				
			||||||
 | 
					-keepclassmembers class * implements **.commands.HandlerCommands { 
 | 
				
			||||||
 | 
						@**.commands.HandlerCommand <methods>;
 | 
				
			||||||
 | 
						@**.commands.HandlerTabComplete <methods>; 
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					# -----保护注解NotProguard标记-----
 | 
				
			||||||
 | 
					-keep class **.NotProguard
 | 
				
			||||||
 | 
					-keep @**.NotProguard class * {*;}
 | 
				
			||||||
 | 
					-keepclassmembers class * {  
 | 
				
			||||||
 | 
					    @**.NotProguard <fields>;  
 | 
				
			||||||
 | 
					    @**.NotProguard <methods>;  
 | 
				
			||||||
 | 
					}  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -----保护命令解析正常-----
 | 
				
			||||||
 | 
					-keepnames class * extends **.commands.BaseCommand
 | 
				
			||||||
							
								
								
									
										47
									
								
								src/main/java/pw/yumc/MiaoChat/MiaoChat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/main/java/pw/yumc/MiaoChat/MiaoChat.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					package pw.yumc.MiaoChat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.configuration.file.FileConfiguration;
 | 
				
			||||||
 | 
					import org.bukkit.plugin.java.JavaPlugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pw.yumc.MiaoChat.config.ChatConfig;
 | 
				
			||||||
 | 
					import pw.yumc.MiaoChat.listeners.ChatListener;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.commands.CommandArgument;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.commands.CommandExecutor;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.commands.CommandManager;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.commands.annotation.Cmd;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.commands.annotation.Help;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.config.FileConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class MiaoChat extends JavaPlugin implements CommandExecutor {
 | 
				
			||||||
 | 
					    private ChatConfig chatConfig;
 | 
				
			||||||
 | 
					    private FileConfig config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ChatConfig getChatConfig() {
 | 
				
			||||||
 | 
					        return chatConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public FileConfiguration getConfig() {
 | 
				
			||||||
 | 
					        return config;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void onEnable() {
 | 
				
			||||||
 | 
					        new ChatListener();
 | 
				
			||||||
 | 
					        new CommandManager("MiaoChat", this);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void onLoad() {
 | 
				
			||||||
 | 
					        config = new FileConfig();
 | 
				
			||||||
 | 
					        chatConfig = new ChatConfig();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Cmd(permission = "MiaoChat.reload")
 | 
				
			||||||
 | 
					    @Help("重载配置文件")
 | 
				
			||||||
 | 
					    public void reload(final CommandArgument e) {
 | 
				
			||||||
 | 
					        config.reload();
 | 
				
			||||||
 | 
					        chatConfig.reload();
 | 
				
			||||||
 | 
					        e.getSender().sendMessage("§a配置文件已重载!");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								src/main/java/pw/yumc/MiaoChat/config/CLICKTYPE.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/main/java/pw/yumc/MiaoChat/config/CLICKTYPE.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					package pw.yumc.MiaoChat.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum CLICKTYPE {
 | 
				
			||||||
 | 
					    COMMAND,
 | 
				
			||||||
 | 
					    SUGGEST;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										51
									
								
								src/main/java/pw/yumc/MiaoChat/config/ChatConfig.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/main/java/pw/yumc/MiaoChat/config/ChatConfig.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					package pw.yumc.MiaoChat.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.LinkedList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.bukkit.P;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.config.FileConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ChatConfig {
 | 
				
			||||||
 | 
					    private static String PrefixKey = "Format.Prefix";
 | 
				
			||||||
 | 
					    private static String SuffixKey = "Format.Suffix";
 | 
				
			||||||
 | 
					    private final FileConfig config;
 | 
				
			||||||
 | 
					    private final List<ChatMessagePart> prefixs;
 | 
				
			||||||
 | 
					    private final List<ChatMessagePart> suffixs;
 | 
				
			||||||
 | 
					    private ChatMessagePart player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ChatConfig() {
 | 
				
			||||||
 | 
					        config = P.getConfig();
 | 
				
			||||||
 | 
					        prefixs = new LinkedList<>();
 | 
				
			||||||
 | 
					        suffixs = new LinkedList<>();
 | 
				
			||||||
 | 
					        reload();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ChatMessagePart getPlayer() {
 | 
				
			||||||
 | 
					        return player;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<ChatMessagePart> getPrefixs() {
 | 
				
			||||||
 | 
					        return prefixs;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<ChatMessagePart> getSuffixs() {
 | 
				
			||||||
 | 
					        return suffixs;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void reload() {
 | 
				
			||||||
 | 
					        prefixs.clear();
 | 
				
			||||||
 | 
					        if (config.isSet(PrefixKey)) {
 | 
				
			||||||
 | 
					            for (final String part : config.getConfigurationSection(PrefixKey).getKeys(false)) {
 | 
				
			||||||
 | 
					                prefixs.add(new ChatMessagePart(config.getConfigurationSection(PrefixKey + "." + part)));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        player = new ChatMessagePart(config.getConfigurationSection("Format.Player"));
 | 
				
			||||||
 | 
					        suffixs.clear();
 | 
				
			||||||
 | 
					        if (config.isSet(SuffixKey)) {
 | 
				
			||||||
 | 
					            for (final String part : config.getConfigurationSection(SuffixKey).getKeys(false)) {
 | 
				
			||||||
 | 
					                suffixs.add(new ChatMessagePart(config.getConfigurationSection(SuffixKey + "." + part)));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										52
									
								
								src/main/java/pw/yumc/MiaoChat/config/ChatMessagePart.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/main/java/pw/yumc/MiaoChat/config/ChatMessagePart.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					package pw.yumc.MiaoChat.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.configuration.ConfigurationSection;
 | 
				
			||||||
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import me.clip.placeholderapi.PlaceholderAPI;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.config.ConfigNode;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.config.InjectConfigurationSection;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.tellraw.Tellraw;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ChatMessagePart extends InjectConfigurationSection {
 | 
				
			||||||
 | 
					    private String text;
 | 
				
			||||||
 | 
					    private List<String> tip;
 | 
				
			||||||
 | 
					    @ConfigNode("click.type")
 | 
				
			||||||
 | 
					    private String typestring;
 | 
				
			||||||
 | 
					    private transient CLICKTYPE type = CLICKTYPE.SUGGEST;
 | 
				
			||||||
 | 
					    @ConfigNode("click.command")
 | 
				
			||||||
 | 
					    private String command;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ChatMessagePart(final ConfigurationSection config) {
 | 
				
			||||||
 | 
					        super(config);
 | 
				
			||||||
 | 
					        if (typestring != null) {
 | 
				
			||||||
 | 
					            type = CLICKTYPE.valueOf(typestring);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Tellraw then(final Tellraw tr, final Player p) {
 | 
				
			||||||
 | 
					        tr.then(f(p, text));
 | 
				
			||||||
 | 
					        if (tip != null && !tip.isEmpty()) {
 | 
				
			||||||
 | 
					            tr.tip(f(p, tip));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (command != null && !command.isEmpty()) {
 | 
				
			||||||
 | 
					            final String tc = f(p, command);
 | 
				
			||||||
 | 
					            if (type == CLICKTYPE.SUGGEST) {
 | 
				
			||||||
 | 
					                tr.suggest(tc);
 | 
				
			||||||
 | 
					            } else if (type == CLICKTYPE.COMMAND) {
 | 
				
			||||||
 | 
					                tr.command(tc);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return tr;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<String> f(final Player player, final List<String> text) {
 | 
				
			||||||
 | 
					        return PlaceholderAPI.setPlaceholders(player, text);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String f(final Player player, final String text) {
 | 
				
			||||||
 | 
					        return PlaceholderAPI.setPlaceholders(player, text);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										44
									
								
								src/main/java/pw/yumc/MiaoChat/listeners/ChatListener.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/main/java/pw/yumc/MiaoChat/listeners/ChatListener.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					package pw.yumc.MiaoChat.listeners;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.Bukkit;
 | 
				
			||||||
 | 
					import org.bukkit.ChatColor;
 | 
				
			||||||
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 | 
					import org.bukkit.event.EventHandler;
 | 
				
			||||||
 | 
					import org.bukkit.event.Listener;
 | 
				
			||||||
 | 
					import org.bukkit.event.player.AsyncPlayerChatEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pw.yumc.MiaoChat.MiaoChat;
 | 
				
			||||||
 | 
					import pw.yumc.MiaoChat.config.ChatConfig;
 | 
				
			||||||
 | 
					import pw.yumc.MiaoChat.config.ChatMessagePart;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.bukkit.P;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.statistic.Statistics;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.tellraw.Tellraw;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.update.SubscribeTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ChatListener implements Listener {
 | 
				
			||||||
 | 
					    MiaoChat plugin = P.getPlugin();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ChatListener() {
 | 
				
			||||||
 | 
					        Bukkit.getPluginManager().registerEvents(this, P.instance);
 | 
				
			||||||
 | 
					        new Statistics();
 | 
				
			||||||
 | 
					        new SubscribeTask(true, true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @EventHandler
 | 
				
			||||||
 | 
					    public void onChat(final AsyncPlayerChatEvent e) {
 | 
				
			||||||
 | 
					        e.setCancelled(true);
 | 
				
			||||||
 | 
					        final Player p = e.getPlayer();
 | 
				
			||||||
 | 
					        final ChatConfig cc = plugin.getChatConfig();
 | 
				
			||||||
 | 
					        final String msg = e.getMessage();
 | 
				
			||||||
 | 
					        final Tellraw tr = Tellraw.create();
 | 
				
			||||||
 | 
					        for (final ChatMessagePart cmp : cc.getPrefixs()) {
 | 
				
			||||||
 | 
					            cmp.then(tr, p);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        cc.getPlayer().then(tr, p);
 | 
				
			||||||
 | 
					        for (final ChatMessagePart cmp : cc.getSuffixs()) {
 | 
				
			||||||
 | 
					            cmp.then(tr, p);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        tr.then(ChatColor.translateAlternateColorCodes('&', msg));
 | 
				
			||||||
 | 
					        tr.broadcast();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								src/main/resources/config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/main/resources/config.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					#格式化配置
 | 
				
			||||||
 | 
					Format:
 | 
				
			||||||
 | 
					  #前缀配置 于玩家名称前
 | 
				
			||||||
 | 
					  Prefix: 
 | 
				
			||||||
 | 
					    #顺序
 | 
				
			||||||
 | 
					    1:
 | 
				
			||||||
 | 
					      #文本 支持PAPI变量
 | 
				
			||||||
 | 
					      text: '&6[&a%player_world%&6]'
 | 
				
			||||||
 | 
					      #悬浮提示 支持PAPI
 | 
				
			||||||
 | 
					      tip: 
 | 
				
			||||||
 | 
					      - '&6当前所在位置:'
 | 
				
			||||||
 | 
					      - '&6世界: &d%layer_world%'
 | 
				
			||||||
 | 
					      - '&6坐标: &aX:%layer_x% Y: %player_y% Z: %player_z%'
 | 
				
			||||||
 | 
					      - '&c点击即可TP我!'
 | 
				
			||||||
 | 
					      #点击操作
 | 
				
			||||||
 | 
					      click:
 | 
				
			||||||
 | 
					        #操作类型: [COMMAND,SUGGEST] 
 | 
				
			||||||
 | 
					        #COMMAND代表执行命令
 | 
				
			||||||
 | 
					        #SUGGEST代表命令补全
 | 
				
			||||||
 | 
					        type: 'COMMAND'
 | 
				
			||||||
 | 
					        #命令 支持PAPI
 | 
				
			||||||
 | 
					        command: '/tpa %player_name%'
 | 
				
			||||||
 | 
					  #玩家名称配置
 | 
				
			||||||
 | 
					  Player: 
 | 
				
			||||||
 | 
					    text: '&6[&b%player_name%&6] '
 | 
				
			||||||
 | 
					    tip: 
 | 
				
			||||||
 | 
					    - '点击与我聊天'
 | 
				
			||||||
 | 
					    click: 
 | 
				
			||||||
 | 
					      type: 'SUGGEST'
 | 
				
			||||||
 | 
					      command: '/tell %player_name%'
 | 
				
			||||||
 | 
					#后缀配置 于玩家名称后 由于一般没人用 我注释掉了
 | 
				
			||||||
 | 
					#  Suffix: 
 | 
				
			||||||
 | 
					#    1:
 | 
				
			||||||
 | 
					#      text: '[变量1]'
 | 
				
			||||||
 | 
					#      tip: 
 | 
				
			||||||
 | 
					#      - '变量1提示'
 | 
				
			||||||
 | 
					#      click: 
 | 
				
			||||||
 | 
					#        type: 'COMMAND'
 | 
				
			||||||
 | 
					#        command: 'say 命令执行'      
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/main/resources/plugin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/main/resources/plugin.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					name: ${project.artifactId}
 | 
				
			||||||
 | 
					description: ${project.description}
 | 
				
			||||||
 | 
					main: ${project.groupId}.${project.artifactId}.${project.artifactId}
 | 
				
			||||||
 | 
					version: ${project.version}-git-${env.GIT_COMMIT}
 | 
				
			||||||
 | 
					author: 喵♂呜
 | 
				
			||||||
 | 
					website: ${ciManagement.url}
 | 
				
			||||||
 | 
					commands:
 | 
				
			||||||
 | 
					  ${project.artifactId}:
 | 
				
			||||||
 | 
					    description: ${project.artifactId} - ${project.description}
 | 
				
			||||||
 | 
					    aliases:
 | 
				
			||||||
 | 
					    - mct
 | 
				
			||||||
 | 
					    - mchat
 | 
				
			||||||
 | 
					    usage: §b使用/${project.artifactId} help 查看帮助!
 | 
				
			||||||
 | 
					    permission: ${project.artifactId}.reload
 | 
				
			||||||
 | 
					    permission-message: §c你没有 <permission> 的权限来执行此命令!
 | 
				
			||||||
 | 
					permissions:
 | 
				
			||||||
 | 
					  ${project.artifactId}.use:
 | 
				
			||||||
 | 
					    description: ${project.artifactId} 使用!
 | 
				
			||||||
 | 
					    default: true
 | 
				
			||||||
 | 
					  ${project.artifactId}.reload:
 | 
				
			||||||
 | 
					    description: 重新载入插件!
 | 
				
			||||||
 | 
					    default: op
 | 
				
			||||||
		Reference in New Issue
	
	Block a user