minecraft java

Status
Niet open voor verdere reacties.

Wiestje

Gebruiker
Lid geworden
17 aug 2009
Berichten
217
hoi, ik heb een vraagje, heeft iemand van jullie soms een tutorial voor het zelf maken van plugins voor minecraft met java n.n zo de basics die ik egt zo moeten kennen n.n
 
plugins of mods? Plugins gebruiken een eigen basis zoals Bukkit en Mods gebruiken de Minecraft classes?
 
Ik was er ook al mee bezig maar nog niet zo'n werkende versie

onderstaande lib heb je zeker nodig
www.djdb.be/webstart/lib
doc
www.djdb.be/webstart/doc
Code:
package be.djdb.aplugin;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;

import be.djdb.MyPlug;
import be.djdb.MyPlugin;
import be.djdb.Plugble;
import be.djdb.UnConstruct;
@UnConstruct
public class MyPluginscan {
	List<Class> classes1 ;
	List<Class> plugble ;
	List<MyPlugin> Plugins ;
	public MyPluginscan(String packageName,String productname) {
		classes1 = getClasses(packageName);
	}
	public List getClasseNamesInPackage (String jarName ){
		   ArrayList classes = new ArrayList ();
		   try{
			     JarInputStream jarFile = new JarInputStream(new FileInputStream (jarName));
			     JarEntry jarEntry;
			     while(true) {
			       jarEntry=jarFile.getNextJarEntry ();
			       assert jarEntry != null;
			       if(isClassfile(jarEntry.getName ())){
			    	   classes.add (jarEntry.getName().replaceAll("/", "\\."));
			       }
			     }
		   }catch( Exception e){
		     e.printStackTrace ();
		   }
		   return classes;
		}
	private List<Class> getClasses(String packageName) {
	      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
	        assert classLoader != null;
	        String path = packageName.replace('.', '/');
	        try {
				Enumeration<URL> resources = classLoader.getResources(path);
			} catch (IOException e) {
				e.printStackTrace();
			}
		return null;
	}
    public static List<Class> findClasses(File directory) throws ClassNotFoundException {
        List<Class> classes = new ArrayList<Class>();
        if (!directory.exists()) {
            return classes;
        }
        File[] files = directory.listFiles();
        for (File file : files) {
        	String fname = file.getAbsolutePath();
            if (file.isDirectory()) {
                assert !file.getName().contains(".");
                if (!file.getName().startsWith(".svn")){
                	System.out.println(fname);
                	classes.addAll(findClasses(file));
                }
            } else if (isClassfile(fname)) {
            	System.out.println("isclass:"+fname);
            	System.out.println(file.getName().substring(0, file.getName().length() - 6));
            	//packageName + '.' + 
            	Class theclass = Class.forName(file.getName().substring(0, file.getName().length() - 6));
            	if (isplugin(theclass)){
            		//classes.add(theclass);
            	}
            }
        }
        return classes;
    }
	public static boolean isClassfile(String name){
		return name.endsWith(".class");//name.startsWith (this.packageName)
	}
	private static boolean isplugin(Class aclass){
		return aclass.isAnnotationPresent(MyPlug.class);
	}
	@UnConstruct
	private String getpluginname(Class aclass){
		return aclass.getAnnotation(MyPlug.class).toString();//TODO not ready
	}
	private void print(Class aclass){
		System.out.println(" |-class:"+ aclass.getName());
	      for (Method m : aclass.getMethods()) {//forName(args[0])
            	System.out.println("|-->Methode"+ m.getName());  
		  }
		     
	}
	private void methodescan(Class aclass){
	      int passed = 0, failed = 0;
	      for (Method m : aclass.getMethods()) {//Class.forName(args[0])
	         if (m.isAnnotationPresent(Plugble.class)) {
	            try {
	               m.invoke(null);
	               passed++;
	            } catch (Throwable ex) {
	               System.out.printf("Test %s failed: %s %n", m, ex.getCause());
	               failed++;
	            }
	         }
	      }
	}
}
 
hoi, dank jullie voor de hulp, maar java gaat me net iets te boven :p dusz ga ik maar op zoek naar iemand die er wel wat van kent die me wilt helpen n.n mss dat iemand van jullie me hierbij wilt helpen om samen met nog wat vrienden van me een hele mooie minecraft server op te bouwen n.n
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan