Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

How do i read a .txt file for a specific number.

$
0
0
Ok, what i am trying to do is make a bukkit plugin for minecraft. I have got it working so it saves the co ords of a player in a .txt file but i now need to read that file for the x, y, and z co ords.
The text file looks like
X: -64.0
Y: 89.0
Z: 247.0

My code for the main class and writing class is:
package me.kyle.detruxdrop;


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.logging.Logger;

import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;


@SuppressWarnings("unused")
public class DetruxDrop extends JavaPlugin{
	
	public static DetruxDrop plugin;
	public ListStore drops;
	protected DetruxDropLogger log;

	
	@Override 
	public void onDisable() {
		getServer().getPluginManager().removePermission(new Permissions().perm);
		getServer().getPluginManager().removePermission(new Permissions().adminperm);
		this.drops.save();
	}
	
	
	@Override 
	public void onEnable() {
		
		this.log = new DetruxDropLogger(this);
		
		
		PluginManager pm = this.getServer().getPluginManager();
		
		pm.addPermission(new Permissions().perm);
		pm.addPermission(new Permissions().adminperm);
				
		String pluginFolder = this.getDataFolder().getAbsolutePath();
		
		(new File (pluginFolder)).mkdirs();
		
		
		this.drops = new ListStore(new File(pluginFolder + File.separator + "drops.txt"));
		
		this.drops.load();
		
		

			
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
		Player player = (Player) sender;
		
		if(commandLabel.equalsIgnoreCase("drop")) {
			 
			if(args.length == 0 && sender.hasPermission(new Permissions().perm) && ! sender.hasPermission(new Permissions().adminperm)) {
				player.sendMessage(ChatColor.GREEN + "        DetruxCraft Drop Party.");
				player.sendMessage(ChatColor.GOLD + "Usage");
				player.sendMessage(ChatColor.GOLD + "/drop -" + ChatColor.GREEN + " Displays this help dialog.");
				player.sendMessage(ChatColor.GOLD + "/drop join -" + ChatColor.GREEN + " Join's the drop party.");
				player.sendMessage(ChatColor.GOLD + "/drop leave -" + ChatColor.GREEN + " Leave's the current drop party.");
				player.sendMessage(ChatColor.GOLD + "/drop info -" + ChatColor.GREEN + " Displays the plugin information");
			}
			
			if(args.length == 0 && sender.hasPermission(new Permissions().adminperm)){
				player.sendMessage(ChatColor.GREEN + "        DetruxCraft Drop Party.");
				player.sendMessage(ChatColor.GOLD + "Usage");
				player.sendMessage(ChatColor.GOLD + "/drop -" + ChatColor.GREEN + "Displays this help dialog.");
				player.sendMessage(ChatColor.GOLD + "/drop join -" + ChatColor.GREEN + " Join's the drop party.");
				player.sendMessage(ChatColor.GOLD + "/drop leave -" + ChatColor.GREEN + " Leave's the current drop party.");
				player.sendMessage(ChatColor.GOLD + "/drop info -" + ChatColor.GREEN + " Displays the plugin information");
				player.sendMessage(ChatColor.AQUA + "/drop set -" + ChatColor.BLUE + "  Set's where the drop is.");
			
			}	
			
			if (args.length == 1){
			
				if(args[0].equalsIgnoreCase("set") && player.hasPermission(new Permissions().adminperm)) {
					
					
					double x = player.getLocation().getBlockX();
					double y = player.getLocation().getBlockY();
					double z = player.getLocation().getBlockZ();
					
					
					String X = Double.toString(x);
					String Y = Double.toString(y);
					String Z = Double.toString(z);

					this.drops.add("X: " + X);
					this.drops.add("Y: " + Y);
					this.drops.add("Z: " + Z);
					
					this.drops.save();

					
					player.sendMessage(ChatColor.AQUA + "Drop Set.");
		
				}
				
				if(args[0].equalsIgnoreCase("info")){
					
					
					player.sendMessage(ChatColor.AQUA + "-----DetruxDrop Info-----");
					player.sendMessage(ChatColor.BLUE + "DetruxDrop");
					player.sendMessage(ChatColor.BLUE + "Version: 1.0");
					player.sendMessage(ChatColor.BLUE + "Made by: DetruxCraft Team");
					
				}
				
				if(args[0].equalsIgnoreCase("join")){
					
	
				}
				
			}	
	
		
		

		}
	return false;
 }	
}
                                                                                                              



And now the code for the write/reader:
package me.kyle.detruxdrop;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class ListStore {
	
	private File storageFile;
	private ArrayList<String> values;
	
	public ListStore(File file) {
		this.storageFile = file;
		this.values = new ArrayList<String>();
		
		if(this.storageFile.exists() == false){
			try {
				this.storageFile.createNewFile();
			}catch (IOException e){

				e.printStackTrace();
			}
		}
		
		
	}
	
	
	public void load(){
		try {
			DataInputStream input = new DataInputStream(new FileInputStream(this.storageFile));
			BufferedReader reader = new BufferedReader(new InputStreamReader(input));
			
			String line;
			
				while ((line = reader.readLine()) != null){
					if(this.contains(line) == false){
						this.values.add(line);	
					}					
				}
				reader.close();
				input.close();
			}catch (Exception e){

				e.printStackTrace();
			}
		}
	
	public void save(){
		try {
			FileWriter stream = new FileWriter(this.storageFile);
			BufferedWriter out = new BufferedWriter(stream);
			
			for(String value : this.values){
				out.write(value);
				out.newLine();
			}
			
			out.close();
			stream.close();
			
		}catch (IOException e){
			e.printStackTrace();
		}
	}
	
	
	public boolean contains(String value){
		return this.values.contains(value);
	}
	
	public void add(String value) {
		if(this.contains(value) == false){
			this.values.add(value);
		}
		
	}
	
	public void remove(String value){
		this.values.remove(value);
		
	}
	
	public ArrayList<String> getValues(){
		return this.values;
	}




}                                                                                                           


What shall i do to make it read the .txt file and give me the x, y and z cords to teleport a player to them.
Thanks in advance.

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>