-
-
Save tigerdan2/73a4ed450510687a14a06ed85ed4a8b7 to your computer and use it in GitHub Desktop.
package de.Client.Events; | |
public class EventAPI { | |
public static final String VERSION = String.format("%s-%s", new Object[] {"0.7", "beta"}); | |
public static final String[] AUTHOR = {"DarkMagican6"}; | |
} |
package de.Client.Events; | |
import de.Client.Events.IEvent.Event; | |
import de.Client.Events.IEvent.EventStoppable; | |
import de.Client.Events.Types.Priority; | |
import java.lang.reflect.InvocationTargetException; | |
import java.lang.reflect.Method; | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
import java.util.concurrent.CopyOnWriteArrayList; | |
/** | |
* | |
* | |
* @author DarkMagician6 | |
* @since February 2, 2014 | |
*/ | |
public final class EventManager { | |
/** | |
* HashMap containing all the registered MethodData sorted on the event parameters of the methods. | |
*/ | |
private static final Map<Class<? extends Event>, List<MethodData>> REGISTRY_MAP = new HashMap<Class<? extends Event>, List<MethodData>>(); | |
/** | |
* All methods in this class are static so there would be no reason to create an object of the EventManager class. | |
*/ | |
private EventManager() { | |
} | |
/** | |
* Registers all the methods marked with the EventTarget annotation in the class of the given Object. | |
* | |
* @param object | |
* Object that you want to register. | |
*/ | |
public static void register(Object object) { | |
for (final Method method : object.getClass().getDeclaredMethods()) { | |
if (isMethodBad(method)) { | |
continue; | |
} | |
register(method, object); | |
} | |
} | |
/** | |
* Registers the methods marked with the EventTarget annotation and that require | |
* the specified Event as the parameter in the class of the given Object. | |
* | |
* @param object | |
* Object that contains the Method you want to register. | |
*/ | |
public static void register(Object object, Class<? extends Event> eventClass) { | |
for (final Method method : object.getClass().getDeclaredMethods()) { | |
if (isMethodBad(method, eventClass)) { | |
continue; | |
} | |
register(method, object); | |
} | |
} | |
/** | |
* Unregisters all the methods inside the Object that are marked with the EventTarget annotation. | |
* | |
* @param object | |
* Object of which you want to unregister all Methods. | |
*/ | |
public static void unregister(Object object) { | |
for (final List<MethodData> dataList : REGISTRY_MAP.values()) { | |
for (final MethodData data : dataList) { | |
if (data.getSource().equals(object)) { | |
dataList.remove(data); | |
} | |
} | |
} | |
cleanMap(true); | |
} | |
/** | |
* Unregisters all the methods in the given Object that have the specified class as a parameter. | |
* | |
* @param object | |
* Object that implements the Listener interface. | |
*/ | |
public static void unregister(Object object, Class<? extends Event> eventClass) { | |
if (REGISTRY_MAP.containsKey(eventClass)) { | |
for (final MethodData data : REGISTRY_MAP.get(eventClass)) { | |
if (data.getSource().equals(object)) { | |
REGISTRY_MAP.get(eventClass).remove(data); | |
} | |
} | |
cleanMap(true); | |
} | |
} | |
/** | |
* Registers a new MethodData to the HashMap. | |
* If the HashMap already contains the key of the Method's first argument it will add | |
* a new MethodData to key's matching list and sorts it based on Priority. @see com.darkmagician6.eventapi.types.Priority | |
* Otherwise it will put a new entry in the HashMap with a the first argument's class | |
* and a new CopyOnWriteArrayList containing the new MethodData. | |
* | |
* @param method | |
* Method to register to the HashMap. | |
* @param object | |
* Source object of the method. | |
*/ | |
private static void register(Method method, Object object) { | |
Class<? extends Event> indexClass = (Class<? extends Event>) method.getParameterTypes()[0]; | |
//New MethodData from the Method we are registering. | |
final MethodData data = new MethodData(object, method, method.getAnnotation(EventTarget.class).value()); | |
//Set's the method to accessible so that we can also invoke it if it's protected or private. | |
if (!data.getTarget().isAccessible()) { | |
data.getTarget().setAccessible(true); | |
} | |
if (REGISTRY_MAP.containsKey(indexClass)) { | |
if (!REGISTRY_MAP.get(indexClass).contains(data)) { | |
REGISTRY_MAP.get(indexClass).add(data); | |
sortListValue(indexClass); | |
} | |
} else { | |
REGISTRY_MAP.put(indexClass, new CopyOnWriteArrayList<MethodData>() { | |
//Eclipse was bitching about a serialVersionUID. | |
private static final long serialVersionUID = 666L; { | |
add(data); | |
} | |
}); | |
} | |
} | |
/** | |
* Removes an entry based on the key value in the map. | |
* | |
* @param indexClass | |
* They index key in the map of which the entry should be removed. | |
*/ | |
public static void removeEntry(Class<? extends Event> indexClass) { | |
Iterator<Map.Entry<Class<? extends Event>, List<MethodData>>> mapIterator = REGISTRY_MAP.entrySet().iterator(); | |
while (mapIterator.hasNext()) { | |
if (mapIterator.next().getKey().equals(indexClass)) { | |
mapIterator.remove(); | |
break; | |
} | |
} | |
} | |
/** | |
* Cleans up the map entries. | |
* Uses an iterator to make sure that the entry is completely removed. | |
* | |
* @param onlyEmptyEntries | |
* If true only remove the entries with an empty list, otherwise remove all the entries. | |
*/ | |
public static void cleanMap(boolean onlyEmptyEntries) { | |
Iterator<Map.Entry<Class<? extends Event>, List<MethodData>>> mapIterator = REGISTRY_MAP.entrySet().iterator(); | |
while (mapIterator.hasNext()) { | |
if (!onlyEmptyEntries || mapIterator.next().getValue().isEmpty()) { | |
mapIterator.remove(); | |
} | |
} | |
} | |
/** | |
* Sorts the List that matches the corresponding Event class based on priority value. | |
* | |
* @param indexClass | |
* The Event class index in the HashMap of the List to sort. | |
*/ | |
private static void sortListValue(Class<? extends Event> indexClass) { | |
List<MethodData> sortedList = new CopyOnWriteArrayList<MethodData>(); | |
for (final byte priority : Priority.VALUE_ARRAY) { | |
for (final MethodData data : REGISTRY_MAP.get(indexClass)) { | |
if (data.getPriority() == priority) { | |
sortedList.add(data); | |
} | |
} | |
} | |
//Overwriting the existing entry. | |
REGISTRY_MAP.put(indexClass, sortedList); | |
} | |
/** | |
* Checks if the method does not meet the requirements to be used to receive event calls from the Dispatcher. | |
* Performed checks: Checks if the parameter length is not 1 and if the EventTarget annotation is not present. | |
* | |
* @param method | |
* Method to check. | |
* | |
* @return True if the method should not be used for receiving event calls from the Dispatcher. | |
* | |
* @see com.darkmagician6.eventapi.EventTarget | |
*/ | |
private static boolean isMethodBad(Method method) { | |
return method.getParameterTypes().length != 1 || !method.isAnnotationPresent(EventTarget.class); | |
} | |
/** | |
* Checks if the method does not meet the requirements to be used to receive event calls from the Dispatcher. | |
* Performed checks: Checks if the parameter class of the method is the same as the event we want to receive. | |
* | |
* @param method | |
* Method to check. | |
* @return True if the method should not be used for receiving event calls from the Dispatcher. | |
* | |
* @see com.darkmagician6.eventapi.EventTarget | |
*/ | |
private static boolean isMethodBad(Method method, Class<? extends Event> eventClass) { | |
return isMethodBad(method) || !method.getParameterTypes()[0].equals(eventClass); | |
} | |
/** | |
* Call's an event and invokes the right methods that are listening to the event call. | |
* First get's the matching list from the registry map based on the class of the event. | |
* Then it checks if the list is not null. After that it will check if the event is an instance of | |
* EventStoppable and if so it will add an extra check when looping trough the data. | |
* If the Event was an instance of EventStoppable it will check every loop if the EventStoppable is stopped, and if | |
* it is it will break the loop, thus stopping the call. | |
* For every MethodData in the list it will invoke the Data's method with the Event as the argument. | |
* After that is all done it will return the Event. | |
* | |
* @param event | |
* Event to dispatch. | |
* | |
* @return Event in the state after dispatching it. | |
*/ | |
public static final Event call(final Event event) { | |
List<MethodData> dataList = REGISTRY_MAP.get(event.getClass()); | |
if (dataList != null) { | |
if (event instanceof EventStoppable) { | |
EventStoppable stoppable = (EventStoppable) event; | |
for (final MethodData data : dataList) { | |
invoke(data, event); | |
if (stoppable.isStopped()) { | |
break; | |
} | |
} | |
} else { | |
for (final MethodData data : dataList) { | |
invoke(data, event); | |
} | |
} | |
} | |
return event; | |
} | |
/** | |
* Invokes a MethodData when an Event call is made. | |
* | |
* @param data | |
* The data of which the targeted Method should be invoked. | |
* @param argument | |
* The called Event which should be used as an argument for the targeted Method. | |
* | |
* TODO: Error messages. | |
*/ | |
private static void invoke(MethodData data, Event argument) { | |
try { | |
data.getTarget().invoke(data.getSource(), argument); | |
} catch (IllegalAccessException ignored) { | |
} catch (IllegalArgumentException ignored) { | |
} catch (InvocationTargetException ignored) { | |
} | |
} | |
/** | |
* | |
* @author DarkMagician6 | |
* @since January 2, 2014 | |
*/ | |
private static final class MethodData { | |
private final Object source; | |
private final Method target; | |
private final byte priority; | |
/** | |
* Sets the values of the data. | |
* | |
* @param source | |
* The source Object of the data. Used by the VM to | |
* determine to which object it should send the call to. | |
* @param target | |
* The targeted Method to which the Event should be send to. | |
* @param priority | |
* The priority of this Method. Used by the registry to sort | |
* the data on. | |
*/ | |
public MethodData(Object source, Method target, byte priority) { | |
this.source = source; | |
this.target = target; | |
this.priority = priority; | |
} | |
/** | |
* Gets the source Object of the data. | |
* | |
* @return Source Object of the targeted Method. | |
*/ | |
public Object getSource() { | |
return source; | |
} | |
/** | |
* Gets the targeted Method. | |
* | |
* @return The Method that is listening to certain Event calls. | |
*/ | |
public Method getTarget() { | |
return target; | |
} | |
/** | |
* Gets the priority value of the targeted Method. | |
* | |
* @return The priority value of the targeted Method. | |
*/ | |
public byte getPriority() { | |
return priority; | |
} | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
import net.minecraft.client.gui.GuiScreen; | |
/** | |
* Created by Daniel on 31.08.2017. | |
*/ | |
public class DisplayGuiScreenEvent implements Event{ | |
public GuiScreen guiScreenbevor; | |
public GuiScreen guiScreenafter; | |
public DisplayGuiScreenEvent(GuiScreen g, GuiScreen g2){ | |
guiScreenbevor = g; | |
guiScreenafter = g2; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
import net.minecraft.block.Block; | |
import net.minecraft.util.AxisAlignedBB; | |
public class EventBoundingBox | |
implements Event | |
{ | |
public final Block block; | |
public AxisAlignedBB boundingBox; | |
public final double x; | |
public final double y; | |
public final double z; | |
public EventBoundingBox(AxisAlignedBB bb, Block block, double x, double y, double z) | |
{ | |
this.block = block; | |
this.boundingBox = bb; | |
this.x = x; | |
this.y = y; | |
this.z = z; | |
} | |
public AxisAlignedBB getBoundingBox() | |
{ | |
return this.boundingBox; | |
} | |
public void setBoundingBox(AxisAlignedBB boundingBox) | |
{ | |
this.boundingBox = boundingBox; | |
} | |
public Block getBlock() | |
{ | |
return this.block; | |
} | |
public double getX() | |
{ | |
return this.x; | |
} | |
public double getY() | |
{ | |
return this.y; | |
} | |
public double getZ() | |
{ | |
return this.z; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
public class EventRenderScreen | |
implements Event | |
{ | |
public EventRenderScreen() | |
{ | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
public class EventRenderWorld | |
implements Event | |
{ | |
private float ticks; | |
public EventRenderWorld(float ticks) | |
{ | |
setTicks(ticks); | |
} | |
public float getTicks() | |
{ | |
return this.ticks; | |
} | |
public void setTicks(float ticks) | |
{ | |
this.ticks = ticks; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Callables.EventCancellable; | |
import de.Client.Events.IEvent.Event; | |
public class EventRenderWorldBackground extends EventCancellable { | |
public EventRenderWorldBackground() { | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
public class EventSafeWalk implements Event { | |
private boolean shouldWalkSafely; | |
public EventSafeWalk(boolean shouldWalkSafely) { | |
this.shouldWalkSafely = shouldWalkSafely; | |
} | |
public boolean getShouldWalkSafely() { | |
return this.shouldWalkSafely; | |
} | |
public void setShouldWalkSafely(boolean shouldWalkSafely) { | |
this.shouldWalkSafely = shouldWalkSafely; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Callables.EventCancellable; | |
public class MoveEvent extends EventCancellable { | |
public double x; | |
public double y; | |
public double z; | |
public MoveEvent(double x, double y, double z) { | |
this.x = x; | |
this.y = y; | |
this.z = z; | |
} | |
public double getX() { | |
return this.x; | |
} | |
public double getY() { | |
return this.y; | |
} | |
public double getZ() { | |
return this.z; | |
} | |
public void setX(double x) { | |
this.x = x; | |
} | |
public void setY(double y) { | |
this.y = y; | |
} | |
public void setZ(double z) { | |
this.z = z; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Callables.EventCancellable; | |
import net.minecraft.network.Packet; | |
public class PacketReceiveEvent extends EventCancellable { | |
private Packet packet; | |
public PacketReceiveEvent(Packet packet) { | |
this.packet = packet; | |
} | |
public Packet getPacket() { | |
return this.packet; | |
} | |
public void setPacket(Packet packet) { | |
this.packet = packet; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Callables.EventCancellable; | |
import net.minecraft.network.Packet; | |
public class PacketSendEvent extends EventCancellable { | |
private Packet packet; | |
public PacketSendEvent(Packet packet) { | |
this.packet = packet; | |
} | |
public Packet getPacket() { | |
return this.packet; | |
} | |
public void setPacket(Packet packet) { | |
this.packet = packet; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.EventStoppable; | |
public class PreMotionUpdate extends EventStoppable { | |
public double motionX; | |
public double motionY; | |
public double motionZ; | |
public PreMotionUpdate(double motionX, double motionY, double motionZ) { | |
this.motionX = motionX; | |
this.motionY = motionY; | |
this.motionZ = motionZ; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Callables.EventCancellable; | |
public class PreSendMotion extends EventCancellable | |
{ | |
public float yaw; | |
public float pitch; | |
public PreSendMotion(float yaw, float pitch) | |
{ | |
this.yaw = yaw; | |
this.pitch = pitch; | |
} | |
public float getPitch() { | |
return this.pitch; | |
} | |
public float getYaw() { | |
return this.yaw; | |
} | |
public void setPitch(float pitch) { | |
this.pitch = pitch; | |
} | |
public void setYaw(float yaw) { | |
this.yaw = yaw; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
public class Render3DEvent implements Event { | |
private float partialTicks; | |
public Render3DEvent(float partialTicks) { | |
this.partialTicks = partialTicks; | |
} | |
public float getPartialTicks() { | |
return this.partialTicks; | |
} | |
public void setPartialTicks(float partialTicks) { | |
this.partialTicks = partialTicks; | |
} | |
} |
package de.Client.Events.Events; | |
import de.Client.Events.IEvent.Event; | |
import de.Client.Events.IEvent.State; | |
public class UpdateEvent implements Event { | |
public State state; | |
public float yaw; | |
public float pitch; | |
public double y; | |
public boolean ground; | |
public UpdateEvent() { | |
this.state = State.POST; | |
} | |
public UpdateEvent(double y, float yaw, float pitch, boolean ground) { | |
this.state = State.PRE; | |
this.yaw = yaw; | |
this.pitch = pitch; | |
this.y = y; | |
this.ground = ground; | |
} | |
public double getY() { | |
return this.y; | |
} | |
public float getYaw() { | |
return this.yaw; | |
} | |
public float getPitch() { | |
return this.pitch; | |
} | |
public boolean onGround() { | |
return this.ground; | |
} | |
public State getState() { | |
return this.state; | |
} | |
} |
package de.Client.Events; | |
import java.lang.annotation.Documented; | |
import java.lang.annotation.Retention; | |
import java.lang.annotation.RetentionPolicy; | |
import java.lang.annotation.Target; | |
@Documented | |
@Target({java.lang.annotation.ElementType.METHOD}) | |
@Retention(RetentionPolicy.RUNTIME) | |
public @interface EventTarget { | |
byte value() default 2; | |
} |
package de.Client.Events.IEvent.Callables; | |
import de.Client.Events.IEvent.Cancellable; | |
import de.Client.Events.IEvent.Event; | |
public class EventCancellable implements Event, Cancellable { | |
private boolean cancelled; | |
public boolean isCancelled() { | |
return this.cancelled; | |
} | |
public void setCancelled(boolean state) { | |
this.cancelled = state; | |
} | |
} |
package de.Client.Events.IEvent.Callables; | |
import de.Client.Events.IEvent.Event; | |
import de.Client.Events.IEvent.Typed; | |
public class EventTyped implements Event, Typed { | |
private final byte type; | |
protected EventTyped(byte eventType) { | |
this.type = eventType; | |
} | |
public byte getType() { | |
return this.type; | |
} | |
} |
package de.Client.Events.IEvent; | |
public interface Cancellable { | |
boolean isCancelled(); | |
void setCancelled(boolean paramBoolean); | |
} |
package de.Client.Events.IEvent; | |
public interface Event { | |
} |
package de.Client.Events.IEvent; | |
public abstract class EventStoppable implements Event { | |
private boolean stopped; | |
public void stop() { | |
this.stopped = true; | |
} | |
public boolean isStopped() { | |
return this.stopped; | |
} | |
} |
package de.Client.Events.IEvent; | |
public enum State { | |
PRE, | |
POST | |
} |
package de.Client.Events.IEvent; | |
public interface Typed { | |
byte getType(); | |
} |
package de.Client.Events.Types; | |
public class EventType { | |
public static final byte PRE = 0; | |
public static final byte ON = 1; | |
public static final byte POST = 2; | |
public static final byte SEND = 3; | |
public static final byte RECIEVE = 4; | |
} |
package de.Client.Events.Types; | |
public final class Priority { | |
public static final byte HIGHEST = 0; | |
public static final byte HIGH = 1; | |
public static final byte MEDIUM = 2; | |
public static final byte LOW = 3; | |
public static final byte LOWEST = 4; | |
public static final byte[] VALUE_ARRAY = {0, 1, 2, 3, 4}; | |
} |
package de.Client.Main.Commands; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.mods.Combat.McdeadAimbot; | |
import de.Client.Main.Modules.mods.World.Fucker; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Render.ArrayLists.ArrayListC; | |
import de.Client.Render.ArrayLists.ArrayListD; | |
import de.Client.Render.ArrayLists.ArrayListD2; | |
import de.Client.Render.ArrayLists.ArrayListS; | |
import de.Client.Render.TabGuis.TabGuiC; | |
import de.Client.Render.TabGuis.TabGuiD; | |
import de.Client.Render.TabGuis.TabGuiS; | |
import de.Client.Render.Watermarks.WatermarkC; | |
import de.Client.Render.Watermarks.WatermarkD; | |
import de.Client.Render.Watermarks.WatermarkS; | |
import de.Client.Render.Watermarks.WatermarkSky; | |
import de.Client.Utils.*; | |
import net.minecraft.block.Block; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.event.HoverEvent; | |
import net.minecraft.util.ChatComponentText; | |
import net.minecraft.util.ChatStyle; | |
import net.minecraft.util.EnumChatFormatting; | |
import net.minecraft.util.IChatComponent; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Keyboard; | |
import java.awt.*; | |
import java.io.*; | |
import java.net.URL; | |
public class CommandManager { | |
public String prefix = "."; | |
public CommandManager(){ | |
} | |
private String prefixHover() | |
{ | |
return String.format("&5[Night]", new Object[] { "Night" }).trim(); | |
} | |
public String format(String s) | |
{ | |
return s.replaceAll("(?i)&([a-f0-9klmnor])", "�$1"); | |
} | |
private IChatComponent split(String message) | |
{ | |
message = format(message.replaceAll("\t", " ")); | |
String[] parts = message.split("�"); | |
ChatComponentText icc = new ChatComponentText(""); | |
int n = parts.length; | |
int n2 = 0; | |
while (n2 < n) | |
{ | |
String part = parts[n2]; | |
if (part.length() > 0) | |
{ | |
char c = part.charAt(0); | |
part = part.substring(1); | |
ChatStyle style = new ChatStyle(); | |
switch (c) | |
{ | |
case 'k': | |
style.setObfuscated(Boolean.valueOf(true)); | |
break; | |
case 'l': | |
style.setBold(Boolean.valueOf(true)); | |
break; | |
case 'm': | |
style.setUnderlined(Boolean.valueOf(true)); | |
break; | |
case 'n': | |
style.setStrikethrough(Boolean.valueOf(true)); | |
break; | |
case 'o': | |
style.setItalic(Boolean.valueOf(true)); | |
break; | |
default: | |
style.setColor(charToFormat(c)); | |
} | |
String[] lines = part.split("\n"); | |
int i = 0; | |
while (i < lines.length) | |
{ | |
String line = lines[i]; | |
icc.appendSibling(new ChatComponentText(line).setChatStyle(style)); | |
if (i != lines.length - 1) { | |
icc.appendSibling(new ChatComponentText("\n")); | |
} | |
i++; | |
} | |
} | |
n2++; | |
} | |
return icc; | |
} | |
private EnumChatFormatting charToFormat(char c) | |
{ | |
EnumChatFormatting[] arrenumChatFormatting = EnumChatFormatting.values(); | |
int n = arrenumChatFormatting.length; | |
int n2 = 0; | |
while (n2 < n) | |
{ | |
EnumChatFormatting ecf = arrenumChatFormatting[n2]; | |
if (ecf.formattingCode == c) { | |
return ecf; | |
} | |
n2++; | |
} | |
return EnumChatFormatting.RESET; | |
} | |
public void IRC_exutecute_Help(){ | |
} | |
public void handleSendIRC(String message1){ | |
String message = message1.replace("#", ""); | |
String[] s = message.split(" "); | |
if(s[0].startsWith("irc")){ | |
if(s[1].equalsIgnoreCase("help")){ | |
IRC_exutecute_Help(); | |
return; | |
} | |
if(s[1].equalsIgnoreCase("list")){ | |
this.sendIRC("§4GETALLPLAYER"); | |
this.sendChatMessage("List of all IRC user"); | |
Main.getMain.cmdManager.sendChatMessage("§a" + Main.getMain.ircManager.getName()+ " §8> §e" + "~ §3(YOU)"); | |
return; | |
} | |
} | |
Main.getMain.cmdManager.sendChatMessage("§a" + Main.getMain.ircManager.getName()+ " §8> §e" + message); | |
sendIRC(message); | |
} | |
public void sendIRC(String message){ | |
Main.getMain.ircManager.sendMessage(Main.getMain.ircManager.CHANNEL_MAIN,message); | |
} | |
public void handleReceiveIRC(IRCChatLine message){ | |
System.out.println(message.getLine().contains("DŽ")); | |
if(message.getLine().contains("§4")){ | |
String[] m = message.getLine().replace("§4","").split(" "); | |
if(m[0].equalsIgnoreCase("GETALLPLAYER")){ | |
this.sendIRC("~"); | |
} | |
return; | |
} | |
Main.getMain.cmdManager.sendChatMessage("§a" + message.getSender() + " §8> §e" + message.getLine()); | |
} | |
public void saveTheme(File f) { | |
f.delete(); | |
try { | |
f.createNewFile(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
PrintWriter output = null; | |
try { | |
output = new PrintWriter(new FileWriter(f, true)); | |
output.println("Color + " + Main.getMain.getClientColor().getRGB()); | |
output.println("Watermark + " + Main.getMain.waterMark.getClass()); | |
output.println("TabGui + " + Main.getMain.tabGui.getClass()); | |
output.println("ArrayList + " + Main.getMain.arrayList.getClass()); | |
output.close(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
public void sendChatMessage(String message){ | |
if(Minecraft.getMinecraft().thePlayer == null){ | |
return; | |
} | |
message = "&7" + message; | |
ChatComponentText icc = new ChatComponentText(""); | |
IChatComponent prefix = split((String.format(" &8[&5N&8] ", new Object[] { "Night".substring(0, 1).toLowerCase()}))); | |
prefix.getChatStyle().setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, split(prefixHover()))); | |
icc.appendSibling(prefix); | |
icc.appendSibling(split(message)); | |
Minecraft.getMinecraft().thePlayer.addChatMessage(icc); | |
} | |
public static int keyStringToIntID(String keyCode) { | |
if (keyCode.equalsIgnoreCase("a")) return Keyboard.KEY_A; | |
if (keyCode.equalsIgnoreCase("b")) return Keyboard.KEY_B; | |
if (keyCode.equalsIgnoreCase("c")) return Keyboard.KEY_C; | |
if (keyCode.equalsIgnoreCase("d")) return Keyboard.KEY_D; | |
if (keyCode.equalsIgnoreCase("e")) return Keyboard.KEY_E; | |
if (keyCode.equalsIgnoreCase("f")) return Keyboard.KEY_F; | |
if (keyCode.equalsIgnoreCase("g")) return Keyboard.KEY_G; | |
if (keyCode.equalsIgnoreCase("h")) return Keyboard.KEY_H; | |
if (keyCode.equalsIgnoreCase("i")) return Keyboard.KEY_I; | |
if (keyCode.equalsIgnoreCase("j")) return Keyboard.KEY_J; | |
if (keyCode.equalsIgnoreCase("k")) return Keyboard.KEY_K; | |
if (keyCode.equalsIgnoreCase("l")) return Keyboard.KEY_L; | |
if (keyCode.equalsIgnoreCase("m")) return Keyboard.KEY_M; | |
if (keyCode.equalsIgnoreCase("n")) return Keyboard.KEY_N; | |
if (keyCode.equalsIgnoreCase("o")) return Keyboard.KEY_O; | |
if (keyCode.equalsIgnoreCase("p")) return Keyboard.KEY_P; | |
if (keyCode.equalsIgnoreCase("q")) return Keyboard.KEY_Q; | |
if (keyCode.equalsIgnoreCase("r")) return Keyboard.KEY_R; | |
if (keyCode.equalsIgnoreCase("s")) return Keyboard.KEY_S; | |
if (keyCode.equalsIgnoreCase("t")) return Keyboard.KEY_T; | |
if (keyCode.equalsIgnoreCase("u")) return Keyboard.KEY_U; | |
if (keyCode.equalsIgnoreCase("v")) return Keyboard.KEY_V; | |
if (keyCode.equalsIgnoreCase("w")) return Keyboard.KEY_W; | |
if (keyCode.equalsIgnoreCase("x")) return Keyboard.KEY_X; | |
if (keyCode.equalsIgnoreCase("y")) return Keyboard.KEY_Y; | |
if (keyCode.equalsIgnoreCase("z")) return Keyboard.KEY_Z; | |
if (keyCode.equalsIgnoreCase("0")) return Keyboard.KEY_0; | |
if (keyCode.equalsIgnoreCase("1")) return Keyboard.KEY_1; | |
if (keyCode.equalsIgnoreCase("2")) return Keyboard.KEY_2; | |
if (keyCode.equalsIgnoreCase("3")) return Keyboard.KEY_3; | |
if (keyCode.equalsIgnoreCase("4")) return Keyboard.KEY_4; | |
if (keyCode.equalsIgnoreCase("5")) return Keyboard.KEY_5; | |
if (keyCode.equalsIgnoreCase("6")) return Keyboard.KEY_6; | |
if (keyCode.equalsIgnoreCase("7")) return Keyboard.KEY_7; | |
if (keyCode.equalsIgnoreCase("8")) return Keyboard.KEY_8; | |
if (keyCode.equalsIgnoreCase("9")) return Keyboard.KEY_9; | |
if (keyCode.equalsIgnoreCase("f1")) return Keyboard.KEY_F1; | |
if (keyCode.equalsIgnoreCase("f2")) return Keyboard.KEY_F2; | |
if (keyCode.equalsIgnoreCase("f3")) return Keyboard.KEY_F3; | |
if (keyCode.equalsIgnoreCase("f4")) return Keyboard.KEY_F4; | |
if (keyCode.equalsIgnoreCase("f5")) return Keyboard.KEY_F5; | |
if (keyCode.equalsIgnoreCase("f6")) return Keyboard.KEY_F6; | |
if (keyCode.equalsIgnoreCase("f7")) return Keyboard.KEY_F7; | |
if (keyCode.equalsIgnoreCase("f8")) return Keyboard.KEY_F8; | |
if (keyCode.equalsIgnoreCase("f9")) return Keyboard.KEY_F9; | |
if (keyCode.equalsIgnoreCase("f10")) return Keyboard.KEY_F10; | |
if (keyCode.equalsIgnoreCase("f11")) return Keyboard.KEY_F11; | |
if (keyCode.equalsIgnoreCase("f12")) return Keyboard.KEY_F12; | |
if (keyCode.equalsIgnoreCase("numpad0")) return Keyboard.KEY_NUMPAD0; | |
if (keyCode.equalsIgnoreCase("numpad1")) return Keyboard.KEY_NUMPAD1; | |
if (keyCode.equalsIgnoreCase("numpad2")) return Keyboard.KEY_NUMPAD2; | |
if (keyCode.equalsIgnoreCase("numpad3")) return Keyboard.KEY_NUMPAD3; | |
if (keyCode.equalsIgnoreCase("numpad4")) return Keyboard.KEY_NUMPAD4; | |
if (keyCode.equalsIgnoreCase("numpad5")) return Keyboard.KEY_NUMPAD5; | |
if (keyCode.equalsIgnoreCase("numpad6")) return Keyboard.KEY_NUMPAD6; | |
if (keyCode.equalsIgnoreCase("numpad7")) return Keyboard.KEY_NUMPAD7; | |
if (keyCode.equalsIgnoreCase("numpad8")) return Keyboard.KEY_NUMPAD8; | |
if (keyCode.equalsIgnoreCase("numpad9")) return Keyboard.KEY_NUMPAD9; | |
if (keyCode.equalsIgnoreCase("up")) return Keyboard.KEY_UP; | |
if (keyCode.equalsIgnoreCase("down")) return Keyboard.KEY_DOWN; | |
if (keyCode.equalsIgnoreCase("right")) return Keyboard.KEY_RIGHT; | |
if (keyCode.equalsIgnoreCase("left")) return Keyboard.KEY_LEFT; | |
if (keyCode.equalsIgnoreCase("del")) return Keyboard.KEY_DELETE; | |
if (keyCode.equalsIgnoreCase("insert")) return Keyboard.KEY_INSERT; | |
if (keyCode.equalsIgnoreCase("end")) return Keyboard.KEY_END; | |
if (keyCode.equalsIgnoreCase("home")) return Keyboard.KEY_HOME; | |
if (keyCode.equalsIgnoreCase("lshift")) return Keyboard.KEY_LSHIFT; | |
if (keyCode.equalsIgnoreCase("tab")) return Keyboard.KEY_TAB; | |
if (keyCode.equalsIgnoreCase(".")) return Keyboard.KEY_PERIOD; | |
if (keyCode.equalsIgnoreCase("strg")) return Keyboard.KEY_LCONTROL; | |
if (keyCode.equalsIgnoreCase("alt")) return Keyboard.KEY_LMENU; | |
if (keyCode.equalsIgnoreCase("hashtag")) return Keyboard.KEY_SLASH; | |
if (keyCode.equalsIgnoreCase("rshift")) return Keyboard.KEY_RSHIFT; | |
if (keyCode.equalsIgnoreCase("none")) return 0; | |
if (keyCode.equalsIgnoreCase("minus")) return Keyboard.KEY_MINUS; | |
return Integer.MAX_VALUE; | |
} | |
public static String translateKeyBind(int keyCode) { | |
if(keyCode == Keyboard.KEY_BACKSLASH) { return "^"; } | |
if(keyCode == Keyboard.KEY_1) { return "1"; } | |
if(keyCode == Keyboard.KEY_2) { return "2"; } | |
if(keyCode == Keyboard.KEY_3) { return "3"; } | |
if(keyCode == Keyboard.KEY_4) { return "4"; } | |
if(keyCode == Keyboard.KEY_5) { return "5"; } | |
if(keyCode == Keyboard.KEY_6) { return "6"; } | |
if(keyCode == Keyboard.KEY_7) { return "7"; } | |
if(keyCode == Keyboard.KEY_8) { return "8"; } | |
if(keyCode == Keyboard.KEY_9) { return "9"; } | |
if(keyCode == Keyboard.KEY_0) { return "0"; } | |
if(keyCode == Keyboard.KEY_LBRACKET) { return "§"; } | |
if(keyCode == Keyboard.KEY_RBRACKET) { return "'"; } | |
if(keyCode == Keyboard.KEY_BACK) { return "Back"; } | |
if(keyCode == Keyboard.KEY_TAB) { return "Tab"; } | |
if(keyCode == Keyboard.KEY_SEMICOLON) { return "Semicolon"; } | |
if(keyCode == Keyboard.KEY_ADD) { return "+"; } | |
if(keyCode == Keyboard.KEY_RETURN) { return "Return"; } | |
if(keyCode == Keyboard.KEY_SLASH) { return "#"; } | |
if(keyCode == Keyboard.KEY_COMMA) { return ","; } | |
if(keyCode == Keyboard.KEY_PERIOD) { return "."; } | |
if(keyCode == Keyboard.KEY_MINUS) { return "-"; } | |
if(keyCode == Keyboard.KEY_LSHIFT) { return "Shift"; } | |
if(keyCode == Keyboard.KEY_RSHIFT) { return "RShift"; } | |
if(keyCode == Keyboard.KEY_LCONTROL) { return "Strg"; } | |
if(keyCode == Keyboard.KEY_RCONTROL) { return "R-Strg"; } | |
if(keyCode == Keyboard.KEY_LMENU) { return "Alt"; } | |
if(keyCode == Keyboard.KEY_SPACE) { return "Space"; } | |
if(keyCode == Keyboard.KEY_APPS) { return "AltGr"; } | |
if(keyCode == Keyboard.KEY_A) { return "A"; } | |
if(keyCode == Keyboard.KEY_B) { return "B"; } | |
if(keyCode == Keyboard.KEY_C) { return "C"; } | |
if(keyCode == Keyboard.KEY_D) { return "D"; } | |
if(keyCode == Keyboard.KEY_E) { return "E"; } | |
if(keyCode == Keyboard.KEY_F) { return "F"; } | |
if(keyCode == Keyboard.KEY_G) { return "G"; } | |
if(keyCode == Keyboard.KEY_H) { return "H"; } | |
if(keyCode == Keyboard.KEY_I) { return "I"; } | |
if(keyCode == Keyboard.KEY_J) { return "J"; } | |
if(keyCode == Keyboard.KEY_K) { return "K"; } | |
if(keyCode == Keyboard.KEY_L) { return "L"; } | |
if(keyCode == Keyboard.KEY_M) { return "M"; } | |
if(keyCode == Keyboard.KEY_N) { return "N"; } | |
if(keyCode == Keyboard.KEY_O) { return "O"; } | |
if(keyCode == Keyboard.KEY_P) { return "P"; } | |
if(keyCode == Keyboard.KEY_Q) { return "Q"; } | |
if(keyCode == Keyboard.KEY_R) { return "R"; } | |
if(keyCode == Keyboard.KEY_S) { return "S"; } | |
if(keyCode == Keyboard.KEY_T) { return "T"; } | |
if(keyCode == Keyboard.KEY_U) { return "U"; } | |
if(keyCode == Keyboard.KEY_V) { return "V"; } | |
if(keyCode == Keyboard.KEY_W) { return "W"; } | |
if(keyCode == Keyboard.KEY_X) { return "X"; } | |
if(keyCode == Keyboard.KEY_Y) { return "Y"; } | |
if(keyCode == Keyboard.KEY_Z) { return "Z"; } | |
return "/"; | |
} | |
public int macroStage; | |
public boolean run(String message){ | |
if(message.startsWith("#")){ | |
this.handleSendIRC(message); | |
return true; | |
} | |
if(message.startsWith(".macro") || this.macroStage != 0){ | |
this.execute_Macro(message); | |
return true; | |
} | |
if(message.startsWith(".color")){ | |
this.execute_Color(message); | |
return true; | |
} | |
if(message.startsWith(".bind")){ | |
this.execute_BIND(message); | |
return true; | |
} | |
if(message.startsWith(".fucker")){ | |
this.execute_Fucker(message); | |
return true; | |
} | |
if(message.startsWith(".tog")){ | |
return true; | |
} | |
if(message.startsWith(".config")){ | |
this.execute_Config(message); | |
return true; | |
} | |
if(message.startsWith(".watermark")){ | |
this.execute_Watermark(message); | |
this.saveTheme(Main.getMain.mainFile); | |
return true; | |
} | |
if(message.startsWith(".tabgui")){ | |
this.execute_TabGui(message); | |
this.saveTheme(Main.getMain.mainFile); | |
return true; | |
} | |
if(message.startsWith(".arraylist")){ | |
this.execute_Arraylist(message); | |
this.saveTheme(Main.getMain.mainFile); | |
return true; | |
} | |
if(message.startsWith(".friend")){ | |
this.execute_Friends(message); | |
return true; | |
} | |
for(Module mod : Main.getMain.moduleManager.getModules()){ | |
String[] split = message.split(" "); | |
if(split[0].equalsIgnoreCase("."+mod.name)){ | |
if(split.length < 2){ | |
this.sendChatMessage("Usage : .(modulename) info to get Information about the module"); | |
this.sendChatMessage("Usage : .(modulename) (valuename) (value) to change a value of the module"); | |
return true; | |
}else{ | |
if(split[1].equalsIgnoreCase("info")){ | |
this.sendChatMessage("Info of module : " + mod.name); | |
this.sendChatMessage("Category : " + mod.category.name()); | |
this.sendChatMessage("KeyBind : " + this.translateKeyBind(mod.keyBind)); | |
this.sendChatMessage("Enabled " + mod.getState); | |
this.sendChatMessage("Values "); | |
for(Value v : mod.values){ | |
if(v instanceof ValueBoolean){ | |
ValueBoolean vb = (ValueBoolean) v; | |
this.sendChatMessage(vb.getName() + " : " + vb.getValue()); | |
}else{ | |
ValueDouble vd = (ValueDouble) v; | |
this.sendChatMessage(vd.getName() + " : " + vd.getValue()); | |
} | |
} | |
return true; | |
} | |
for(Value v : mod.values){ | |
if(split[1].equalsIgnoreCase(v.getName())){ | |
if(split.length < 2){ | |
this.sendChatMessage("Usage : ."+mod.name+" " + v.getName() + "(value)"); | |
return true; | |
} | |
if(v instanceof ValueBoolean){ | |
ValueBoolean vb = (ValueBoolean) v; | |
try{ | |
boolean enable = Boolean.parseBoolean(split[2]); | |
vb.setValue(enable); | |
this.sendChatMessage("Succesfully changed value"); | |
return true; | |
}catch(Exception e){ | |
this.sendChatMessage(v.getName() + " can only be 'true' or 'false'"); | |
return true; | |
} | |
}else{ | |
ValueDouble vd = (ValueDouble) v; | |
try{ | |
double newvalue = Double.parseDouble(split[2]); | |
vd.setValue(newvalue); | |
this.sendChatMessage("Succesfully changed value"); | |
return true; | |
}catch(Exception e){ | |
this.sendChatMessage(split[2] +" is not a number"); | |
return true; | |
} | |
} | |
} | |
} | |
} | |
this.sendChatMessage("Usage : .(modulename) info to get Information about the module"); | |
this.sendChatMessage("Usage : .(modulename) (valuename) (value) to change a value of the module"); | |
return true; | |
} | |
} | |
return false; | |
} | |
public void execute_Friends(String message){ | |
String[] splitString = message.split(" "); | |
if(splitString.length < 4){ | |
this.sendChatMessage("Usage : .friend add (playername) (newname)"); | |
}else{ | |
if(splitString[1].equalsIgnoreCase("add")) { | |
try { | |
FriendManager.friends.put(splitString[2], new String[]{splitString[3], this.getUUIDFromName(splitString[3])}); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
this.sendChatMessage("Succesfully added " + splitString[2] + "as" + splitString[3]); | |
}else{ | |
this.sendChatMessage("Usage : .friend add (playername) (newname)"); | |
} | |
} | |
FriendManager.saveFriendrs(Main.getMain.friend); | |
} | |
public static String getUUIDFromName(String username) | |
throws Exception | |
{ | |
return " "; | |
} | |
public void execute_Arraylist(String string){ | |
String[] splitString = string.split(" "); | |
if(splitString.length < 2){ | |
this.sendChatMessage("Usage : .watermark (themename) : use .watermark list to see all themes"); | |
}else{ | |
if(splitString[1].equalsIgnoreCase("list")){ | |
this.sendChatMessage("§bList of all watermark themes"); | |
this.sendChatMessage("Default"); | |
this.sendChatMessage("Other"); | |
this.sendChatMessage("Classic"); | |
this.sendChatMessage("Sun"); | |
this.sendChatMessage("None"); | |
} | |
if(splitString[1].equalsIgnoreCase("Default")){ | |
Main.getMain.arrayList = new ArrayListD(); | |
} | |
if(splitString[1].equalsIgnoreCase("Other")){ | |
Main.getMain.arrayList = new ArrayListD2(); | |
} | |
if(splitString[1].equalsIgnoreCase("Classic")){ | |
Main.getMain.arrayList = new ArrayListC(); | |
} | |
if(splitString[1].equalsIgnoreCase("Sun")){ | |
Main.getMain.arrayList = new ArrayListS(); | |
} | |
if(splitString[1].equalsIgnoreCase("None")){ | |
Main.getMain.arrayList = new ArrayList(); | |
} | |
} | |
} | |
public void execute_Color(String message){ | |
String[] splitString = message.split(" "); | |
if(splitString.length != 2 && splitString.length != 4){ | |
this.sendChatMessage("Usage :.color (color) or .color (red) (green) (blue)"); | |
}else{ | |
if(splitString.length == 2){ | |
try{ | |
Main.getMain.clientColor = new Color(Integer.parseInt(splitString[1])); | |
}catch (Exception e){ | |
try { | |
this.sendChatMessage(splitString[2] + "Is not a Color"); | |
}catch (Exception ex) { | |
this.sendChatMessage("§4Critical Error"); | |
} | |
} | |
}else{ | |
try{ | |
Main.getMain.clientColor = new Color(Integer.parseInt(splitString[1]),Integer.parseInt(splitString[2]),Integer.parseInt(splitString[3])); | |
}catch (Exception e){ | |
this.sendChatMessage(splitString[2] + " " +splitString[3] +" " +splitString[1]+ "Is not a Color"); | |
} | |
} | |
} | |
this.saveTheme(Main.getMain.mainFile); | |
} | |
public void execute_Watermark(String string){ | |
String[] splitString = string.split(" "); | |
if(splitString.length < 2){ | |
this.sendChatMessage("Usage : .watermark (themename) : use .watermark list to see all themes"); | |
}else{ | |
if(splitString[1].equalsIgnoreCase("list")){ | |
this.sendChatMessage("§bList of all watermark themes"); | |
this.sendChatMessage("Default"); | |
this.sendChatMessage("Stamina"); | |
this.sendChatMessage("Classic"); | |
this.sendChatMessage("Sky"); | |
this.sendChatMessage("None"); | |
} | |
if(splitString[1].equalsIgnoreCase("Sky")){ | |
Main.getMain.waterMark = new WatermarkSky(); | |
} | |
if(splitString[1].equalsIgnoreCase("Default")){ | |
Main.getMain.waterMark = new WatermarkD(); | |
} | |
if(splitString[1].equalsIgnoreCase("Stamina")){ | |
Main.getMain.waterMark = new WatermarkS(); | |
} | |
if(splitString[1].equalsIgnoreCase("Classic")){ | |
Main.getMain.waterMark = new WatermarkC(); | |
} | |
if(splitString[1].equalsIgnoreCase("None")){ | |
Main.getMain.waterMark = new Watermark(); | |
} | |
} | |
} | |
public void execute_TabGui(String string){ | |
String[] splitString = string.split(" "); | |
if(splitString.length < 2){ | |
this.sendChatMessage("Usage : .tabgui (themename) : use .tabgui list to see all themes"); | |
}else { | |
if (splitString[1].equalsIgnoreCase("list")) { | |
this.sendChatMessage("§bList of all watermark themes"); | |
this.sendChatMessage("Default"); | |
this.sendChatMessage("Circle"); | |
this.sendChatMessage("Shade"); | |
this.sendChatMessage("None"); | |
} | |
if (splitString[1].equalsIgnoreCase("Default")) { | |
Main.getMain.tabGui = new TabGuiD(); | |
} | |
if (splitString[1].equalsIgnoreCase("None")) { | |
Main.getMain.tabGui = new TabGui(); | |
} | |
if (splitString[1].equalsIgnoreCase("Circle")) { | |
Main.getMain.tabGui = new TabGuiC(); | |
} | |
if (splitString[1].equalsIgnoreCase("Shade")) { | |
Main.getMain.tabGui = new TabGuiS(); | |
} | |
} | |
} | |
public void execute_BIND(String string){ | |
String[] split = string.split(" "); | |
if(split.length < 2){ | |
this.sendChatMessage("Use " + this.prefix+" add + (modulename) + (key)"); | |
}else{ | |
if(split[1].equalsIgnoreCase("add")){ | |
if(split.length < 4){ | |
if(split.length > 2){ | |
this.sendChatMessage("Wrong Usage " + this.prefix+" add "+split[2]+" (key)"); | |
}else{ | |
this.sendChatMessage("Wrong Usage " + this.prefix+" add (modulename) (key)"); | |
} | |
}else{ | |
Module modToEdit = null; | |
for(Module mod : Main.getMain.moduleManager.modules){ | |
if(mod.name.equalsIgnoreCase(split[2])){ | |
modToEdit = mod; | |
} | |
} | |
if(modToEdit == null){ | |
this.sendChatMessage("Module "+split[2]+" not found"); | |
return; | |
} | |
int keybind = this.keyStringToIntID(split[3]); | |
if(keybind == Integer.MAX_VALUE){ | |
this.sendChatMessage("cannot bind on "+split[3]); | |
return; | |
} | |
modToEdit.keyBind = keybind; | |
this.sendChatMessage("Succesfully bound " +split[2]+ " to " +split[3]); | |
} | |
} | |
} | |
} | |
public void execute_Config(String string){ | |
String[] splitString = string.split(" "); | |
if(splitString.length < 2){ | |
this.sendChatMessage("Wrong Usage : .config save/load (configname)"); | |
return; | |
}else{ | |
if(splitString[1].equalsIgnoreCase("save")){ | |
try { | |
Main.getMain.moduleManager.saveModule(new File(Main.getMain.configs, (splitString[2]+".nght"))); | |
this.sendChatMessage("Succesfully saved config for " + splitString[2]); | |
} catch (IOException e) { | |
this.sendChatMessage("Failed creating config " + e.getStackTrace()); | |
} | |
}else if(splitString[1].equalsIgnoreCase("load")){ | |
try { | |
Main.getMain.moduleManager.loadModules(new File(Main.getMain.configs, (splitString[2]+".nght"))); | |
this.sendChatMessage("Succesfully loaded config " + splitString[2]); | |
}catch (Exception e){ | |
this.sendChatMessage("Failed loading config " + e.getStackTrace()); | |
} | |
}else{ | |
this.sendChatMessage("Wrong Usage : .config save/load (configname)"); | |
} | |
} | |
} | |
public void saveTheme(){ | |
} | |
public String key; | |
public void execute_Macro(String string) { | |
String[] splitString = string.split(" "); | |
if(splitString.length > 1) { | |
if (splitString[1].equalsIgnoreCase("clear")) { | |
Main.getMain.macroManager.macroArrayList.clear(); | |
return; | |
} | |
if (splitString[1].equalsIgnoreCase("cancel")) { | |
key = ""; | |
this.sendChatMessage("canceled creation of macro"); | |
this.macroStage = 0; | |
return; | |
} | |
} | |
if (this.macroStage == 0) { | |
if(splitString.length > 1){ | |
if (splitString[1].equalsIgnoreCase("createNew")) { | |
key = ""; | |
macroStage = 1; | |
this.sendChatMessage("specify the keybind of your macro"); | |
return; | |
} | |
} | |
} else if (macroStage == 1) { | |
int keybind = this.keyStringToIntID(splitString[1]); | |
if (keybind == Integer.MAX_VALUE) { | |
this.sendChatMessage("cannot bind on " + splitString[1]); | |
return; | |
}else { | |
key += keybind+"@@"; | |
macroStage = 2; | |
this.sendChatMessage("specify the module your macro should affect"); | |
} | |
}else if(macroStage == 2){ | |
String module = splitString[1]; | |
Module mod = null; | |
for(Module modules : Main.getMain.moduleManager.getModules()){ | |
if(modules.name.equalsIgnoreCase(module)){ | |
mod = modules; | |
} | |
} | |
if(mod == null){ | |
this.sendChatMessage("this module doesnt exist"); | |
return; | |
}else{ | |
key += module + "%%"; | |
this.sendChatMessage("specify the actions of your module"); | |
macroStage = 3; | |
return; | |
} | |
}else if(macroStage == 3){ | |
Macro.enumMode enumMode = new Macro("").decryptKeyAction(splitString[1]); | |
if(splitString[1].equalsIgnoreCase("finish")){ | |
this.macroStage = 0; | |
this.sendChatMessage("finished creation of your macro"); | |
Main.getMain.macroManager.macroArrayList.add(new Macro(key)); | |
return; | |
} | |
if(splitString[1].equalsIgnoreCase("keys")){ | |
this.sendChatMessage("§fEAVB §c : EnableAllValueBooleans : Enables every toggle value of the module"); | |
this.sendChatMessage("§fDAVB §c : DisableAllValueBooleans : Disables every toggle value of the module"); | |
this.sendChatMessage("§fTVB §c : ToggleValueBoolean : Toggles specific toggle value"); | |
this.sendChatMessage("§fSVD §c : SetValueDouble : Sets the value of specific value"); | |
return; | |
} | |
if(enumMode == null){ | |
this.sendChatMessage("Unknown key, please try again : use .macro keys to get a list of all possible keys"); | |
return; | |
} | |
switch (enumMode){ | |
case DisableAllValuesBoolean: | |
key +="DAVB::"; | |
this.sendChatMessage("succesfully added DisableAllValueBooleans event : use .macro finish to save your macro"); | |
break; | |
case EnableAllValuesBoolean: | |
key +="EAVB::"; | |
this.sendChatMessage("succesfully added EnableallValueBooleans event : use .macro finish to save your macro"); | |
break; | |
case EnableValueBoolean: | |
key +="EVB__"; | |
this.sendChatMessage("specify wich value should be affected by EnableValueBoolean event"); | |
macroStage = 4; | |
break; | |
case DisableValueBoolean: | |
key +="DVB__"; | |
this.sendChatMessage("specify wich value should be affected by DisableValueBoolean event"); | |
macroStage = 4; | |
break; | |
case ToggleValueBoolean: | |
key +="TVB__"; | |
this.sendChatMessage("specify wich value should be affected by ToggleValueBoolean event"); | |
macroStage = 4; | |
break; | |
case SetValueDouble: | |
key +="SVD__"; | |
this.sendChatMessage("specify wich value should be affected by SetValueDouble event"); | |
macroStage = 5; | |
break; | |
} | |
}else if(macroStage == 4){ | |
key += splitString[1] + "::"; | |
this.sendChatMessage("set affected value to" + splitString[1] + " : " + "use .macro finish or add another Event"); | |
macroStage = 3; | |
}else if(macroStage == 5){ | |
key += splitString[1] + "__"; | |
this.sendChatMessage("set affected value to" + splitString[1] + " : " + "use .macro finish or add another Event"); | |
macroStage = 6; | |
}else if(macroStage == 6){ | |
try{ | |
double value = Double.parseDouble(splitString[1]); | |
key += value + "::"; | |
macroStage = 3; | |
this.sendChatMessage("succesfully added SetValueDouble event : use .macro finish to save your macro"); | |
}catch (Exception e){ | |
} | |
} | |
} | |
public void execute_Fucker(String string){ | |
String[] split = string.split(" "); | |
if(split.length < 2){ | |
this.sendChatMessage("Use .fucker range to set the range of fucker"); | |
this.sendChatMessage("Use .fucker set to set the type of block that fucker will target"); | |
}else{ | |
String cmd = split[1]; | |
if(cmd.equalsIgnoreCase("range")){ | |
if(split.length < 3){ | |
this.sendChatMessage("Use .fucker range (range)"); | |
}else{ | |
try{ | |
String value = split[2]; | |
((Fucker)Main.getMain.moduleManager.getModule(Fucker.class)).range.setValue(Double.parseDouble(value)); | |
this.sendChatMessage("Succesfully set the range to : " + value); | |
}catch(Exception e){ | |
String value = split[2]; | |
this.sendChatMessage("Invald value : " + value); | |
} | |
} | |
}else if(cmd.equalsIgnoreCase("set")){ | |
if(split.length < 3){ | |
this.sendChatMessage("Use .fucker set (block)"); | |
}else{ | |
try{ | |
int value = Integer.parseInt(split[2]); | |
this.sendChatMessage("Please use block name"); | |
}catch(Exception e){ | |
String blockname = split[2]; | |
Block block = null; | |
if(Block.getBlockFromName(blockname) == null){ | |
this.sendChatMessage("Unknown Block : " + blockname); | |
}else{ | |
int id = Block.blockRegistry.getIDForObject( Block.getBlockFromName(blockname)); | |
((Fucker)Main.getMain.moduleManager.getModule(Fucker.class)).id.setValue(id); | |
this.sendChatMessage("Fucker will now destroy " + Block.getBlockFromName(blockname).getUnlocalizedName()); | |
} | |
} | |
} | |
}else{ | |
this.sendChatMessage("Unknown command : .fucker " + cmd); | |
this.sendChatMessage("Use .fucker range to set the range of fucker"); | |
this.sendChatMessage("Use .fucker set to set the type of block that fucker will target"); | |
} | |
} | |
} | |
} |
package de.Client.Main; | |
import de.Client.Events.EventManager; | |
import de.Client.Main.Commands.CommandManager; | |
import de.Client.Main.Modules.ModuleManager; | |
import de.Client.Render.ArrayLists.ArrayListC; | |
import de.Client.Render.ArrayLists.ArrayListD; | |
import de.Client.Render.ArrayLists.ArrayListD2; | |
import de.Client.Render.ArrayLists.ArrayListS; | |
import de.Client.Render.ClickGui.ClickGui; | |
import de.Client.Render.NahrFontRenderer; | |
import de.Client.Render.TTFManager; | |
import de.Client.Render.TabGuis.TabGuiC; | |
import de.Client.Render.TabGuis.TabGuiD; | |
import de.Client.Render.TabGuis.TabGuiS; | |
import de.Client.Render.Watermarks.WatermarkC; | |
import de.Client.Render.Watermarks.WatermarkD; | |
import de.Client.Render.Watermarks.WatermarkS; | |
import de.Client.Render.Watermarks.WatermarkSky; | |
import de.Client.Utils.*; | |
import de.Client.Utils.ArrayList; | |
import net.minecraft.client.Minecraft; | |
import org.newdawn.slick.*; | |
import java.awt.*; | |
import java.awt.Color; | |
import java.awt.Font; | |
import java.io.BufferedReader; | |
import java.io.File; | |
import java.io.FileReader; | |
import java.io.IOException; | |
import java.util.*; | |
public class Main { | |
public void setupTheme(){ | |
for(String bind : readFile(this.mainFile)) { | |
System.out.println(bind + ("" + new WatermarkSky().getClass()) ); | |
if(bind.startsWith("Color")){ | |
String s = bind.replace("Color + ",""); | |
Main.getMain.clientColor = new Color(Integer.parseInt(s)); | |
} | |
if(bind.startsWith("Watermark")){ | |
String s = bind.replace("Watermark + ",""); | |
if(("" + new WatermarkSky().getClass()).equalsIgnoreCase(s) ){ | |
Main.getMain.waterMark = new WatermarkSky(); | |
} | |
if(("" + new WatermarkD().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.waterMark = new WatermarkD(); | |
} | |
if(("" + new WatermarkS().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.waterMark = new WatermarkS(); | |
} | |
if(("" + new WatermarkC().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.waterMark = new WatermarkC(); | |
} | |
} | |
if(bind.startsWith("TabGui")){ | |
String s = bind.replace("TabGui + ",""); | |
if(("" + new TabGuiD().getClass()).equalsIgnoreCase(s) ){ | |
Main.getMain.tabGui = new TabGuiD(); | |
} | |
if(("" + new TabGuiC().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.tabGui = new TabGuiC(); | |
} | |
if(("" + new TabGuiS().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.tabGui = new TabGuiS(); | |
} | |
} | |
if(bind.startsWith("ArrayList")){ | |
String s = bind.replace("ArrayList + ",""); | |
if(("" + new ArrayListD().getClass()).equalsIgnoreCase(s) ){ | |
Main.getMain.arrayList = new ArrayListD(); | |
} | |
if(("" + new ArrayListS().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.arrayList = new ArrayListS(); | |
} | |
if(("" + new ArrayListC().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.arrayList = new ArrayListC(); | |
} | |
if(("" + new ArrayListD2().getClass()).equalsIgnoreCase(s)){ | |
Main.getMain.arrayList = new ArrayListD2(); | |
} | |
} | |
} | |
} | |
public String[] readFile(File file) { | |
if(file.exists()) { | |
try { | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
java.util.List<String> lines = new java.util.ArrayList(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return (String[]) lines.toArray(new String[lines.size()]); | |
} catch (Exception ignored) { | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
return null; | |
} | |
public void startClient(){ | |
RenderAPI2d.loadTextures(); | |
if(!mainFolder.exists()){ | |
mainFolder.mkdirs(); | |
} | |
if(!moduleStuff.exists()){ | |
moduleStuff.mkdirs(); | |
} | |
if(!moduleSave.exists()){ | |
try { | |
moduleSave.createNewFile(); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
} | |
if(!this.altStuff.exists()){ | |
this.altStuff.mkdirs(); | |
}if(!this.configs.exists()){ | |
this.configs.mkdirs(); | |
} | |
if(!this.altList.exists()){ | |
try { | |
this.altList.createNewFile(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
if(!friendStuff.exists()){ | |
this.altList.mkdir(); | |
} | |
if(!this.friend.exists()){ | |
try { | |
this.friend.createNewFile(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
if(!this.mainFile.exists()){ | |
try { | |
this.mainFile.createNewFile(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
}else{ | |
setupTheme(); | |
} | |
Main.getMain.moduleManager.loadModules(this.moduleSave); | |
macroManager.init(); | |
FriendManager.setFriends(friend); | |
new Thread(() -> { | |
//Main.getMain.ircManager.connect(); | |
try{ | |
long lastTime = System.nanoTime(); | |
final double ticks = 60D; | |
double ns = 1000000000 / ticks; | |
double delta = 0; | |
while(true){ | |
long now = System.nanoTime(); | |
delta += (now - lastTime) / ns; | |
lastTime = now; | |
if(delta >= 3){ | |
Main.getMain.tabGui.upDateAnimations(); | |
if(Minecraft.getMinecraft().currentScreen instanceof ClickGui) { | |
Main.getMain.getClickGui.updateAnimation(); | |
} | |
delta--; | |
} | |
} | |
}catch(Exception ignored){ | |
} | |
}).start(); | |
this.c.run(); | |
} | |
public TTFManager mainmenu= new TTFManager("Verdana",Font.PLAIN,15); | |
public TTFManager mainmenu2= new TTFManager("BigNoodleTitling",Font.PLAIN,350); | |
public RenderAPI2d renderer2d = new RenderAPI2d(); | |
public CommandManager cmdManager = new CommandManager(); | |
public TabGui tabGui = new TabGuiD(); | |
public Watermark waterMark = new WatermarkD(); | |
public ArrayList arrayList = new ArrayListD(); | |
public ModuleManager moduleManager = new ModuleManager(); | |
public static Main getMain = new Main(); | |
public TTFManager watermark= new TTFManager("Razed Trend",Font.PLAIN,52); | |
public TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,25); | |
public TTFManager verdanas =new TTFManager("Verdana",Font.PLAIN,22); | |
public File mainFolder = new File(Minecraft.getMinecraft().mcDataDir,"Night"); | |
public File moduleStuff = new File(mainFolder,"ModuleStuff"); | |
public File configs = new File(mainFolder,"Configs"); | |
public File friendStuff = new File(mainFolder,"FriendStuff"); | |
public File friend = new File(mainFolder,"friend.nght"); | |
public File altStuff = new File(mainFolder,"AltStuff"); | |
public File altList = new File(altStuff,"alts.nght"); | |
public File moduleSave = new File(moduleStuff,"modules.nght"); | |
public File mainFile = new File(mainFolder,"main.nght"); | |
public ControllerAPI controllerAPI = new ControllerAPI(); | |
public ClickGui getClickGui = new ClickGui(); | |
public MacroManager macroManager = new MacroManager(); | |
public IRC ircManager = new IRC("T_D"); | |
public ClientUpdateThread c = new ClientUpdateThread(); | |
public int theme; | |
public Color clientColor = new Color(0xff4b0082); | |
public void setColor(){ | |
int color = 0xff4b0082; | |
if(this.theme == 1){ | |
color = 0xff2ECC71; | |
} | |
if(this.theme == 2){ | |
color = 0xff19B5FE; | |
} | |
if(this.theme == 3){ | |
color = 0xff2ABB9B; | |
} | |
if(this.theme == 4){ | |
color = 0xffDB0A5B; | |
} | |
if(this.theme == 5){ | |
color = 0xffF5AB35; | |
} | |
clientColor = new Color(color); | |
} | |
public Color getClientColor(){ | |
return clientColor; | |
} | |
public Color getPurple(double fade,int speed){ | |
double fader = ((System.nanoTime() /speed/4.0d) +fade/4.0d) % 200; | |
fader -= 100; | |
if(fader < 0){ | |
fader *= -1; | |
} | |
fader +=60; | |
Color c = new Color(Main.getMain.getClientColor().getRGB()); | |
int red = (int) (c.getRed() * (fader/90 )); | |
int green = (int) (c.getGreen() * (fader/90 )); | |
int blue = (int) (c.getBlue()* (fader /90)); | |
if(red > 255){ | |
red = 255; | |
} | |
if(green > 255){ | |
green = 255; | |
} | |
if(blue > 255){ | |
blue = 255; | |
} | |
return new Color(red,green,blue); | |
} | |
public Color getPurple1(double fade,int speed){ | |
double fader = ((System.nanoTime() /speed) +fade) % 800; | |
fader -= 400; | |
if(fader < 0){ | |
fader *= -1; | |
} | |
fader +=150; | |
int red = (int) (fader / 2); | |
int green = (int) (fader / 20); | |
int blue = (int) fader; | |
if(red > 255){ | |
red = 255; | |
} | |
if(green > 255){ | |
green = 255; | |
} | |
if(blue > 255){ | |
blue = 255; | |
} | |
if(theme == 0){ | |
return new Color(red,green,blue); | |
} | |
if(theme == 1){ | |
return new Color(red,blue,green); | |
} | |
if(theme == 2){ | |
return new Color(green,red,blue); | |
} | |
if(theme == 3){ | |
return new Color(green,blue,red); | |
} | |
if(theme == 4){ | |
return new Color(blue,green,red); | |
} | |
if(theme == 5){ | |
return new Color(blue,red,green); | |
} | |
return null; | |
} | |
} |
package de.Client.Main.Modules; | |
public enum Category { | |
COMBAT, | |
MOVEMENT, | |
PLAYER, | |
WORLD, | |
RENDER, | |
None, | |
Gui, | |
} | |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.ModuleManager; | |
import de.Client.Main.Modules.mods.Movment.Glide; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import org.lwjgl.input.Keyboard; | |
public class Criticals extends Module { | |
public Criticals() { | |
super("Criticals", Category.COMBAT, Keyboard.KEY_NONE); | |
} | |
@EventTarget | |
public void onPacketSend(PacketSendEvent e) { | |
if (this.getState()) { | |
if(Main.getMain.moduleManager.getModule(KillAura.class).getState){ | |
if(((KillAura) Main.getMain.moduleManager.getModule(KillAura.class)).Tick.getValue()){ | |
return; | |
} | |
} | |
if(Main.getMain.moduleManager.getModule(Glide.class).getState){ | |
if(((Glide) Main.getMain.moduleManager.getModule(Glide.class)).hypixel.getValue()){ | |
return; | |
} | |
} | |
if (e.getPacket() instanceof C02PacketUseEntity) { | |
Entity entity = ((C02PacketUseEntity) e.getPacket()).entity; | |
if(entity.hurtResistantTime > 12 || !mc.thePlayer.onGround){ | |
return; | |
} | |
this.mc.getNetHandler().addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( | |
this.mc.thePlayer.posX, this.mc.thePlayer.posY + 0.12D, this.mc.thePlayer.posZ, false)); | |
this.mc.getNetHandler().addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( | |
this.mc.thePlayer.posX, this.mc.thePlayer.posY, this.mc.thePlayer.posZ, false)); | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.mods.Movment.NoSlowDown; | |
import de.Client.Main.Modules.mods.Movment.Speed; | |
import de.Client.Main.Modules.mods.Player.Autotool; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Utils.FriendManager; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.EntityLiving; | |
import net.minecraft.entity.EntityLivingBase; | |
import net.minecraft.entity.monster.EntityMob; | |
import net.minecraft.entity.passive.EntityAnimal; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.item.ItemSword; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.*; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.EnumParticleTypes; | |
import net.minecraft.util.MathHelper; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.opengl.Display; | |
import java.util.ArrayList; | |
import java.util.Random; | |
public class KillAura extends Module { | |
public ValueDouble targets = new ValueDouble("maxtargets", 3, 10, 10); | |
public ValueDouble rotationSpeed = new ValueDouble("rotationSpeed", 10, 300, 300); | |
public ValueBoolean single = new ValueBoolean("single", false); | |
public ValueDouble delay = new ValueDouble("delay", 80, 300, 300); | |
public ValueDouble Range = new ValueDouble("Range", 4, 10, 10); | |
public ValueBoolean hitbots = new ValueBoolean("hitbots", false); | |
public ValueBoolean heuristic = new ValueBoolean("heuristic", false); | |
public ValueBoolean AAC = new ValueBoolean("AAC",false); | |
public ValueBoolean Tick = new ValueBoolean("Tick",false); | |
public ValueBoolean Autoblock = new ValueBoolean("Autoblock",false); | |
public ValueBoolean Player = new ValueBoolean("Player",true); | |
public ValueBoolean Animals = new ValueBoolean("Animals",false); | |
public ValueBoolean Mobs = new ValueBoolean("Mobs",false); | |
public int circlerotation; | |
public Entity entityToAttack; | |
public ArrayList<EntityLivingBase> entitestoAttack = new ArrayList(); | |
public boolean reset; | |
public TimeHelper time2 = new TimeHelper(); | |
public TimeHelper time = new TimeHelper(); | |
public ArrayList<EntityLivingBase> entities = new ArrayList(); | |
public KillAura() { | |
super("KillAura", Category.COMBAT, Keyboard.KEY_Y); | |
addValue(this.targets); | |
addValue(this.single); | |
addValue(this.delay); | |
addValue(this.Range); | |
addValue(this.rotationSpeed); | |
addValue(this.hitbots); | |
addValue(this.heuristic); | |
addValue(this.Tick); | |
addValue(this.Autoblock); | |
addValue(this.AAC); | |
addValue(Player); | |
addValue(Mobs); | |
addValue(Animals); | |
this.displayName = "Kill Aura"; | |
} | |
public void onEnable() { | |
yaw = mc.thePlayer.rotationYaw; | |
pitch = mc.thePlayer.rotationPitch; | |
new Thread(){ | |
@Override | |
public void run(){ | |
while(Main.getMain.moduleManager.getModule(KillAura.class).getState) { | |
try { | |
KillAura k = (KillAura) Main.getMain.moduleManager.getModule(KillAura.class); | |
entities.clear(); | |
entities = getCloseEnteties(Range.getValue()+1); | |
int targets = 0; | |
targets = (int) (k.single.getValue() ? 1 : k.targets.getValue()); | |
if (targets > k.getCloseEnteties(k.Range.getValue()).size()) { | |
targets = k.getCloseEnteties(k.Range.getValue()).size(); | |
} | |
if (k.entitestoAttack.size() < targets ) { | |
for (int i = 0; i < targets - k.entitestoAttack.size(); ++i) { | |
Entity e = k.getEntity(); | |
entityToAttack = e; | |
k.entitestoAttack.add((EntityLivingBase) e); | |
time.reset(); | |
} | |
}else{ | |
} | |
for (int i = 0; i < k.entitestoAttack.size(); ++i) { | |
if (k.entitestoAttack.get(i) != null) { | |
Entity entity = k.entitestoAttack.get(i); | |
if (mc.thePlayer.getDistanceToEntity(entity) > k.Range.getValue()) { | |
k.entitestoAttack.remove(entity); | |
} | |
if (entity.isDead) { | |
k.entitestoAttack.remove(entity); | |
} | |
} | |
} | |
}catch (Exception e){ | |
} | |
} | |
} | |
}.start(); | |
} | |
public void attack(Entity e) { | |
if(e == null){ | |
return; | |
} | |
// mc.thePlayer.setPosition(e.posX,e.posY,e.posZ); | |
if (this.hitbots.getValue()) { | |
// Main.getMain.cmdManager.sendChatMessage("attacking " + e.getName()); | |
for (Object en : mc.theWorld.loadedEntityList) { | |
if(en instanceof EntityLivingBase) { | |
EntityLivingBase entity = (EntityLivingBase) en; | |
if (entity.isChild()) { | |
// Main.getMain.cmdManager.sendChatMessage("just a baby - dont care" + e.getName()); | |
} | |
if (entity.getDistanceToEntity(e) < 1 && entity.isInvisible() &&!entity.isChild()&& !(entity == mc.thePlayer) && entity.getDistanceToEntity(mc.thePlayer) <= e.getDistanceToEntity(mc.thePlayer)) { | |
e = entity; | |
} | |
} | |
} | |
} | |
if(e.hurtResistantTime < 15) { | |
mc.thePlayer.swingItem(); | |
}else { | |
mc.thePlayer.sendQueue.addToSendQueue(new C0APacketAnimation()); | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(e, C02PacketUseEntity.Action.ATTACK)); | |
} | |
public void attackAACTick(Entity e) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.STOP_SPRINTING)); | |
// Main.getMain.cmdManager.sendChatMessage("attacking " + e.getName()); | |
for (Object en : mc.theWorld.loadedEntityList) { | |
if(en instanceof EntityLivingBase) { | |
EntityLivingBase entity = (EntityLivingBase) en; | |
if (entity.isChild()) { | |
// Main.getMain.cmdManager.sendChatMessage("just a baby - dont care" + e.getName()); | |
} | |
if (entity.getDistanceToEntity(e) < 1 && entity.isInvisible() &&!entity.isChild()&& !(entity == mc.thePlayer) && entity.getDistanceToEntity(mc.thePlayer) <= e.getDistanceToEntity(mc.thePlayer)) { | |
e = entity; | |
} | |
} | |
} | |
if(e != mc.objectMouseOver.entityHit && mc.objectMouseOver.entityHit != null){ | |
e = mc.objectMouseOver.entityHit; | |
// Main.getMain.cmdManager.sendChatMessage(mc.objectMouseOver.entityHit+""); | |
} | |
//mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(e, C02PacketUseEntity.Action.ATTACK)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
public void attackTick(Entity e) { | |
if (this.hitbots.getValue()) { | |
Entity entityToHit = null; | |
if (entityToHit instanceof EntityLivingBase) { | |
if (entityToHit.isInvisible()) { | |
for (Object en : mc.theWorld.loadedEntityList) { | |
Entity entity = (Entity) en; | |
if (entity.getDistanceToEntity(e) < 0.6) { | |
if (entityToHit == null || entityToHit.getDistanceToEntity(mc.thePlayer) > entityToHit.getDistanceToEntity(mc.thePlayer)) { | |
entityToHit = entity; | |
//Main.getMain.cmdManager.sendChatMessage("Changing entity to " + entityToHit.getName()); | |
} | |
} | |
} | |
if (entityToHit != null) { | |
e = entityToHit; | |
} | |
} | |
} | |
} | |
for(int i = 0; i < 9; ++i){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(i)); | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); | |
if(mc.thePlayer.onGround) { | |
this.mc.getNetHandler().addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( | |
this.mc.thePlayer.posX, this.mc.thePlayer.posY + 0.12D, this.mc.thePlayer.posZ, false)); | |
this.mc.getNetHandler().addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( | |
this.mc.thePlayer.posX, this.mc.thePlayer.posY+0.001, this.mc.thePlayer.posZ, false)); | |
} | |
for(int i = 0; i < 5; ++i) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(new Random().nextInt(9))); | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange( mc.thePlayer.inventory.currentItem)); | |
mc.getNetHandler().addToSendQueue((Packet) new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C02PacketUseEntity(e, C02PacketUseEntity.Action.ATTACK)); | |
} | |
} | |
public float getPitchChangeToEntity(Entity entity) { | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double deltaY = entity.posY - 1.6D + entity.getEyeHeight() - mc.thePlayer.posY; | |
double distanceXZ = MathHelper.sqrt_double(deltaX * deltaX + deltaZ * deltaZ); | |
double pitchToEntity = -Math.toDegrees(Math.atan(deltaY / distanceXZ)); | |
return -MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationPitch - (float) pitchToEntity); | |
} | |
public float getYawChangeToEntity(Entity entity) { | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double yawToEntity; | |
if ((deltaZ < 0.0D) && (deltaX < 0.0D)) { | |
yawToEntity = 90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} else { | |
if ((deltaZ < 0.0D) && (deltaX > 0.0D)) { | |
yawToEntity = -90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} else { | |
yawToEntity = Math.toDegrees(-Math.atan(deltaX / deltaZ)); | |
} | |
} | |
return MathHelper.wrapAngleTo180_float(-(circlerotation - (float) yawToEntity)); | |
} | |
public int compare(Entity a, Entity b) { | |
if (a != null && b != null) { | |
float yaw = getYawChangeToEntity(a); | |
float pitch = getPitchChangeToEntity(a); | |
final float da = (yaw + pitch); | |
yaw = getYawChangeToEntity(b); | |
pitch = getPitchChangeToEntity(b); | |
final float db = (yaw + pitch); | |
return da < db ? -1 : 1; | |
} | |
return 0; | |
} | |
public Entity getEntity() { | |
EntityLivingBase rotation = (EntityLivingBase) entities.stream().sorted(this::compare).findFirst().get(); | |
//Main.getMain.cmdManager.sendChatMessage(this.getYawChangeToEntity(rotation)+""); | |
circlerotation += this.rotationSpeed.getValue(); | |
circlerotation %= 360; | |
entities.remove(rotation); | |
return rotation; | |
} | |
public ArrayList<EntityLivingBase> getCloseEnteties(double range) { | |
ArrayList<EntityLivingBase> entities = new ArrayList<EntityLivingBase>(); | |
for (int i = 0; i < mc.theWorld.getLoadedEntityList().size(); ++i) { | |
Object eraw = mc.theWorld.getLoadedEntityList().get(i); | |
if (eraw instanceof EntityLivingBase) { | |
if(!Teams.teammates.contains(((EntityLivingBase) eraw).getName())) { | |
if(!FriendManager.friends.containsKey(((EntityLivingBase) eraw).getName())) { | |
// System.out.println(eraw+""); | |
if(eraw instanceof EntityPlayer && Player.getValue() || eraw instanceof EntityMob && Mobs.getValue() || eraw instanceof EntityAnimal && Animals.getValue()) { | |
if (eraw != mc.thePlayer) { | |
// if (((EntityLivingBase) eraw).getHealth() > 0) { | |
// Main.getMain.cmdManager.sendChatMessage((eraw instanceof EntityPlayer && Player.getValue()) + ""); | |
EntityLivingBase e = (EntityLivingBase) eraw; | |
if (mc.thePlayer.getDistanceToEntity(e) <= range) { | |
entities.add(e); | |
} | |
// } | |
} | |
} | |
} | |
} | |
} | |
} | |
return entities; | |
} | |
public float[] getRotationsNeeded(Entity entity) { | |
double diffY; | |
if (entity == null) { | |
return null; | |
} | |
double diffX = entity.posX + entity.motionX - (Minecraft.getMinecraft().thePlayer.posX + mc.thePlayer.motionX); | |
double diffZ = entity.posZ + entity.motionZ - (Minecraft.getMinecraft().thePlayer.posZ + mc.thePlayer.motionZ); | |
if (entity instanceof EntityLivingBase) { | |
EntityLivingBase entityLivingBase = (EntityLivingBase) entity; | |
diffY = entityLivingBase.posY + (double) entityLivingBase.getEyeHeight() - (Minecraft.getMinecraft().thePlayer.posY + (double) Minecraft.getMinecraft().thePlayer.getEyeHeight()); | |
} else { | |
diffY = (entity.boundingBox.minY - 0.5 + entity.boundingBox.maxY - 0.5) / 2.0 - (Minecraft.getMinecraft().thePlayer.posY + (double) Minecraft.getMinecraft().thePlayer.getEyeHeight()); | |
} | |
double dist = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ); | |
float yaw = (float) (Math.atan2(diffZ, diffX) * 180.0 / Math.PI) - 90.0f; | |
float pitch = (float) (-Math.atan2(diffY, dist) * 180.0 / Math.PI); | |
return new float[]{Minecraft.getMinecraft().thePlayer.rotationYaw + MathHelper.wrapAngleTo180_float(yaw - Minecraft.getMinecraft().thePlayer.rotationYaw), Minecraft.getMinecraft().thePlayer.rotationPitch + MathHelper.wrapAngleTo180_float(pitch - Minecraft.getMinecraft().thePlayer.rotationPitch)}; | |
} | |
public boolean unblock; | |
public float yaw; | |
public float pitch; | |
public float yaw2; | |
public float pitch2; | |
@EventTarget | |
public void onEvent(UpdateEvent pre) { | |
if(mc.currentScreen != null){ | |
return; | |
} | |
if(this.AAC.getValue()){ | |
NoSlowDown nsd = (NoSlowDown) Main.getMain.moduleManager.getModule(NoSlowDown.class); | |
if(nsd.getState && nsd.AACLatest.getValue() && !nsd.nextTick && mc.thePlayer.isBlocking()){ | |
return; | |
} | |
} | |
if(this.Autoblock.getValue()){ | |
if(mc.thePlayer.getCurrentEquippedItem() != null) { | |
if (getCloseEnteties(this.Range.getValue() + 1).size() > 0) { | |
if (mc.thePlayer.getCurrentEquippedItem().getItem() instanceof ItemSword) { | |
mc.gameSettings.keyBindUseItem.pressed = true; | |
unblock = true; | |
} | |
} else { | |
if (unblock) { | |
mc.gameSettings.keyBindUseItem.pressed = false; | |
unblock = false; | |
} | |
} | |
} | |
} | |
// System. | |
if (pre.getState() == State.PRE) { | |
yaw = mc.thePlayer.rotationYaw; | |
pitch = mc.thePlayer.rotationPitch; | |
if(mc.thePlayer.getDistanceToEntity(this.entityToAttack) <= this.Range.getValue() && mc.theWorld.loadedEntityList.contains(this.entityToAttack)) { | |
float[] rot = this.getRotationsNeeded(this.entityToAttack); | |
if(!this.AAC.getValue()) { | |
mc.thePlayer.rotationYaw = rot[0]; | |
mc.thePlayer.rotationPitch = rot[1]; | |
}else{ | |
yaw2-= (yaw2 - rot[0]) /( 1.0d + new Random().nextDouble())*2 % 360; | |
pitch2 -= (pitch2 - rot[1]) /( 1.0d + new Random().nextDouble()); | |
mc.thePlayer.rotationYaw =yaw2; | |
mc.thePlayer.rotationPitch =pitch2; | |
if( mc.thePlayer.rotationPitch > 90){ | |
mc.thePlayer.rotationPitch = 90; | |
} | |
if( mc.thePlayer.rotationPitch < -90){ | |
mc.thePlayer.rotationPitch = -90; | |
} | |
} | |
} | |
if (time.hasReached((long) (this.delay.getValue() + (this.heuristic.getValue() ? new Random().nextInt(10) - new Random().nextInt(10) : 0))) || this.Tick.getValue() || this.AAC.getValue()) { | |
for (int i = 0; i < this.entitestoAttack.size(); ++i) { | |
Entity e = this.entitestoAttack.get(i); | |
if(this.AAC.getValue()){ | |
if (time2.hasReached(50 + new Random().nextInt(50))){ | |
mc.thePlayer.swingItem(); | |
time2.reset(); | |
} | |
} | |
if(time.hasReached(495) || !this.Tick.getValue()) { | |
float[] rot = this.getRotationsNeeded(this.entityToAttack); | |
if (time.hasReached( new Random().nextInt(300)) && mc.thePlayer.getDistanceToEntity(this.entityToAttack) < this.Range.getValue() - 1 && (Math.sqrt((rot[0]-mc.thePlayer.rotationYaw)*(rot[0]-mc.thePlayer.rotationYaw)) < 15)|| !this.AAC.getValue()) { | |
if (Tick.getValue()) { | |
this.attackTick(e); | |
} else { | |
if (this.AAC.getValue()) { | |
this.attackAACTick(e); | |
} else { | |
this.attack(e); | |
} | |
} | |
time.reset(); | |
this.entitestoAttack.remove(e); | |
} | |
} | |
} | |
} | |
} else if (pre.getState() == State.POST) { | |
mc.thePlayer.rotationYaw = (float) yaw; | |
mc.thePlayer.rotationPitch = (float) pitch; | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C0BPacketEntityAction; | |
/** | |
* Created by Daniel on 08.08.2017. | |
*/ | |
public class KnockBackControl extends Module{ | |
public ValueBoolean ExtraVelocity; | |
public ValueBoolean ExtraVelocityB; | |
public ValueBoolean LessVelocity; | |
public KnockBackControl(){ | |
super("KBControll",Category.COMBAT,0); | |
addValue(ExtraVelocity = new ValueBoolean("ExtraVelocity",true)); | |
addValue(ExtraVelocityB = new ValueBoolean("ExtraVelocityBypass",false)); | |
addValue(LessVelocity= new ValueBoolean("LessVelocity",false)); | |
} | |
@EventTarget | |
public void onPacketSend(PacketSendEvent e) { | |
if(Main.getMain.moduleManager.getModule(KillAura.class).getState){ | |
if(((KillAura) Main.getMain.moduleManager.getModule(KillAura.class)).Tick.getValue()){ | |
return; | |
} | |
} | |
if(this.ExtraVelocity.getValue()){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
if(this.LessVelocity.getValue()){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.STOP_SPRINTING)); | |
} | |
if(this.ExtraVelocityB.getValue()){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ+0.01f,true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.FriendManager; | |
import de.Client.Utils.Macro; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.EntityLivingBase; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
public class McdeadAimbot extends Module { | |
public McdeadAimbot() { | |
super("MCDAimbot", Category.COMBAT, 0); | |
// TODO Auto-generated constructor stub | |
} | |
public int preItem; | |
public float preLookPitch; | |
public float preLookYaw; | |
public boolean isCorrectEntity(Object o) { | |
if (!(o instanceof EntityLivingBase)) { | |
return false; | |
} | |
return true; | |
} | |
public float[] getRotationsNeeded(Entity entity) { | |
double diffY; | |
if (entity == null) { | |
return null; | |
} | |
double diffX = entity.posX + ((entity.posX - entity.lastTickPosX))*16 / mc.thePlayer.getDistanceToEntity(entity) - (Minecraft.getMinecraft().thePlayer.posX + mc.thePlayer.motionX); | |
double diffZ = entity.posZ + ((entity.posZ - entity.lastTickPosZ))*16 / mc.thePlayer.getDistanceToEntity(entity) - (Minecraft.getMinecraft().thePlayer.posZ + mc.thePlayer.motionZ); | |
if (entity instanceof EntityLivingBase) { | |
EntityLivingBase entityLivingBase = (EntityLivingBase) entity; | |
diffY = entityLivingBase.posY + (double) entityLivingBase.getEyeHeight() - (Minecraft.getMinecraft().thePlayer.posY + (double) Minecraft.getMinecraft().thePlayer.getEyeHeight()); | |
} else { | |
diffY = (entity.boundingBox.minY - 0.5 + entity.boundingBox.maxY - 0.5) / 2.0 - (Minecraft.getMinecraft().thePlayer.posY + (double) Minecraft.getMinecraft().thePlayer.getEyeHeight()); | |
} | |
double dist = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ); | |
float yaw = (float) (Math.atan2(diffZ, diffX) * 180.0 / Math.PI) - 90.0f; | |
float pitch = (float) (-Math.atan2(diffY, dist) * 180.0 / Math.PI); | |
return new float[]{Minecraft.getMinecraft().thePlayer.rotationYaw + MathHelper.wrapAngleTo180_float(yaw - Minecraft.getMinecraft().thePlayer.rotationYaw), Minecraft.getMinecraft().thePlayer.rotationPitch + MathHelper.wrapAngleTo180_float(pitch - Minecraft.getMinecraft().thePlayer.rotationPitch)}; | |
} | |
public EntityLivingBase getClosestEntity() { | |
EntityLivingBase closestEntity = null; | |
for (Object o : mc.theWorld.playerEntities) { | |
if (!isCorrectEntity(o) && !FriendManager.friends.containsKey(((EntityLivingBase) o).getName())) continue; | |
EntityLivingBase en = (EntityLivingBase)o; | |
if ( en.isDead || en.getHealth() <= 0.0f || en.getName().equals(Minecraft.getMinecraft().thePlayer.getName()) || closestEntity != null && Minecraft.getMinecraft().thePlayer.getDistanceToEntity(en) >= Minecraft.getMinecraft().thePlayer.getDistanceToEntity(closestEntity)) continue; | |
closestEntity = en; | |
} | |
return closestEntity; | |
} | |
public TimeHelper t = new TimeHelper(); | |
@EventTarget | |
public void onPrePost(UpdateEvent e){ | |
if(getClosestEntity() == null){ | |
return; | |
} | |
EntityPlayer p = (EntityPlayer) this.getClosestEntity(); | |
if(mc.thePlayer.getDistanceToEntity(p) > 80){ | |
return; | |
} | |
if(!mc.thePlayer.canEntityBeSeen(p)){ | |
return; | |
} | |
if(e.state == State.PRE) { | |
preLookYaw = mc.thePlayer.rotationYaw; | |
preLookPitch = mc.thePlayer.rotationPitch; | |
float[] rot = this.getRotationsNeeded(p); | |
mc.thePlayer.rotationYaw = rot[0]; | |
mc.thePlayer.rotationPitch = rot[1]; | |
if(t.hasReached(100)) { | |
mc.getNetHandler().addToSendQueue((Packet) new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); | |
mc.getNetHandler().addToSendQueue((Packet) new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
t.reset(); | |
} | |
}else{ | |
if(e.state == State.POST){ | |
mc.thePlayer.rotationYaw = preLookYaw; | |
mc.thePlayer.rotationPitch = preLookPitch; | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.ModuleManager; | |
import de.Client.Main.Modules.mods.Movment.Glide; | |
import de.Client.Main.Values.ValueBoolean; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import org.lwjgl.input.Keyboard; | |
public class Regen extends Module { | |
public Regen() { | |
super("Regen", Category.COMBAT, 0); | |
} | |
public ValueBoolean packets = new ValueBoolean("Packets",true); | |
public void onUpdate(){ | |
if(this.packets.getValue()){ | |
if(mc.thePlayer.getHealth() < 20 && ! mc.playerController.isInCreativeMode() && mc.thePlayer.onGround && !mc.thePlayer.getFoodStats().needFood()){ | |
for(int i = 0; i < 300; ++i){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer(true)); | |
} | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Combat; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.EntityLivingBase; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
import java.util.Iterator; | |
public class Teams extends Module { | |
public Teams() { | |
super("Teams", Category.COMBAT, 0); | |
// TODO Auto-generated constructor stub | |
} | |
private static ArrayList<EntityLivingBase> players = new ArrayList(); | |
public static ArrayList<String> teammates = new ArrayList(); | |
public void onRender(){ | |
// mc.gameSettings.gammaSetting = 9999; | |
if(!this.getState()){ | |
this.teammates.clear(); | |
} | |
} | |
@EventTarget | |
public void onUpdate(UpdateEvent e) { | |
this.displayName = (this.name); | |
this.players.clear(); | |
this.teammates.clear(); | |
try { | |
for (Iterator<Entity> entities = mc.theWorld.loadedEntityList.iterator(); entities.hasNext();) { | |
Object theObject = entities.next(); | |
if ((theObject instanceof EntityLivingBase)) { | |
EntityLivingBase entity = (EntityLivingBase) theObject; | |
if ((!(entity instanceof EntityPlayerSP)) && (entity.isOnTeam(mc.thePlayer.getTeam()))) { | |
teammates.add(entity.getName().toString()); | |
players.add(entity); | |
} | |
} | |
} | |
} catch (Exception exception) {} | |
} | |
@Override | |
public void onDisable() { | |
this.players.clear(); | |
this.teammates.clear(); | |
super.onDisable(); | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.BlockAir; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.S08PacketPlayerPosLook; | |
import net.minecraft.util.BlockPos; | |
import java.util.ArrayList; | |
public class ClickTP extends Module { | |
public ValueBoolean rewi = new ValueBoolean("rewi",false); | |
public ValueBoolean aac = new ValueBoolean("aac",true); | |
public static ValueBoolean legit; | |
// private ArrayList<Location> locationList; | |
private boolean cancel; | |
private boolean speedTick; | |
private float speedTimer = (float) 1.35; | |
public TimeHelper timer = new TimeHelper(); | |
public static boolean yport; | |
private double save; | |
public static boolean canStep; | |
private boolean stop; | |
public static boolean boost = false; | |
private float ground = 0.0F; | |
private boolean shouldreset; | |
private int timerDelay; | |
private float headStart; | |
private int groundTicks; | |
private boolean groundBoolean; | |
private int state; | |
private boolean isSpeeding; | |
private double lastHDistance; | |
public static double yOffset; | |
private int stage; | |
private double moveSpeed; | |
private double lastDist; | |
public float oldYaw; | |
private ArrayList<Packet> packets = new ArrayList<Packet>(); | |
BlockPos tpTo = null; | |
BlockPos startPos = null; | |
double startY = 0; | |
public static double oldX = 0; | |
double oldY = 0; | |
public static double oldZ = 0; | |
boolean inAir = false; | |
public int ticks; | |
private boolean hasstarted; | |
public float newYaw; | |
public ClickTP() { | |
super("ClickTP", Category.MOVEMENT, 0); | |
addValue(this.rewi); | |
addValue(this.aac); | |
} | |
@EventTarget | |
public void onPacketReceiveEvent(PacketReceiveEvent e) { | |
if(this.rewi.getValue()){ | |
if (e.getPacket() instanceof S08PacketPlayerPosLook && this.hasstarted) { | |
for(int i = 0; i < 50; ++i){ | |
if (this.tpTo.x == mc.thePlayer.posX) { | |
if (this.tpTo.z == mc.thePlayer.posZ) { | |
return; | |
} | |
} | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
mc.thePlayer.posX, mc.thePlayer.posY + 9999, mc.thePlayer.posZ, true)); | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
mc.thePlayer.posX, mc.thePlayer.posY - Integer.MAX_VALUE, mc.thePlayer.posZ, true)); | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
this.tpTo.getX(), this.tpTo.getY(), this.tpTo.getZ(), true)); | |
mc.getNetHandler().netManager.sendPacket(new C03PacketPlayer.C04PacketPlayerPosition( | |
mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
} | |
this.hasstarted = false; | |
} | |
} | |
} | |
@Override | |
public void onEnable(){ | |
this.tpTo = null; | |
this.hasstarted = false; | |
super.onEnable(); | |
} | |
public void onUpdate() { | |
try { | |
if (!(mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()).getBlock() instanceof BlockAir) && mc.gameSettings.keyBindAttack.pressed) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 2, 0)) | |
.getBlock() instanceof BlockAir)) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 3, 0)) | |
.getBlock() instanceof BlockAir)) { | |
this.tpTo = mc.objectMouseOver.func_178782_a().add(0, 1, 0); | |
this.startPos = new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ); | |
hasstarted = true; | |
int airTicks = 0; | |
timer.reset(); | |
} | |
} | |
} | |
if (hasstarted) { | |
if(!timer.hasReached(2000)) { | |
if ((mc.thePlayer.getDistance(tpTo.x, tpTo.y, tpTo.z) < 5)) { | |
hasstarted = false; | |
return; | |
} | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, false)); | |
// mc.thePlayer.setSpeed(10); | |
// mc.timer.timerSpeed = 0.4f; | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, true)); | |
// mc.thePlayer.setSpeed(10); | |
//mc.timer.timerSpeed = 0.1f; | |
}else { | |
// mc.thePlayer.setPosition(tpTo.x, tpTo.y, tpTo.z); | |
} | |
} | |
}catch (Exception e){ | |
} | |
if (this.aac.getValue() ) { | |
try { | |
if (!(mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()).getBlock() instanceof BlockAir) && mc.gameSettings.keyBindAttack.pressed) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 2, 0)) | |
.getBlock() instanceof BlockAir)) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 3, 0)) | |
.getBlock() instanceof BlockAir)) { | |
this.tpTo = mc.objectMouseOver.func_178782_a().add(0, 1, 0); | |
this.startPos = new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ); | |
hasstarted = true; | |
int airTicks = 0; | |
} | |
} | |
} | |
if (hasstarted) { | |
if ((timer.hasReached(200L))) { | |
/*/ | |
/*/ | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpTo.x, tpTo.y, tpTo.z, mc.thePlayer.onGround)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(startPos.x, startPos.y + 50.0D, startPos.z, mc.thePlayer.onGround)); | |
/*/ | |
int tpposx = tpTo.x; | |
int tpposy = tpTo.y; | |
int tpposz = tpTo.z; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpposx - 0.5D, tpposy - 0.5D, tpposz - 0.5D, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(tpposx + 0.5D, tpposy + 0.5D, tpposz + 0.5D, true)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition( mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
/*/ | |
timer.reset(); | |
} | |
} | |
if((mc.thePlayer.posX == tpTo.x )&& (mc.thePlayer.posZ == tpTo.z)){ | |
this.hasstarted = false; | |
} | |
}catch (Exception e){ | |
} | |
} | |
if(this.rewi.getValue()){ | |
mc.timer.timerSpeed = 1; | |
if (timer.hasReached(500)) { | |
hasstarted = false; | |
} | |
if (this.hasstarted) { | |
if (this.tpTo.x == mc.thePlayer.posX) { | |
if (this.tpTo.z == mc.thePlayer.posZ) { | |
} | |
} | |
} | |
if (mc.gameSettings.keyBindAttack.pressed) { | |
if (!(mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()).getBlock() instanceof BlockAir)) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 2, 0)) | |
.getBlock() instanceof BlockAir)) { | |
if ((mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a().add(0, 3, 0)) | |
.getBlock() instanceof BlockAir)) { | |
this.tpTo = mc.objectMouseOver.func_178782_a().add(0, 1, 0); | |
hasstarted = true; | |
int airTicks = 0; | |
timer.reset(); | |
} | |
} | |
} | |
} | |
if (hasstarted ) { | |
mc.thePlayer.motionY = 0.1; | |
} | |
} | |
} | |
} | |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.Event; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.opengl.GL11; | |
public class ControllerApi extends Module { | |
public ControllerApi() { | |
super("Controller", Category.MOVEMENT, Keyboard.KEY_Y); | |
// TODO Auto-generated constructor stub | |
} | |
public void onEnable() { | |
Main.getMain.controllerAPI.init(); | |
} | |
public void onRender(){ | |
try { | |
Controller c = Main.getMain.controllerAPI.gameController; | |
if (c != null) { | |
mc.thePlayer.rotationYaw += c.getAxisValue(1) * 2; | |
mc.thePlayer.rotationPitch += c.getAxisValue(0); | |
} else { | |
Main.getMain.controllerAPI.init(); | |
} | |
}catch (Exception e) { | |
} | |
} | |
public boolean tabGui; | |
public void onUpdate(){ | |
try { | |
Controller c = Main.getMain.controllerAPI.gameController; | |
if (c != null) { | |
mc.gameSettings.keyBindJump.pressed = c.isButtonPressed(5); | |
mc.gameSettings.keyBindForward.pressed = c.getYAxisValue() < 0; | |
mc.gameSettings.keyBindBack.pressed = c.getYAxisValue() > 0; | |
mc.gameSettings.keyBindAttack.pressed = c.isButtonPressed(7); | |
mc.gameSettings.keyBindUseItem.pressed = c.isButtonPressed(8); | |
mc.gameSettings.keyBindLeft.pressed = c.getXAxisValue() == -1; | |
mc.gameSettings.keyBindRight.pressed = c.getXAxisValue() == 1; | |
if (c.getPovY() < 0) { | |
if (tabGui) { | |
Main.getMain.tabGui.upKey(); | |
tabGui = false; | |
} | |
} else if (c.getPovY() > 0 && tabGui) { | |
if (tabGui) { | |
Main.getMain.tabGui.downKey(); | |
tabGui = false; | |
} | |
} else if (c.getPovX() < 0) { | |
if (tabGui) { | |
Main.getMain.tabGui.leftKey(); | |
tabGui = false; | |
} | |
} else if (c.getPovX() > 0) { | |
if (tabGui) { | |
Main.getMain.tabGui.rightKey(); | |
tabGui = false; | |
} | |
} else { | |
tabGui = true; | |
} | |
} else { | |
Main.getMain.controllerAPI.init(); | |
} | |
}catch(Exception e){ | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.Macro; | |
import net.minecraft.entity.Entity; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
public class Fastladder extends Module { | |
public static ValueBoolean AAC = new ValueBoolean("AAC",true) ; | |
public Fastladder() { | |
super("Fastladder", Category.MOVEMENT,0); | |
addValue(AAC); | |
} | |
public float speed; | |
public void onUpdate(){ | |
if(mc.thePlayer.isOnLadder()){ | |
mc.thePlayer.motionY -= 0.013; | |
} | |
//mc.timer.timerSpeed = 0.1f; | |
if(mc.thePlayer.onGround && mc.thePlayer.isOnLadder()){ | |
speed = 0; | |
if(mc.thePlayer.isOnLadder() && mc.thePlayer.motionY > 0.2){ | |
mc.thePlayer.setSpeed(0); | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.*; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.enchantment.Enchantment; | |
import net.minecraft.enchantment.EnchantmentHelper; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.item.ItemBow; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.network.play.client.*; | |
import net.minecraft.potion.Potion; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
import net.minecraft.util.MovementInput; | |
import org.newdawn.slick.Color; | |
import java.util.Random; | |
public class Glide extends Module{ | |
public boolean nextTick; | |
public ValueBoolean Cubecraft = new ValueBoolean("Cubecraft",true); | |
public ValueBoolean hypixel = new ValueBoolean("Hypixel",false); | |
public ValueBoolean AAC = new ValueBoolean("AAC",false); | |
public ValueBoolean AACVelocity = new ValueBoolean("AACVelocity",false); | |
public ValueBoolean NCPBow = new ValueBoolean("NCPBow",false); | |
public ValueBoolean AACWall = new ValueBoolean("AACWall",false); | |
public ValueBoolean AACWallAdvanced = new ValueBoolean("AACWallAdvanced",false); | |
public ValueBoolean Neptune = new ValueBoolean("Neptune",false); | |
public ValueBoolean Cobra = new ValueBoolean("Cobra",false); | |
public int airtime; | |
public boolean rejoin; | |
private float speedTimer = 1.35F; | |
private int timer; | |
public static boolean yport; | |
private double save; | |
public static boolean canStep; | |
private boolean stop; | |
public static boolean boost = false; | |
private float ground = 0.0F; | |
private boolean shouldreset; | |
private int timerDelay; | |
private float headStart; | |
private int airTicks; | |
private int groundTicks; | |
private int packets; | |
private double lastDist; | |
private boolean groundBoolean; | |
private int state; | |
private boolean isSpeeding; | |
private double lastHDistance; | |
public static double yOffset; | |
private int stage; | |
private double moveSpeed; | |
public TimeHelper time = new TimeHelper(); | |
public Glide() { | |
super("Glide",Category.MOVEMENT,0); | |
addValue(Cubecraft); | |
addValue(this.NCPBow); | |
addValue(this.AAC); | |
addValue(this.AACVelocity); | |
addValue(this.AACWall); | |
addValue(this.AACWallAdvanced); | |
addValue(this.hypixel); | |
addValue(this.Neptune); | |
addValue(this.Cobra); | |
} | |
public void onDisable(){ | |
mc.timer.timerSpeed = 1; | |
if(this.Cubecraft.getValue() || this.AAC.getValue()){ | |
mc.thePlayer.setSpeed(0); | |
} | |
super.onDisable(); | |
} | |
public float directionToFly; | |
public void onEnable(){ | |
if(this.AACWallAdvanced.getValue()){ | |
directionToFly = mc.thePlayer.rotationYaw; | |
} | |
this.shouldreset = true; | |
this.disabling = true; | |
if(this.Cubecraft.getValue()){ | |
if (mc.thePlayer != null) { | |
this.moveSpeed = getBaseMoveSpeed(); | |
} | |
this.lastDist = 0.0D; | |
this.stage = 1; | |
this.speed = 0; | |
} | |
speed = 0; | |
} | |
public double getBaseMoveSpeed() | |
{ | |
double baseSpeed = 0.2873D; | |
if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) | |
{ | |
int amplifier = mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).getAmplifier(); | |
baseSpeed *= (1.0D + 0.2D * (amplifier + 1)); | |
} | |
return baseSpeed; | |
} | |
@EventTarget | |
private void onReceive(PacketSendEvent event) { | |
if(this.NCPBow.getValue()) { | |
C03PacketPlayer p = (C03PacketPlayer) event.getPacket(); | |
p.pitch = 50; | |
event.setPacket(p); | |
} | |
} | |
@EventTarget | |
private void onUpdate(UpdateEvent event) | |
{ | |
boolean speedy = mc.thePlayer.isPotionActive(Potion.moveSpeed); | |
double xDist = mc.thePlayer.posX - mc.thePlayer.prevPosX; | |
double zDist = mc.thePlayer.posZ - mc.thePlayer.prevPosZ; | |
this.lastDist = Math.sqrt(xDist * xDist + zDist * zDist); | |
} | |
public int packetDelay; | |
@EventTarget(3) | |
public void onSendPacket(PacketSendEvent event) { | |
if (this.hypixel.getValue()) | |
if ((!event.isCancelled()) && | |
((event.getPacket() instanceof C03PacketPlayer))) { | |
C03PacketPlayer packet = (C03PacketPlayer) event.getPacket(); | |
if (mc.thePlayer.ticksExisted % 2 == 0) { | |
packet.y += Math.pow(10.0D, -7.0D) ; | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.STOP_SPRINTING)); | |
packet.field_149474_g = (!this.nextTick); | |
event.setPacket(packet); | |
mc.thePlayer.onGround = true; | |
mc.thePlayer.setSprinting(true); | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()*1.05); | |
mc.timer.timerSpeed = 1.3f; | |
} | |
if(Neptune.getValue()) { | |
if(mc.thePlayer.onGround){ | |
this.speed = mc.thePlayer.posY; | |
Main.getMain.cmdManager.sendChatMessage("test"); | |
} | |
mc.thePlayer.motionY = 0; | |
if ((!event.isCancelled()) && | |
((event.getPacket() instanceof C03PacketPlayer))) { | |
C03PacketPlayer packet = (C03PacketPlayer) event.getPacket(); | |
if (mc.thePlayer.ticksExisted % 2 == 0) { | |
packet.y += Math.pow(10.0D, -7.0D); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
// mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)); | |
packet.field_149474_g = (!this.nextTick); | |
event.setPacket(packet); | |
// mc.thePlayer.onGround = true; | |
// mc.thePlayer.setSprinting(true); | |
if (mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed || mc.gameSettings.keyBindRight.pressed || mc.gameSettings.keyBindLeft.pressed) { | |
mc.thePlayer.setSpeed(0.5); | |
} else { | |
mc.thePlayer.setSpeed(0); | |
} | |
if (mc.gameSettings.keyBindJump.pressed && speed > mc.thePlayer.posY) { | |
mc.thePlayer.motionY += 1; | |
} | |
if (mc.gameSettings.keyBindSneak.pressed) { | |
mc.thePlayer.motionY -= 0.4; | |
} | |
} | |
} | |
} | |
/*/ | |
if(mc.thePlayer.onGround){ | |
if(mc.thePlayer.hurtTime > 0) { | |
mc.thePlayer.motionY = 0.42; | |
// mc.thePlayer.setSpeed(5); | |
airTicks = 5; | |
mc.timer.timerSpeed = 0.5f; | |
this.rejoin = false; | |
} | |
}else{ | |
if(mc.thePlayer.hurtTime > 0) { | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.jump(); | |
}else if(mc.thePlayer.motionY < 0.1111111 || this.rejoin){ | |
airTicks++; | |
this.rejoin = true; | |
//mc.thePlayer.jump(); | |
mc.thePlayer.motionY =0.2222 + airTicks * 0.11; | |
// mc.thePlayer.setSpeed(5); | |
; | |
if (airTicks > 2) { | |
airTicks = -2; | |
} | |
} | |
} | |
} | |
/*/ | |
// mc.thePlayer.isChild() = true; | |
/*/ | |
/*/ | |
/*/ | |
if(this.shouldreset) { | |
//DAMAGE start | |
if (mc.thePlayer.onGround) { | |
mc.timer.timerSpeed = 2f; | |
airTicks =5; | |
mc.thePlayer.motionY = 0.42; | |
this.nextTick = true; | |
if (mc.thePlayer.hurtResistantTime > 5) { | |
//Abfrage ob Damage klappt | |
this.shouldreset = false; | |
mc.thePlayer.motionY = 0; | |
} | |
} else { | |
if (this.nextTick) { | |
if (mc.thePlayer.motionY < 0) { | |
nextTick = false; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY+3,mc.thePlayer.posZ,false)); | |
} | |
} | |
} | |
//Damage end | |
}else { | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.motionY = 0.25; | |
} | |
mc.timer.timerSpeed = 0.5f; | |
//VERZWEIFLUNG | |
// mc.thePlayer.motionY = 0.0101 + airTicks * 0.05; | |
airTicks++; | |
if (airTicks > 4) { | |
airTicks = 0; | |
} | |
} | |
/*/ | |
/*/ | |
if(mc.thePlayer.onGround){ | |
if(mc.thePlayer.hurtResistantTime > 15){ | |
mc.thePlayer.motionY = 0.3; | |
airTicks = 0; | |
} | |
}else{ | |
if(mc.thePlayer.hurtResistantTime > 15){ | |
airTicks++; | |
mc.thePlayer.motionY = 0.3- airTicks * 0.05; | |
if(airTicks > 5){ | |
airTicks = 0; | |
} | |
// mc.thePlayer.setSpeed(5); | |
mc.timer.timerSpeed = 0.5f; | |
} | |
/*/ | |
//OWNACFLY | |
public double speed = 0; | |
public boolean disabling= true; | |
public BlockPos posToGo = new BlockPos(0,0,0); | |
public void onUpdate() { | |
if(false) { | |
if (mc.thePlayer.onGround) { | |
this.directionToFly = (float) mc.thePlayer.posY; | |
} | |
Main.getMain.cmdManager.sendChatMessage(directionToFly - mc.thePlayer.posY + ""); | |
if (directionToFly - mc.thePlayer.posY > 4) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)); | |
Main.getMain.cmdManager.sendChatMessage("test"); | |
} | |
if (mc.thePlayer.hurtResistantTime > 0) { | |
mc.thePlayer.setPosition(mc.thePlayer.posX, directionToFly + 1, mc.thePlayer.posZ); | |
mc.thePlayer.motionY = -1; | |
if (mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindLeft.pressed || mc.gameSettings.keyBindRight.pressed || mc.gameSettings.keyBindBack.pressed) { | |
mc.thePlayer.setSpeed(2); | |
if (mc.gameSettings.keyBindSprint.pressed) { | |
mc.thePlayer.setSpeed(4); | |
} | |
} else { | |
mc.thePlayer.setSpeed(0); | |
} | |
if (mc.gameSettings.keyBindJump.pressed) { | |
directionToFly += 0.4; | |
} | |
if (mc.gameSettings.keyBindSneak.pressed) { | |
directionToFly -= 0.4; | |
} | |
} | |
} | |
if(this.Cobra.getValue()) { | |
double blocks = 9; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x), new Random().nextInt(360), mc.thePlayer.rotationPitch, true)); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook((mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z)),Integer.MAX_VALUE, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),new Random().nextInt(360), mc.thePlayer.rotationPitch, false)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook((mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z)),-Integer.MAX_VALUE, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),new Random().nextInt(360), mc.thePlayer.rotationPitch, false)); | |
// oldpacket.y +=2; | |
//mc.thePlayer.setSpeed(1); | |
// mc.timer.timerSpeed = 0.5f; | |
mc.thePlayer.motionY = 0; | |
} | |
if(this.NCPBow.getValue()){ | |
if(mc.thePlayer.onGround){ | |
speed = 0; | |
} | |
if(mc.thePlayer.hurtTime > 9){ | |
// mc.thePlayer.motionY = 0.32; | |
speed ++; | |
} | |
if(mc.thePlayer.hurtResistantTime > 10 &&!mc.thePlayer.onGround){ | |
MovementInput movementInput = mc.thePlayer.movementInput; | |
float yaw = Minecraft.getMinecraft().thePlayer.rotationYaw; | |
float strafe = movementInput.moveStrafe; | |
double mx = Math.cos(Math.toRadians(yaw + 90.0F)); | |
double mz = Math.sin(Math.toRadians(yaw + 90.0F)); | |
int speed = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, mc.thePlayer.getCurrentEquippedItem()); | |
if(speed == 00){ | |
mc.thePlayer.setSpeed(0.7); | |
} | |
} | |
mc.timer.timerSpeed = mc.thePlayer.motionY > 0 ? 0.2f: 0.1f; | |
ItemStack stack = mc.thePlayer.getCurrentEquippedItem(); | |
if ((stack != null) && ((stack.getItem() instanceof ItemBow))) | |
{ | |
this.airTicks += 1; | |
if (this.airTicks >= 4) | |
{ | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.jump(); | |
}else{ | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ), EnumFacing.DOWN)); | |
this.airTicks = 0; | |
} | |
else | |
{ | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())); | |
} | |
} | |
} | |
// mc.thePlayer.sleeping = true; | |
// mc.thePlayer.motionY = 0.013; | |
/*/ | |
if (mc.thePlayer.hurtTime > 0 && this.disabling) { | |
if(!mc.thePlayer.onGround) { | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * 1.3); | |
if (mc.thePlayer.getSpeed() > 1.25) { | |
mc.thePlayer.setSpeed(1.25); | |
this.disabling = false; | |
} | |
this.speed = mc.thePlayer.getSpeed(); | |
mc.thePlayer.motionY += 0.013; | |
}else{ | |
mc.thePlayer.jump(); | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * 1.1); | |
} | |
}else{ | |
// mc.thePlayer.motionY =- 0.013; | |
if(speed > 0.2) { | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.jump(); | |
} | |
mc.thePlayer.setSpeed(speed); | |
} | |
speed /= 1.02; | |
} | |
/*/ | |
/*/ | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockIce || mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockPackedIce) { | |
mc.thePlayer.motionX *= 1.2; | |
mc.thePlayer.motionZ *= 1.2; | |
this.nextTick = ! this.nextTick; | |
if(this.nextTick) { | |
mc.thePlayer.setSpeed((mc.thePlayer.getSpeed() * -1) -0.03); | |
}else{ | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()+0.03); | |
} | |
if (mc.thePlayer.getSpeed() > 1.2) { | |
mc.thePlayer.setSpeed(1.2); | |
this.disabling = false; | |
} | |
if (!this.disabling) { | |
mc.thePlayer.setSpeed(1.15); | |
} | |
this.speed = 0; | |
double blocks = mc.thePlayer.getSpeed(); | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
this.speed = mc.thePlayer.getSpeed(); | |
Block b = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY-1, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x))).getBlock(); | |
if(!((b instanceof BlockPackedIce) && !((b instanceof BlockIce)))){ | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
} | |
} | |
}else{ | |
if(speed > 0.2){ | |
if(!mc.thePlayer.onGround){ | |
mc.thePlayer.motionY += 0.013; | |
} | |
mc.thePlayer.setSpeed(speed); | |
speed /= 1.02; | |
} | |
if(mc.thePlayer.isCollidedHorizontally){ | |
speed = 0; | |
} | |
} | |
/*/ | |
/*/ | |
if(speed < mc.thePlayer.getSpeed()) { | |
speed = mc.thePlayer.getSpeed()+0.6; | |
}else{ | |
if(!mc.thePlayer.onGround) { | |
mc.thePlayer.setSpeed(speed); | |
speed /= 1.02; | |
} | |
} | |
mc.thePlayer.motionY += 0.013; | |
/*/ | |
// Main.getMain.cmdManager.sendChatMessage( mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ)).getBlock()+""); | |
if(this.AACWallAdvanced.getValue()) { | |
if (!mc.thePlayer.onGround) { | |
if(airTicks < 2) { | |
mc.thePlayer.motionY = 0; | |
}else{ | |
mc.thePlayer.motionY = -0.1; | |
} | |
airTicks++; | |
}else{ | |
airTicks = 0; | |
} | |
if(mc.gameSettings.keyBindAttack.pressed){ | |
int canstart = 0; | |
for(int i = -6;i < 3; ++i ){ | |
Block block = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX+i,mc.thePlayer.posY-1,mc.thePlayer.posZ)).getBlock(); | |
Block block2 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX+i,mc.thePlayer.posY,mc.thePlayer.posZ)).getBlock(); | |
Block block3 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX+i,mc.thePlayer.posY+1,mc.thePlayer.posZ)).getBlock(); | |
Block block4 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX+i,mc.thePlayer.posY+2,mc.thePlayer.posZ)).getBlock(); | |
if(block != Blocks.air){ | |
if(block2 == Blocks.air){ | |
if(block3 == Blocks.air){ | |
if(block4 != Blocks.air){ | |
canstart ++; | |
} | |
} | |
} | |
} | |
} | |
for(int i = -6;i < 3; ++i ){ | |
Block block = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY-1,mc.thePlayer.posZ+i)).getBlock(); | |
Block block2 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ+i)).getBlock(); | |
Block block3 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+1,mc.thePlayer.posZ+i)).getBlock(); | |
Block block4 = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+2,mc.thePlayer.posZ+i)).getBlock(); | |
if(block != Blocks.air){ | |
if(block2 == Blocks.air){ | |
if(block3 == Blocks.air){ | |
if(block4 != Blocks.air){ | |
canstart ++; | |
} | |
} | |
} | |
} | |
} | |
if(canstart >= 10) { | |
shouldreset = false; | |
mc.gameSettings.keyBindForward.pressed = false; | |
}else{ | |
Main.getMain.cmdManager.sendChatMessage("§4Cant Start Here"); | |
} | |
} | |
if (this.disabling && !this.shouldreset) { | |
// mc.timer.timerSpeed = 1f; | |
//mc.thePlayer.rotationYaw = 90; | |
double rotation2 = mc.thePlayer.rotationYaw > 0 ? -mc.thePlayer.rotationYaw : mc.thePlayer.rotationYaw; | |
boolean reverse = mc.thePlayer.rotationYaw > 0; | |
double rotation = ((int) rotation2 % 360) * -1; | |
double yaw = 0; | |
if (rotation <= 45 || rotation > 315) { | |
yaw = 0; | |
} | |
if (rotation > 45 && rotation < 135) { | |
yaw = 90; | |
} | |
if (rotation >= 135 && rotation < 225) { | |
yaw = 180; | |
} | |
if (rotation >= 225 && rotation <= 315) { | |
yaw = 270; | |
} | |
if (!reverse) { | |
yaw *= -1; | |
} | |
mc.gameSettings.keyBindForward.pressed = false; | |
mc.thePlayer.rotationYaw = (float) yaw; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() + 0.17); | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * 1.8); | |
Main.getMain.cmdManager.sendChatMessage("" + ((mc.thePlayer.getSpeed() > 10 ? 10 : mc.thePlayer.getSpeed()) / 10.0f) * 100 + " %"); | |
this.speed = mc.thePlayer.getSpeed(); | |
this.nextTick = !this.nextTick; | |
if (this.nextTick) { | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * -1); | |
} else { | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
} | |
if (mc.thePlayer.getSpeed() > 10) { | |
this.disabling = false; | |
} | |
} else { | |
if (!this.shouldreset) { | |
// mc.timer.timerSpeed = 0.05F; | |
// SunAPI.sendChatMessage("§4 TIMER SPEED 0.05 REAL SPEED IS 20 TIME FASTER!"); | |
mc.thePlayer.setSpeed(speed); | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
} | |
speed /= 1.035; | |
mc.thePlayer.rotationYaw = this.directionToFly; | |
} | |
} | |
if (this.Cubecraft.getValue()) { | |
mc.timer.timerSpeed = 0.3f; | |
mc.thePlayer.motionY += 0.05; | |
// mc.thePlayer.addSpeed(0.05); | |
} | |
} | |
if(this.AACWall.getValue()) { | |
if (!mc.thePlayer.onGround) { | |
mc.thePlayer.motionY += 0.013; | |
} | |
if (this.disabling) { | |
// mc.timer.timerSpeed = 1f; | |
//mc.thePlayer.rotationYaw = 90; | |
double rotation2 = mc.thePlayer.rotationYaw > 0 ? -mc.thePlayer.rotationYaw : mc.thePlayer.rotationYaw; | |
boolean reverse = mc.thePlayer.rotationYaw > 0; | |
double rotation = ((int) rotation2 % 360) * -1; | |
double yaw = 0; | |
if (rotation <= 45 || rotation > 315) { | |
yaw = 0; | |
} | |
if (rotation > 45 && rotation < 135) { | |
yaw = 90; | |
} | |
if (rotation >= 135 && rotation < 225) { | |
yaw = 180; | |
} | |
if (rotation >= 225 && rotation <= 315) { | |
yaw = 270; | |
} | |
if (!reverse) { | |
yaw *= -1; | |
} | |
mc.thePlayer.rotationYaw = (float) yaw; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() + 0.17); | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * 1.8); | |
Main.getMain.cmdManager.sendChatMessage("" + ((mc.thePlayer.getSpeed() > 10 ? 10 : mc.thePlayer.getSpeed()) / 10.0f) * 100 + " %"); | |
this.speed = mc.thePlayer.getSpeed(); | |
this.nextTick = !this.nextTick; | |
if (this.nextTick) { | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * -1); | |
} else { | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
} | |
if (mc.thePlayer.getSpeed() > 10) { | |
this.disabling = false; | |
} | |
} else { | |
// mc.timer.timerSpeed = 0.050.05F; | |
// SunAPI.sendChatMessage("§4 TIMER SPEED 0.05 REAL SPEED IS 20 TIME FASTER!"); | |
mc.thePlayer.setSpeed(speed); | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
} | |
speed /= 1.035; | |
} | |
} | |
if (this.Cubecraft.getValue()) { | |
mc.timer.timerSpeed = 0.3f; | |
mc.thePlayer.motionY +=0.055; | |
} | |
if(this.AACVelocity.getValue()) { | |
if (mc.thePlayer.onGround) { | |
this.rejoin = false; | |
this.nextTick = true; | |
mc.thePlayer.jump(); | |
// mc.thePlayer.setSpeed(0.3); | |
this.airTicks = 0; | |
} | |
if (mc.thePlayer.fallDistance > 0.5) { | |
this.rejoin = true; | |
} | |
if (this.rejoin) { | |
this.nextTick = !this.nextTick; | |
mc.thePlayer.setSpeed(nextTick ? 0.75 : 0); | |
this.airTicks++; | |
mc.thePlayer.motionY += 0.013; | |
mc.timer.timerSpeed = 0.2f; | |
} else { | |
if (!mc.thePlayer.onGround) { | |
if (this.nextTick) { | |
mc.thePlayer.motionX *= -1; | |
mc.thePlayer.motionZ *= -1; | |
this.nextTick = false; | |
// this.rejoin = true; | |
} | |
} | |
} | |
} | |
if(this.AAC.getValue()) { | |
if(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ)).getBlock() instanceof BlockFence){ | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.motionY = 8; | |
return; | |
} | |
} | |
if(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY-1,mc.thePlayer.posZ)).getBlock() instanceof BlockSlime){ | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.motionY = 1.4; | |
return; | |
} | |
} | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.setSprinting(true); | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionX *= 1.05; | |
mc.thePlayer.motionZ *= 1.05; | |
airtime = 0; | |
mc.thePlayer.motionY = 1; | |
} else { | |
mc.thePlayer.motionY += 0.013; | |
mc.timer.timerSpeed = 1f; | |
if (mc.thePlayer.fallDistance > 5.46) { | |
mc.thePlayer.motionY = 0; | |
mc.thePlayer.setSpeed(5); | |
} | |
nextTick = !this.nextTick; | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import java.util.List; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.MoveEvent; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.S08PacketPlayerPosLook; | |
import net.minecraft.potion.Potion; | |
import net.minecraft.util.AxisAlignedBB; | |
import org.lwjgl.opengl.Display; | |
public class Longjump extends Module { | |
private ValueBoolean NoDMG; | |
private ValueBoolean Glide; | |
private ValueBoolean Cubecraft; | |
private ValueBoolean TAC; | |
private boolean cancel; | |
private boolean speedTick; | |
private float speedTimer = (float) 1.35; | |
private int timer; | |
public static boolean yport; | |
private double save; | |
public static boolean canStep; | |
private boolean stop; | |
public static boolean boost = false; | |
private float ground = 0.0F; | |
private boolean shouldreset; | |
private int timerDelay; | |
private float headStart; | |
private int airTicks; | |
private int groundTicks; | |
private int packets; | |
private boolean groundBoolean; | |
private int state; | |
private boolean isSpeeding; | |
private double lastHDistance; | |
public static double yOffset; | |
private int stage; | |
private double moveSpeed; | |
private double lastDist; | |
private ValueBoolean CubecraftGlide; | |
public Longjump() { | |
super("LongJump", Category.MOVEMENT,0); | |
addValue(this.Cubecraft = new ValueBoolean("Cubecraft", false)); | |
addValue(this.CubecraftGlide = new ValueBoolean("CubecraftGlide", false)); | |
addValue(this.Glide = new ValueBoolean("Glide", false)); | |
} | |
@EventTarget | |
private void onUpdate(UpdateEvent event) { | |
boolean speedy = this.mc.thePlayer.isPotionActive(Potion.moveSpeed); | |
double xDist = this.mc.thePlayer.posX - this.mc.thePlayer.prevPosX; | |
double zDist = this.mc.thePlayer.posZ - this.mc.thePlayer.prevPosZ; | |
this.lastDist = Math.sqrt(xDist * xDist + zDist * zDist); | |
} | |
@Override | |
public void onEnable(){ | |
try{ | |
mc.timer.timerSpeed = 1; | |
this.isSpeeding = false; | |
this.moveSpeed = (mc.thePlayer == null ? 0.2873D : getBaseMoveSpeed()); | |
if(this.Cubecraft.getValue()){ | |
mc.thePlayer.motionX = 0; | |
mc.thePlayer.motionZ = 0; | |
} | |
this.isSpeeding = false; | |
// SunRiseAPI.sendChatMessage("No longer requires horizontal collision | |
// to bypass."); | |
this.stop = true; | |
boost = true; | |
this.stage = 1; | |
time.reset(); | |
// EventManager.register(this); | |
}catch(Exception e){ | |
} | |
super.onEnable(); | |
} | |
@Override | |
public void onDisable(){ | |
mc.timer.timerSpeed = 1; | |
super.onDisable(); | |
} | |
public TimeHelper time = new TimeHelper(); | |
private boolean jumped; | |
public void setMoveSpeed(MoveEvent event, final double speed) { | |
double forward = mc.thePlayer.movementInput.moveForward; | |
double strafe = mc.thePlayer.movementInput.moveStrafe; | |
float yaw = mc.thePlayer.rotationYaw; | |
if (forward == 0.0 && strafe == 0.0) { | |
event.setX(0.0); | |
event.setZ(0.0); | |
} | |
else { | |
if (forward != 0.0) { | |
if (strafe > 0.0) { | |
yaw += ((forward > 0.0) ? -45 : 45); | |
} | |
else if (strafe < 0.0) { | |
yaw += ((forward > 0.0) ? 45 : -45); | |
} | |
strafe = 0.0; | |
if (forward > 0.0) { | |
forward = 1.0; | |
} | |
else if (forward < 0.0) { | |
forward = -1.0; | |
} | |
} | |
event.setX(forward * speed * Math.cos(Math.toRadians(yaw + 90.0f)) + strafe * speed * Math.sin(Math.toRadians(yaw + 90.0f))); | |
event.setZ(forward * speed * Math.sin(Math.toRadians(yaw + 90.0f)) - strafe * speed * Math.cos(Math.toRadians(yaw + 90.0f))); | |
} | |
} | |
private double getBaseMoveSpeed() { | |
double baseSpeed = 0.2873D; | |
if (this.mc.thePlayer.isPotionActive(Potion.moveSpeed)) { | |
int amplifier = this.mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).getAmplifier(); | |
baseSpeed *= (1.0D + 0.2D * (amplifier + 1)); | |
} | |
return baseSpeed; | |
} | |
@EventTarget | |
public void onPacketReceiveEvent(PacketReceiveEvent e){ | |
if(e.getPacket() instanceof S08PacketPlayerPosLook){ | |
this.toggleModule(); | |
} | |
} | |
@EventTarget | |
public void onMove2(MoveEvent event) { | |
if(this.CubecraftGlide.getValue()){ | |
this.Cubecraft.setValue(true); | |
} | |
if (this.Cubecraft.getValue() && this.getState()) { | |
if(this.CubecraftGlide.getValue()){ | |
event.y /= 200; | |
mc.thePlayer.motionY /= 200; | |
}else{ | |
mc.timer.timerSpeed = 0.85f; | |
} | |
if (time.hasReached((this.CubecraftGlide.getValue() ? 200 : 200)) && !mc.thePlayer.isCollidedHorizontally) { | |
if (mc.thePlayer.moveForward == 0.0f && mc.thePlayer.moveStrafing == 0.0f) { | |
this.moveSpeed = this.getBaseMoveSpeed(); | |
} | |
if (this.stage == 1 && mc.thePlayer.isCollidedVertically | |
&& (mc.thePlayer.moveForward != 0.0f || mc.thePlayer.moveStrafing != 0.0f)) { | |
this.moveSpeed = 1 + this.getBaseMoveSpeed(); | |
} else if (this.stage == 2 && mc.thePlayer.isCollidedVertically | |
&& (mc.thePlayer.moveForward != 0.0f || mc.thePlayer.moveStrafing != 0.0f)) { | |
event.setY(mc.thePlayer.motionY = 0.43); | |
this.jumped = true; | |
this.moveSpeed *= 2.149; | |
} else if (this.stage == 3) { | |
final double difference = 0.66 * (this.lastDist - this.getBaseMoveSpeed()); | |
this.moveSpeed = this.lastDist - difference; | |
} else { | |
final List collidingList = mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, | |
mc.thePlayer.boundingBox.offset(0.0, mc.thePlayer.motionY, 0.0)); | |
if ((collidingList.size() > 0 || mc.thePlayer.isCollidedVertically) && this.stage > 0) { | |
if (1.5 * this.getBaseMoveSpeed() > this.moveSpeed) { | |
this.stage = 0; | |
} else { | |
this.stage = ((mc.thePlayer.moveForward != 0.0f | |
|| mc.thePlayer.moveStrafing != 0.0f) ? 1 : 0); | |
} | |
} | |
this.moveSpeed = this.lastDist - this.lastDist / 159.0; | |
} | |
this.moveSpeed = Math.max(this.moveSpeed, this.getBaseMoveSpeed()); | |
if (this.stage > 0) { | |
this.setMoveSpeed(event, this.moveSpeed); | |
} | |
if (mc.thePlayer.moveForward != 0.0f || mc.thePlayer.moveStrafing != 0.0f) { | |
++this.stage; | |
} | |
} else { | |
this.jumped = false; | |
mc.thePlayer.motionX /= 13; | |
mc.thePlayer.motionZ /= 13; | |
} | |
} | |
} | |
private double getDistance(EntityPlayer player, double distance) | |
{ | |
List<AxisAlignedBB> boundingBoxes = player.worldObj.getCollidingBoundingBoxes(mc.thePlayer,player.getEntityBoundingBox().addCoord(0.0D, -distance, 0.0D)); | |
if (boundingBoxes.isEmpty()) { | |
return 0.0D; | |
} | |
double y = 0.0D; | |
for (AxisAlignedBB boundingBox : boundingBoxes) { | |
if (boundingBox.maxY > y) { | |
y = boundingBox.maxY; | |
} | |
} | |
return player.posY - y; | |
} | |
public void updatePosition(double x, double y, double z) | |
{ | |
this.mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(x, y, z, this.mc.thePlayer.onGround)); | |
} | |
public void onUpdate(){ | |
if(this.Cubecraft.getValue()){ | |
return; | |
} | |
if(mc.thePlayer.moveForward == 0 && mc.thePlayer.moveStrafing == 0){ | |
mc.thePlayer.motionX = 0; | |
mc.thePlayer.motionZ = 0; | |
} | |
if(mc.gameSettings.keyBindForward.pressed && !mc.gameSettings.keyBindLeft.pressed && !mc.gameSettings.keyBindRight.pressed && !mc.gameSettings.keyBindBack.pressed){ | |
mc.thePlayer.setSprinting(false); | |
if ((this.mc.theWorld != null) && (this.mc.thePlayer != null) && | |
(this.mc.thePlayer.onGround) && (!this.mc.thePlayer.isDead)) { | |
this.lastHDistance = 0.0D; | |
} | |
float direction = this.mc.thePlayer.rotationYaw + (this.mc.thePlayer.moveForward < 0 ? 180 : 0) + (this.mc.thePlayer.moveStrafing > 0.0F ? -90.0F * (this.mc.thePlayer.moveForward > 0.0F ? 0.5F : this.mc.thePlayer.moveForward < 0.0F ? -0.5F : 1.0F) : 0.0F) - (this.mc.thePlayer.moveStrafing < 0.0F ? -90.0F * (this.mc.thePlayer.moveForward > 0.0F ? 0.5F : this.mc.thePlayer.moveForward < 0.0F ? -0.5F : 1.0F) : 0.0F); | |
float xDir = (float)Math.cos((direction + 90.0F) * 3.141592653589793D / 180.0D); | |
float zDir = (float)Math.sin((direction + 90.0F) * 3.141592653589793D / 180.0D); | |
if (!this.mc.thePlayer.isCollidedVertically) | |
{ | |
this.airTicks += 1; | |
this.isSpeeding = true; | |
if (this.mc.gameSettings.keyBindSneak.pressed) { | |
this.mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(0.0D, 2.147483647E9D, 0.0D, false)); | |
} | |
this.groundTicks = 0; | |
if (!this.mc.thePlayer.isCollidedVertically) | |
{ | |
if (this.mc.thePlayer.motionY == -0.07190068807140403D) { | |
this.mc.thePlayer.motionY *= 0.3499999940395355D; | |
} | |
if (this.mc.thePlayer.motionY == -0.10306193759436909D) { | |
this.mc.thePlayer.motionY *= 0.550000011920929D; | |
} | |
if (this.mc.thePlayer.motionY == -0.13395038817442878D) { | |
this.mc.thePlayer.motionY *= 0.6700000166893005D; | |
} | |
if (this.mc.thePlayer.motionY == -0.16635183030382D) { | |
this.mc.thePlayer.motionY *= 0.6899999976158142D; | |
} | |
if (this.mc.thePlayer.motionY == -0.19088711097794803D) { | |
this.mc.thePlayer.motionY *= 0.7099999785423279D; | |
} | |
if (this.mc.thePlayer.motionY == -0.21121925191528862D) { | |
this.mc.thePlayer.motionY *= 0.20000000298023224D; | |
} | |
if (this.mc.thePlayer.motionY == -0.11979897632390576D) { | |
this.mc.thePlayer.motionY *= 0.9300000071525574D; | |
} | |
if (this.mc.thePlayer.motionY == -0.18758479151225355D) { | |
this.mc.thePlayer.motionY *= 0.7200000286102295D; | |
} | |
if (this.mc.thePlayer.motionY == -0.21075983825251726D) { | |
this.mc.thePlayer.motionY *= 0.7599999904632568D; | |
} | |
if ((this.Glide.getValue())) | |
{ | |
//SunRiseAPI.sendChatMessage(mc.timer.timerSpeed + ""); | |
if (this.mc.thePlayer.motionY == -0.23537393014173347D) { | |
this.mc.thePlayer.motionY *= 0.029999999329447746D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08531999505205401D) { | |
this.mc.thePlayer.motionY *= -0.5D; | |
} | |
if (this.mc.thePlayer.motionY == -0.03659320313669756D) { | |
this.mc.thePlayer.motionY *= -0.10000000149011612D; | |
} | |
if (this.mc.thePlayer.motionY == -0.07481386749524899D) { | |
this.mc.thePlayer.motionY *= -0.07000000029802322D; | |
} | |
if (this.mc.thePlayer.motionY == -0.0732677700939672D) { | |
this.mc.thePlayer.motionY *= -0.05000000074505806D; | |
} | |
if (this.mc.thePlayer.motionY == -0.07480988066790395D) { | |
this.mc.thePlayer.motionY *= -0.03999999910593033D; | |
} | |
if (this.mc.thePlayer.motionY == -0.0784000015258789D) { | |
this.mc.thePlayer.motionY *= 0.10000000149011612D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08608320193943977D) { | |
this.mc.thePlayer.motionY *= 0.10000000149011612D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08683615560584318D) { | |
this.mc.thePlayer.motionY *= 0.05000000074505806D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08265497329678266D) { | |
this.mc.thePlayer.motionY *= 0.05000000074505806D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08245009535659828D) { | |
this.mc.thePlayer.motionY *= 0.05000000074505806D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08244005633718426D) { | |
this.mc.thePlayer.motionY = -0.08243956442521608D; | |
} | |
if (this.mc.thePlayer.motionY == -0.08243956442521608D) { | |
this.mc.thePlayer.motionY = -0.08244005590677261D; | |
} | |
if ((this.mc.thePlayer.motionY > -0.1D) && (this.mc.thePlayer.motionY < -0.08D) && (!this.mc.thePlayer.onGround) && (this.mc.gameSettings.keyBindForward.pressed)) { | |
this.mc.thePlayer.motionY = -9.999999747378752E-5D; | |
} | |
} | |
else | |
{ | |
if ((this.mc.thePlayer.motionY < -0.2D) && (this.mc.thePlayer.motionY > -0.24D)) { | |
this.mc.thePlayer.motionY *= 0.7D; | |
} | |
if ((this.mc.thePlayer.motionY < -0.25D) && (this.mc.thePlayer.motionY > -0.32D)) { | |
this.mc.thePlayer.motionY *= 0.8D; | |
} | |
if ((this.mc.thePlayer.motionY < -0.35D) && (this.mc.thePlayer.motionY > -0.8D)) { | |
this.mc.thePlayer.motionY *= 0.98D; | |
} | |
if ((this.mc.thePlayer.motionY < -0.8D) && (this.mc.thePlayer.motionY > -1.6D)) { | |
this.mc.thePlayer.motionY *= 0.99D; | |
} | |
} | |
} | |
if (this.headStart > 0.0F) {} | |
mc.timer.timerSpeed = 0.85F; | |
double[] speedVals = { 0.420606D, 0.417924D, 0.415258D, 0.412609D, 0.409977D, 0.407361D, 0.404761D, 0.402178D, 0.399611D, 0.39706D, 0.394525D, 0.392D, 0.3894D, 0.38644D, 0.383655D, 0.381105D, 0.37867D, 0.37625D, 0.37384D, 0.37145D, 0.369D, 0.3666D, 0.3642D, 0.3618D, 0.35945D, 0.357D, 0.354D, 0.351D, 0.348D, 0.345D, 0.342D, 0.339D, 0.336D, 0.333D, 0.33D, 0.327D, 0.324D, 0.321D, 0.318D, 0.315D, 0.312D, 0.309D, 0.307D, 0.305D, 0.303D, 0.3D, 0.297D, 0.295D, 0.293D, 0.291D, 0.289D, 0.287D, 0.285D, 0.283D, 0.281D, 0.279D, 0.277D, 0.275D, 0.273D, 0.271D, 0.269D, 0.267D, 0.265D, 0.263D, 0.261D, 0.259D, 0.257D, 0.255D, 0.253D, 0.251D, 0.249D, 0.247D, 0.245D, 0.243D, 0.241D, 0.239D, 0.237D }; | |
if (this.mc.gameSettings.keyBindForward.pressed) | |
{ | |
try | |
{ | |
this.mc.thePlayer.motionX = (xDir * speedVals[(this.airTicks - 1)] * 3.0D); | |
this.mc.thePlayer.motionZ = (zDir * speedVals[(this.airTicks - 1)] * 3.0D); | |
} | |
catch (ArrayIndexOutOfBoundsException localArrayIndexOutOfBoundsException) {} | |
} | |
else | |
{ | |
this.mc.thePlayer.motionX = 0.0D; | |
this.mc.thePlayer.motionZ = 0.0D; | |
} | |
} | |
else | |
{ | |
mc.timer.timerSpeed = 1.0F; | |
this.airTicks = 0; | |
this.groundTicks += 1; | |
this.headStart -= 1.0F; | |
this.mc.thePlayer.motionX /= 13.0D; | |
this.mc.thePlayer.motionZ /= 13.0D; | |
if (this.groundTicks == 1) | |
{ | |
updatePosition(this.mc.thePlayer.posX, this.mc.thePlayer.posY, this.mc.thePlayer.posZ); | |
updatePosition(this.mc.thePlayer.posX + 0.0624D, this.mc.thePlayer.posY, this.mc.thePlayer.posZ); | |
updatePosition(this.mc.thePlayer.posX, this.mc.thePlayer.posY + 0.419D, this.mc.thePlayer.posZ); | |
updatePosition(this.mc.thePlayer.posX + 0.0624D, this.mc.thePlayer.posY, this.mc.thePlayer.posZ); | |
updatePosition(this.mc.thePlayer.posX, this.mc.thePlayer.posY + 0.419D, this.mc.thePlayer.posZ); | |
} | |
if (this.groundTicks > 2) | |
{ | |
this.groundTicks = 0; | |
this.mc.thePlayer.motionX = (xDir * 0.3D); | |
this.mc.thePlayer.motionZ = (zDir * 0.3D); | |
this.mc.thePlayer.motionY = 0.42399999499320984D; | |
} | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.MoveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import net.minecraft.entity.Entity; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
public class NoFall extends Module { | |
public NoFall() { | |
super("NoFall", Category.MOVEMENT, 0); | |
// TODO Auto-generated constructor stub | |
} | |
@EventTarget | |
public void onMove(MoveEvent e){ | |
if(!mc.thePlayer.onGround) { | |
e.y = -999; | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventManager; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; | |
import net.minecraft.network.play.client.C0BPacketEntityAction; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import java.util.ArrayList; | |
public class NoSlowDown extends Module { | |
public static ValueBoolean AAC = new ValueBoolean("AAC", false); | |
public static ValueBoolean NCP = new ValueBoolean("NCP", false); | |
public static ValueBoolean AACLatest = new ValueBoolean("AACLatest", false); | |
public boolean nextTick; | |
public float prevRotation; | |
public TimeHelper t = new TimeHelper(); | |
public NoSlowDown() { | |
super("NoSlowDown",Category.PLAYER, 0); | |
addValue(AAC); | |
addValue(NCP); | |
addValue(AACLatest); | |
this.displayName = "No Slowdown"; | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniOneOfTwo(this,AAC,NCP)); | |
return minis; | |
} | |
@EventTarget | |
public void onEvent(UpdateEvent pre) | |
{ | |
if(pre.getState() == State.PRE){ | |
if(this.NCP.getValue() && mc.thePlayer.isBlocking()){ | |
mc.getNetHandler().addToSendQueue((Packet)new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); | |
mc.getNetHandler().addToSendQueue((Packet)new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
} | |
} | |
} | |
@EventTarget | |
public void onPost(UpdateEvent post) | |
{ | |
if(post.getState() == State.POST){ | |
if(this.NCP.getValue() && mc.thePlayer.isBlocking()){ | |
mc.getNetHandler().addToSendQueue((Packet)new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
mc.getNetHandler().addToSendQueue((Packet)new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); | |
} | |
} | |
} | |
public float getDiffrent(float f1, float f2){ | |
return (float) Math.sqrt((f1-f2)*(f1-f2)); | |
} | |
public void onUpdate(){ | |
if(this.AACLatest.getValue()) { | |
if(mc.thePlayer.isBlocking()){ | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.motionX /= 1.2; | |
mc.thePlayer.motionZ /= 1.2; | |
}else{ | |
mc.thePlayer.motionX /= 1.05; | |
mc.thePlayer.motionZ /= 1.05; | |
} | |
this.nextTick = ! this.nextTick; | |
if(this.nextTick){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, new BlockPos(-1,-1,-1), EnumFacing.fromAngle(-1.0D))); | |
}else{ | |
if(getDiffrent(mc.thePlayer.rotationYaw,prevRotation) < 10 ) { | |
if(t.hasReached(300)) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())); | |
} | |
}else{ | |
t.reset(); | |
} | |
} | |
//mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
this.prevRotation = mc.thePlayer.rotationYaw; | |
} | |
} | |
} | |
@EventTarget | |
public void onPacketSendEvent(PacketSendEvent e){ | |
if(this.AACLatest.getValue()) { | |
C03PacketPlayer p = (C03PacketPlayer) e.getPacket(); | |
//p.field_149474_g = false; | |
e.setPacket(p); | |
} | |
} | |
@EventTarget | |
public void onAAC(UpdateEvent event){ | |
if(mc.thePlayer.isEating()){ | |
// mc.thePlayer.motionX *= 0.65; | |
//mc.thePlayer.motionZ *= 0.65; | |
} | |
if( mc.thePlayer.isSneaking() && mc.thePlayer.onGround){ | |
} | |
if(this.AAC.getValue()){ | |
if(mc.thePlayer.isBlocking()){ | |
if(event.state == State.PRE){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, new BlockPos(-1,-1,-1), EnumFacing.fromAngle(-1.0D))); | |
} | |
if(event.state == State.POST){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())); | |
} | |
} | |
} | |
} | |
public void onEnable(){ | |
EventManager.register(this); | |
} | |
public void onDisable() | |
{ | |
EventManager.unregister(this); | |
mc.gameSettings.keyBindSneak.pressed = false; | |
mc.getNetHandler().addToSendQueue((Packet)new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import org.lwjgl.input.Keyboard; | |
public class SafeWalk extends Module { | |
public SafeWalk() { | |
super("SafeWalk", Category.MOVEMENT, Keyboard.KEY_Y); | |
this.displayName = "Safe Walk"; | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.EventSafeWalk; | |
import de.Client.Events.Events.MoveEvent; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniExtendedValueArray; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.MiniValueBooleanArray; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.BlockStairs; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.S08PacketPlayerPosLook; | |
import net.minecraft.potion.Potion; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumParticleTypes; | |
import net.minecraft.util.MathHelper; | |
import net.minecraft.util.MovementInput; | |
import optifine.MathUtils; | |
import org.lwjgl.Sys; | |
import org.newdawn.slick.font.effects.ConfigurableEffect; | |
import java.math.BigDecimal; | |
import java.math.RoundingMode; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.Random; | |
public class Speed extends Module { | |
public static ValueBoolean Bhop = new ValueBoolean("Bhop", true); | |
public static ValueBoolean Bhoplatest = new ValueBoolean("Bhoplatest", false); | |
public static ValueBoolean AACLowhop = new ValueBoolean("AACLowhop", false); | |
public static ValueBoolean AACSkipHop = new ValueBoolean("AACSkipHop", false); | |
public static ValueBoolean AACOnground = new ValueBoolean("AACOnground", false); | |
public static ValueBoolean AACYport = new ValueBoolean("AACYport", false); | |
public static ValueBoolean AACBhop = new ValueBoolean("AACBhop", false); | |
public static ValueBoolean AACVeloity = new ValueBoolean("AACVelocity", false); | |
public static ValueBoolean LowHop = new ValueBoolean("LHop", false); | |
public static ValueBoolean LowHop2 = new ValueBoolean("LHop2", false); | |
public static ValueBoolean yPort1 = new ValueBoolean("yPort", false); | |
public static ValueBoolean yPortlatest = new ValueBoolean("yPortlatest", false); | |
public static ValueBoolean Smooth = new ValueBoolean("Smooth", false); | |
public ValueBoolean oldNcp = new ValueBoolean("oldNcp",false); | |
private int motionDelay; | |
public static float modifier = 4.3F; | |
private int movement; | |
private TimeHelper time = new TimeHelper(); | |
private int kekticks; | |
private float height; | |
boolean move; | |
private boolean jumped; | |
boolean canChangeMotion; | |
public int bhop_ticks; | |
public double bhop_moveSpeed; | |
public double bhop_lastDist; | |
public int frame_motionticks; | |
public boolean frame_move; | |
public int boost_motionDelay; | |
public float boost_ground = 0.0F; | |
public static boolean mode_BHop2 = false; | |
private TimeHelper time2 = new TimeHelper(); | |
public static int BHop_Multiplier = 4; | |
private String mode; | |
public static ValueBoolean yPort; | |
private double speed; | |
private int level; | |
private boolean disabling; | |
public static double yOffset; | |
private boolean cancel; | |
private boolean speedTick; | |
private float speedTimer = (float) 1.35; | |
private int timer; | |
public static boolean yport; | |
public static int ticks; | |
public static double moveSpeed; | |
private double lastDist; | |
private double save; | |
public static boolean canStep; | |
public static boolean boost = false; | |
private float ground = 0.0F; | |
private boolean shouldreset; | |
private int timerDelay; | |
private float headStart; | |
private int airTicks; | |
private int groundTicks; | |
private int packets; | |
private boolean groundBoolean; | |
private int state; | |
private boolean isSpeeding; | |
private double lastHDistance; | |
public Speed() { | |
super("Speed", Category.MOVEMENT,0); | |
addValue(Bhop); | |
addValue(LowHop); | |
addValue(LowHop2); | |
addValue(yPort1); | |
addValue(Bhoplatest); | |
addValue(AACLowhop); | |
addValue(AACSkipHop); | |
addValue(AACVeloity); | |
addValue(AACOnground); | |
addValue(yPortlatest); | |
addValue(AACYport); | |
addValue(AACBhop); | |
addValue(this.oldNcp); | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
MiniExtendedValueArray miniExtendedValueArray; | |
ArrayList<MiniValueBooleanArray> arrays = new ArrayList<>(); | |
ArrayList<ValueBoolean> ncp = new ArrayList<>(); | |
ncp.add(Bhop); | |
ncp.add(LowHop); | |
ncp.add(LowHop2); | |
ncp.add(yPort1); | |
ncp.add(Bhoplatest); | |
arrays.add(new MiniValueBooleanArray(ncp,"NCP")); | |
ArrayList<ValueBoolean> aac = new ArrayList<>(); | |
aac.add(AACLowhop); | |
aac.add(AACSkipHop); | |
aac.add(AACVeloity); | |
arrays.add(new MiniValueBooleanArray(aac,"AAC")); | |
miniExtendedValueArray = new MiniExtendedValueArray(this,arrays); | |
minis.add(miniExtendedValueArray); | |
minis.add(new MiniValueBooleanToggleSimple(this,Smooth)); | |
return minis; | |
} | |
@EventTarget | |
public void onEnable() { | |
speed = 0; | |
cancel = true; | |
this.move = true; | |
this.canChangeMotion = false; | |
if(this.AACLowhop.getValue()){ | |
cancel = true; | |
} | |
if(this.AACSkipHop.getValue()){ | |
ticks = 0; | |
} | |
// SunRiseAPI.sendChatMessage("No longer requires horizontal collision to bypass."); | |
boolean stop = true; | |
boost = true; | |
this.bhop_lastDist = 0; | |
double ticks = 1; | |
this.moveSpeed = (mc.thePlayer == null ? 0.2873D | |
: getBaseMoveSpeed()); | |
if(this.Bhoplatest.getValue()) { | |
if (mc.thePlayer != null) { | |
moveSpeed = getBaseMoveSpeed(); | |
} | |
lastDist = 0.0D; | |
this.ticks = 2; | |
} | |
super.onEnable(); | |
} | |
@EventTarget | |
public void onDisable() { | |
mc.timer.timerSpeed = 1.0F; | |
// mc.gameSettings.viewBobbing = true; | |
boost = false; | |
super.onDisable(); | |
} | |
public void onRender() { | |
if (this.Smooth.getValue() && this.getState()) { | |
if (!mc.thePlayer.onGround && !(mc.thePlayer.fallDistance > 1) | |
&& !mc.thePlayer.isCollidedHorizontally) { | |
mc.thePlayer.posY = mc.thePlayer.lastTickPosY; | |
mc.thePlayer.fallDistance = 0; | |
} | |
} | |
} | |
@EventTarget | |
private void onUpdate(UpdateEvent event) { | |
double xDist = mc.thePlayer.posX - mc.thePlayer.prevPosX; | |
double zDist = mc.thePlayer.posZ - mc.thePlayer.prevPosZ; | |
this.lastDist = Math.sqrt(xDist * xDist + zDist * zDist); | |
if(event.getState() == State.PRE){ | |
if(!mc.thePlayer.onGround && this.yPort1.getValue() && !mc.thePlayer.isCollidedHorizontally){ | |
mc.thePlayer.motionY = -999; | |
//mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer(true)); | |
mc.timer.timerSpeed = 1.1f; | |
} | |
} | |
} | |
@EventTarget | |
public void onReceive(PacketReceiveEvent e){ | |
if(e.getPacket() instanceof S08PacketPlayerPosLook){ | |
if (this.Bhop.getValue() || this.yPort1.getValue() || this.LowHop2.getValue() || this.LowHop.getValue()) { | |
time2.reset(); | |
} | |
} | |
} | |
@EventTarget | |
public void onSafe(EventSafeWalk e){ | |
if(this.AACOnground.getValue()) { | |
boolean safewalk = true; | |
for (int i = 0; i < 4; ++i) { | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1 - i, mc.thePlayer.posZ)).getBlock() != Blocks.air) { | |
safewalk = false; | |
} | |
} | |
e.setShouldWalkSafely(safewalk); | |
} | |
} | |
public void onUpdate(){ | |
if(this.oldNcp.getValue()) { | |
float yaw = Minecraft.getMinecraft().thePlayer.rotationYaw; | |
MovementInput movementInput = mc.thePlayer.movementInput; | |
float strafe = movementInput.moveStrafe; | |
double mx = Math.cos(Math.toRadians(yaw + 90.0F)); | |
double mz = Math.sin(Math.toRadians(yaw + 90.0F)); | |
double speed2 = 3.2; | |
this.canStep = false; | |
if (true) { | |
if ((Minecraft.getMinecraft().thePlayer.onGround) && (this.ground < 1.0F)) { | |
this.ground += 0.2F; | |
} | |
if (!Minecraft.getMinecraft().thePlayer.onGround) { | |
this.ground = 0.0F; | |
} | |
if ((this.ground == 1.0F) && (true)) { | |
if (Minecraft.getMinecraft().thePlayer.moveStrafing != 0.0F) { | |
speed2 -= 0.05D; | |
} | |
if (Minecraft.getMinecraft().thePlayer.isInWater()) { | |
speed2 -= 0.05D; | |
} | |
this.motionDelay += 1; | |
if (this.motionDelay == 1) { | |
EntityPlayerSP thePlayer16 = Minecraft.getMinecraft().thePlayer; | |
thePlayer16.motionX *= speed2; | |
EntityPlayerSP thePlayer17 = Minecraft.getMinecraft().thePlayer; | |
thePlayer17.motionZ *= speed2; | |
this.canStep = false; | |
} else if (this.motionDelay == 2) { | |
mc.timer.timerSpeed = 1.3F; | |
EntityPlayerSP thePlayer18 = Minecraft.getMinecraft().thePlayer; | |
thePlayer18.motionX /= 1.508D; | |
EntityPlayerSP thePlayer19 = Minecraft.getMinecraft().thePlayer; | |
thePlayer19.motionZ /= 1.508D; | |
this.canStep = true; | |
} else if (this.motionDelay == 3) { | |
mc.timer.timerSpeed = 1.1f; | |
EntityPlayerSP thePlayer16 = Minecraft.getMinecraft().thePlayer; | |
thePlayer16.motionX *= 1.02; | |
EntityPlayerSP thePlayer17 = Minecraft.getMinecraft().thePlayer; | |
thePlayer17.motionZ *= 1.02; | |
this.canStep = false; | |
} else if (this.motionDelay >= 4) { | |
mc.timer.timerSpeed = 1f; | |
EntityPlayerSP thePlayer16 = Minecraft.getMinecraft().thePlayer; | |
thePlayer16.motionX *= 1.0005; | |
EntityPlayerSP thePlayer17 = Minecraft.getMinecraft().thePlayer; | |
thePlayer17.motionZ *= 1.0005; | |
this.motionDelay = 0; | |
} | |
} | |
} else if (this.motionDelay == 1) { | |
this.canStep = true; | |
mc.timer.timerSpeed = 1.3F; | |
EntityPlayerSP thePlayer20 = Minecraft.getMinecraft().thePlayer; | |
thePlayer20.motionX /= 1.758D; | |
EntityPlayerSP thePlayer21 = Minecraft.getMinecraft().thePlayer; | |
thePlayer21.motionZ /= 1.758D; | |
this.motionDelay = 0; | |
return; | |
} | |
// mc.gameSettings.keyBindForward.pressed = true; | |
} | |
if (AACBhop.getValue()) { | |
if (this.isMoving(mc.thePlayer)) { | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionY = 0.385; | |
mc.thePlayer.addSpeed(0.005); | |
}else{ | |
mc.thePlayer.addSpeed(0.002); | |
if(mc.thePlayer.motionY < 0){ | |
mc.thePlayer.motionY -=0.013; | |
}else{ | |
// mc.thePlayer.motionY -=0.007; | |
} | |
} | |
} | |
} | |
if(this.yPortlatest.getValue()){ | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.jump(); | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() / 1.59); | |
}else{ | |
mc.thePlayer.motionY = -0.42; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed() * 1.25); | |
} | |
} | |
if(AACOnground.getValue()) { | |
if (speed > 0.65 && mc.thePlayer.onGround) { | |
cancel = false; | |
} | |
if (airTicks > 17) { | |
speed = 0.3; | |
cancel = true; | |
airTicks = 0; | |
} | |
if (this.cancel) { | |
if (mc.thePlayer.onGround) { | |
this.shouldreset = true; | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionY = 0.42; | |
} else { | |
if (!mc.thePlayer.onGround) { | |
if (this.shouldreset) { | |
//this.airTicks = 0; | |
mc.thePlayer.motionX *= -1.2; | |
mc.thePlayer.motionZ *= -1.2; | |
this.shouldreset = false; | |
} else { | |
mc.thePlayer.motionX *= (1.06); | |
mc.thePlayer.motionZ *= (1.06); | |
// mc.thePlayer.motionY -= 0.013; | |
} | |
} | |
} | |
if (mc.thePlayer.getSpeed() > speed) { | |
speed = mc.thePlayer.getSpeed(); | |
} | |
} else { | |
mc.thePlayer.setSpeed(speed + airTicks / 10 > 0.9 ? 0.9 : speed + airTicks / 10 ); | |
++this.airTicks; | |
if(airTicks > 17){ | |
// speed /= 2; | |
}else{ | |
speed = 0.8; | |
} | |
} | |
} | |
// Main.getMain.cmdManager.sendChatMessage(this.airTicks+""); | |
if(this.AACVeloity.getValue()) { | |
if (mc.thePlayer.onGround) { | |
this.shouldreset = true; | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionY = 0.4; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
} else { | |
if (!mc.thePlayer.onGround) { | |
if (this.shouldreset ) { | |
this.airTicks = 0; | |
mc.thePlayer.motionX *= -1.2; | |
mc.thePlayer.motionZ *= -1.2; | |
this.shouldreset = false; | |
}else{ | |
mc.thePlayer.motionX *= (1.075); | |
mc.thePlayer.motionZ *= (1.075); | |
mc.thePlayer.motionY -= 0.013; | |
} | |
} | |
} | |
} | |
if(this.AACSkipHop.getValue()) { | |
mc.thePlayer.motionY -= 0.013; | |
int jumpticks = 5; | |
if (ticks == jumpticks) { | |
mc.thePlayer.setSpeed(0.1); | |
} | |
if (ticks <= 0) { | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.setSpeed(5.2); | |
ticks = jumpticks; | |
} | |
} else { | |
if (mc.thePlayer.onGround) { | |
ticks--; | |
mc.thePlayer.jump(); | |
} | |
} | |
} | |
if(this.AACLowhop.getValue()) { | |
if (mc.thePlayer.moveForward != 0 || mc.thePlayer.moveStrafing != 0) { | |
if (mc.thePlayer.onGround) { | |
ticks++; | |
if (ticks >= 3) { | |
mc.thePlayer.setSpeed(0.358f); | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionY = 0.101f; | |
ticks = 0; | |
} else { | |
mc.thePlayer.jump(); | |
mc.thePlayer.motionY = 0.386f; | |
mc.thePlayer.jumpMovementFactor *= mc.thePlayer.fallDistance; | |
mc.thePlayer.setSpeed((float) Math.sqrt(mc.thePlayer.motionX * mc.thePlayer.motionX | |
+ mc.thePlayer.motionZ * mc.thePlayer.motionZ) | |
* ((mc.thePlayer.fallDistance >= 0.0) ? 1.014f : 1.0f)); | |
} | |
}else{ | |
mc.thePlayer.motionY -=0.013; | |
} | |
} else { | |
ticks = 2; | |
} | |
} | |
} | |
public boolean isMoving(EntityPlayer p){ | |
return mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed || mc.gameSettings.keyBindLeft.pressed || mc.gameSettings.keyBindRight.pressed ; | |
} | |
private double getBaseMoveSpeed() { | |
double baseSpeed = 0.2873D; | |
if (this.mc.thePlayer.isPotionActive(Potion.moveSpeed)) { | |
int amplifier = this.mc.thePlayer.getActivePotionEffect( | |
Potion.moveSpeed).getAmplifier(); | |
baseSpeed *= (1.0D + 0.2D * (amplifier + 1)); | |
} | |
return baseSpeed; | |
} | |
public static double round(double value, int places) | |
{ | |
if (places < 0) { | |
throw new IllegalArgumentException(); | |
} | |
BigDecimal bd = new BigDecimal(value); | |
bd = bd.setScale(places, RoundingMode.HALF_UP); | |
return bd.doubleValue(); | |
} | |
public static double roundToPlace(double value, int places) { if (places < 0) { | |
throw new IllegalArgumentException(); | |
} | |
BigDecimal bd = new BigDecimal(value); | |
bd = bd.setScale(places, java.math.RoundingMode.HALF_UP); | |
return bd.doubleValue(); | |
} | |
public void setMoveSpeed(MoveEvent event, double speed) { | |
double forward = mc.thePlayer.moveForward; | |
double strafe = mc.thePlayer.moveStrafing; | |
float yaw = mc.thePlayer.rotationYaw; | |
if ((forward == 0.0D) && (strafe == 0.0D)) { | |
event.setX(0.0D); | |
event.setZ(0.0D); | |
} | |
else { | |
if (forward != 0.0D) { | |
if (strafe > 0.0D) { | |
yaw += (forward > 0.0D ? -45 : 45); | |
} | |
else if (strafe < 0.0D) { | |
yaw += (forward > 0.0D ? 45 : -45); | |
} | |
strafe = 0.0D; | |
if (forward > 0.0D) { | |
forward = 1.0D; | |
} | |
else if (forward < 0.0D) { | |
forward = -1.0D; | |
} | |
} | |
event.setX(forward * speed * Math.cos(Math.toRadians(yaw + 90.0F)) + strafe * speed * Math.sin(Math.toRadians(yaw + 90.0F))); | |
event.setZ(forward * speed * Math.sin(Math.toRadians(yaw + 90.0F)) - strafe * speed * Math.cos(Math.toRadians(yaw + 90.0F))); | |
} | |
} | |
@EventTarget | |
public void onPreMotion(MoveEvent event) { | |
if(AACYport.getValue()) { | |
if (mc.thePlayer.isOnLadder() || mc.thePlayer.isInWater() || mc.thePlayer.isInWeb || mc.thePlayer.isCollidedHorizontally) { | |
return; | |
} | |
if (mc.gameSettings.keyBindLeft.pressed || mc.gameSettings.keyBindRight.pressed || mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed) { | |
if (mc.thePlayer.onGround) { | |
this.shouldreset = true; | |
float var1 = mc.thePlayer.rotationYaw * 0.017453292F; | |
event.x -= (double) (MathHelper.sin(var1) * 0.2F); | |
event.z += (double) (MathHelper.cos(var1) * 0.2F); | |
mc.thePlayer.motionX = event.x; | |
mc.thePlayer.motionZ = event.z; | |
event.y = 0.42; | |
speed++; | |
if (speed > 3) { | |
event.x *= 1.01; | |
event.z *= 1.01; | |
mc.timer.timerSpeed = 1f; | |
} | |
// (()) mc.thePlayer.motionX | |
} else { | |
mc.timer.timerSpeed = 1f; | |
if (speed > 3) { | |
event.x *= 1.025; | |
event.z *= 1.025; | |
} | |
if (this.shouldreset) { | |
event.y = mc.thePlayer.motionY = -0.21; | |
shouldreset = false; | |
// event.x *= -1; | |
// event.z *= -1; | |
} else { | |
mc.thePlayer.motionY -= 0.013; | |
} | |
} | |
} else { | |
speed = 0; | |
} | |
} | |
if(this.Bhoplatest.getValue()){ | |
if(mc.thePlayer.onGround && ((mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F))){ | |
mc.timer.timerSpeed = 1.5f; | |
}else{ | |
mc.timer.timerSpeed = 1; | |
} | |
if (roundToPlace(mc.thePlayer.posY - (int)mc.thePlayer.posY, 3) == roundToPlace(0.4D, 3)) { | |
event.setY(mc.thePlayer.motionY = 0.31D); | |
} | |
else if (roundToPlace(mc.thePlayer.posY - (int)mc.thePlayer.posY, 3) == roundToPlace(0.71D, 3)) { | |
event.setY(mc.thePlayer.motionY = 0.05); | |
} | |
else if (roundToPlace(mc.thePlayer.posY - (int)mc.thePlayer.posY, 3) == roundToPlace(0.75D, 3)) { | |
event.setY(mc.thePlayer.motionY = -0.5D); | |
} | |
else if (roundToPlace(mc.thePlayer.posY - (int)mc.thePlayer.posY, 3) == roundToPlace(0.55D, 3)) { | |
event.setY(mc.thePlayer.motionY = -0.2D); | |
} | |
else if (roundToPlace(mc.thePlayer.posY - (int)mc.thePlayer.posY, 3) == roundToPlace(0.41D, 3)) { | |
event.setY(mc.thePlayer.motionY = -0.2D); | |
} | |
if ((ticks == 1) && ((mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F))) { | |
moveSpeed = (2D * getBaseMoveSpeed() - 0.01D); | |
} | |
else if ((ticks == 2 ) && ((mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F)) ) { | |
event.setY(mc.thePlayer.motionY = 0.4D); | |
moveSpeed *=mc.thePlayer.hurtResistantTime <= 3 ? 1.47D : 2.1; | |
} | |
else if (ticks == 3) { | |
double difference = 0.66D * (lastDist - getBaseMoveSpeed()); | |
moveSpeed = (lastDist - difference); | |
} | |
else { | |
// List collidingList = ClientUtils.world().getCollidingBlockBoundingBoxes(ClientUtils.player(), playerboundingBox.offset(0.0D, mc.thePlayer.motionY, 0.0D)); | |
if ((mc.thePlayer.isCollidedVertically) && (ticks > 0)) { | |
ticks = (mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F) ? 1 : 0; | |
} | |
moveSpeed = (lastDist - lastDist / 200.0D); | |
} | |
setMoveSpeed(event, moveSpeed = Math.max(moveSpeed,getBaseMoveSpeed())); | |
if ((mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F)) { | |
ticks += 1; | |
} | |
} | |
if (this.Bhop.getValue() || this.yPort1.getValue() || this.LowHop2.getValue() || this.LowHop.getValue()) { | |
if (time2.hasReached(40)) { | |
if (mc.thePlayer.fallDistance > 5) { | |
return; | |
} | |
if (this.yPort1.getValue()) { | |
this.moveSpeed *= 1.0002; | |
} | |
if (this.LowHop2.getValue() && mc.thePlayer.fallDistance < 0.2 && !mc.gameSettings.keyBindJump.pressed) { | |
mc.thePlayer.motionY /= 2.12f; | |
mc.timer.timerSpeed = 0.9f; | |
} | |
this.speedTick = (!this.speedTick); | |
this.timerDelay += 1; | |
this.timerDelay %= 5; | |
if (this.timerDelay != 0) { | |
mc.timer.timerSpeed = 1.0F; | |
} else { | |
if (isMoving(mc.thePlayer)) { | |
if (!this.LowHop.getValue()) { | |
if (!this.LowHop2.getValue()) { | |
// net.minecraft.util.Timer.timerSpeed = 32767.0F; | |
} | |
} | |
} | |
if (isMoving(mc.thePlayer)) { | |
if (!this.LowHop.getValue()) { | |
if (!this.LowHop2.getValue()) { | |
// net.minecraft.util.Timer.timerSpeed = this.speedTimer; | |
} | |
} | |
mc.thePlayer.motionX *= 1.0199999809265137D; | |
mc.thePlayer.motionZ *= 1.0199999809265137D; | |
} | |
} | |
if (mc.thePlayer.onGround) { | |
if (isMoving(mc.thePlayer)) { | |
this.level = 2; | |
} | |
} | |
if ((this.level == 1) | |
&& ((mc.thePlayer.moveForward != 0.0F) || (mc.thePlayer.moveStrafing != 0.0F))) { | |
this.level = 2; | |
this.moveSpeed = (1.35D * getBaseMoveSpeed() - 0.01D); | |
} else if (this.level == 2) { | |
this.level = 3; | |
if (this.Bhop.getValue() || this.yPort1.getValue()) { | |
if (time.hasReached(200)) { | |
event.y = 0.399399995803833D; | |
mc.thePlayer.motionY = 0.399399995803833D; | |
} else { | |
return; | |
} | |
} | |
if (this.LowHop.getValue() && !this.yPort1.getValue()) { | |
event.y = 0.399399995803833D; | |
} | |
if (this.LowHop2.getValue() && !this.yPort1.getValue()) { | |
event.y = 0.4; | |
} | |
if (!this.LowHop2.getValue() || this.yPort1.getValue()) { | |
this.moveSpeed *= 2.149D; | |
} else { | |
this.moveSpeed *= 1.849D; | |
} | |
} else if (this.level == 3) { | |
this.level = 4; | |
double difference = 0.66D * (this.lastDist - getBaseMoveSpeed()); | |
if (!this.yPort1.getValue()) { | |
this.moveSpeed = (this.lastDist - difference); | |
} else { | |
this.moveSpeed = (this.lastDist - difference) + 0.000000001; | |
} | |
} else { | |
// if | |
//((mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, | |
//mc.thePlayer.boundingBox.offset(0.0D, | |
//mc.thePlayer.motionY, 0.0D)).size() > 0) || | |
//(mc.thePlayer.isCollidedVertically)) { | |
//this.level = 1; | |
// } | |
this.moveSpeed = (this.lastDist - this.lastDist / 159.0D); | |
} | |
this.moveSpeed = Math.max(this.moveSpeed, getBaseMoveSpeed()); | |
MovementInput movementInput = mc.thePlayer.movementInput; | |
float forward = movementInput.moveForward; | |
float strafe = movementInput.moveStrafe; | |
float yaw = Minecraft.getMinecraft().thePlayer.rotationYaw; | |
if ((forward == 0.0F) && (strafe == 0.0F)) { | |
event.x = 0.0D; | |
event.z = 0.0D; | |
} else if (forward != 0.0F) { | |
if (strafe >= 1.0F) { | |
yaw += (forward > 0.0F ? -45 : 45); | |
strafe = 0.0F; | |
} else if (strafe <= -1.0F) { | |
yaw += (forward > 0.0F ? 45 : -45); | |
strafe = 0.0F; | |
} | |
if (forward > 0.0F) { | |
forward = 1.0F; | |
} else if (forward < 0.0F) { | |
forward = -1.0F; | |
} | |
} | |
double mx = Math.cos(Math.toRadians(yaw + 90.0F)); | |
double mz = Math.sin(Math.toRadians(yaw + 90.0F)); | |
double motionX = forward * this.moveSpeed * mx + strafe | |
* this.moveSpeed * mz; | |
double motionZ = forward * this.moveSpeed * mz - strafe | |
* this.moveSpeed * mx; | |
event.x = (forward * this.moveSpeed * mx + strafe * this.moveSpeed | |
* mz); | |
event.z = (forward * this.moveSpeed * mz - strafe * this.moveSpeed | |
* mx); | |
canStep = true; | |
mc.thePlayer.stepHeight = 0.6F; | |
if ((forward == 0.0F) && (strafe == 0.0F)) { | |
event.x = 0.0D; | |
event.z = 0.0D; | |
} else { | |
boolean collideCheck = false; | |
if | |
(Minecraft.getMinecraft().theWorld.getCollidingBoundingBoxes(mc.thePlayer, | |
mc.thePlayer.boundingBox.expand(0.5D, 0.0D, | |
0.5D)).size() > 0 && this.LowHop2.getValue()) { | |
collideCheck = true; | |
} | |
if (forward != 0.0F) { | |
if (strafe >= 1.0F) { | |
yaw += (forward > 0.0F ? -45 : 45); | |
strafe = 0.0F; | |
} else if (strafe <= -1.0F) { | |
yaw += (forward > 0.0F ? 45 : -45); | |
strafe = 0.0F; | |
} | |
if (forward > 0.0F) { | |
forward = 1.0F; | |
} else if (forward < 0.0F) { | |
forward = -1.0F; | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.client.network.NetworkPlayerInfo; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.S0CPacketSpawnPlayer; | |
import net.minecraft.network.play.server.S18PacketEntityTeleport; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class Sprint extends Module { | |
public Sprint() { | |
super("Sprint", Category.MOVEMENT, Keyboard.KEY_Y); | |
// TODO Auto-generated constructor stub | |
} | |
@Override | |
public void onUpdate(){ | |
if(mc.thePlayer.onGround && !mc.thePlayer.isSprinting() && (mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed || mc.gameSettings.keyBindLeft.pressed || mc.gameSettings.keyBindRight.pressed)) { | |
mc.thePlayer.setSprinting(true); | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.Movment; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.MoveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.Macro; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.util.BlockPos; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.awt.*; | |
public class Step extends Module { | |
public Step() { | |
super("Step", Category.MOVEMENT, 0); | |
// TODO Auto-generated constructor stub | |
} | |
public ValueBoolean AAC = new ValueBoolean("AACOld",false); | |
public ValueBoolean AACNew = new ValueBoolean("AACNew",false); | |
public int stepTicks; | |
@EventTarget | |
public void onMove(MoveEvent moveEvent) { | |
if(AAC.getValue()) { | |
if (mc.thePlayer.isInWater() || mc.thePlayer.isOnLadder()) { | |
return; | |
} | |
if (mc.thePlayer.onGround) { | |
if (stepTicks > 0) { | |
stepTicks = 0; | |
mc.thePlayer.setSpeed(0); | |
} | |
} | |
mc.thePlayer.stepHeight = 0.9f; | |
double blocks = 0.5 + mc.thePlayer.getSpeed(); | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
BlockPos pos = new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
double diffrent = mc.theWorld.getBlockState(pos).getBlock().getCollisionBoundingBox(mc.theWorld, pos, mc.theWorld.getBlockState(pos)).maxY - mc.thePlayer.posY; | |
BlockPos pos2 = new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
double diffrent2 = 0; | |
if (mc.theWorld.getBlockState(pos2).getBlock() != Blocks.air) { | |
diffrent2 = mc.theWorld.getBlockState(pos2).getBlock().getCollisionBoundingBox(mc.theWorld, pos2, mc.theWorld.getBlockState(pos)).maxY - mc.thePlayer.posY - 1; | |
} | |
if (diffrent2 > 0.1) { | |
return; | |
} | |
if (mc.thePlayer.onGround) { | |
if (diffrent > 0.5) { | |
moveEvent.y = 0.42; | |
if (diffrent > 0) { | |
// mc.thePlayer.motionY = 0.42; | |
// stepTicks = 55; | |
} | |
} | |
} | |
if (diffrent > 0.5) { | |
mc.thePlayer.motionY += 0.015; | |
mc.thePlayer.onGround = true; | |
double blocks2 = 1; | |
stepTicks++; | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),false)); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * -blocks * x + 0.0D * -blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * -blocks * z - 0.0D * -blocks * x),false)); | |
// mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY+0., mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)); | |
mc.thePlayer.setSpeed(0.3); | |
mc.thePlayer.jump(); | |
} | |
} | |
if(AACNew.getValue() ) { | |
if (mc.thePlayer.isInWater() || mc.thePlayer.isOnLadder()) { | |
return; | |
} | |
if (mc.thePlayer.onGround) { | |
if (stepTicks > 0) { | |
stepTicks = 0; | |
mc.thePlayer.setSpeed(0); | |
} | |
} | |
// mc.thePlayer.stepHeight = 0.9f; | |
double blocks = 2 + mc.thePlayer.getSpeed(); | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
BlockPos pos = new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
double diffrent = mc.theWorld.getBlockState(pos).getBlock().getCollisionBoundingBox(mc.theWorld, pos, mc.theWorld.getBlockState(pos)).maxY - mc.thePlayer.posY; | |
BlockPos pos2 = new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
double diffrent2 = 0; | |
if (mc.theWorld.getBlockState(pos2).getBlock() != Blocks.air) { | |
diffrent2 = mc.theWorld.getBlockState(pos2).getBlock().getCollisionBoundingBox(mc.theWorld, pos2, mc.theWorld.getBlockState(pos)).maxY - mc.thePlayer.posY - 1; | |
} | |
if (diffrent2 > 0.5) { | |
return; | |
} | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.stepHeight = 0.5f; | |
if (diffrent > 0.5) { | |
moveEvent.y = 0.42; | |
mc.thePlayer.jump(); | |
if (diffrent > 0) { | |
// mc.thePlayer.motionY = 0.42; | |
// stepTicks = 55; | |
} | |
} | |
}else{ | |
moveEvent.y += 0.013; | |
} | |
stepTicks --; | |
if(stepTicks > 0){ | |
mc.thePlayer.setSpeed(0.4); | |
} | |
double blocks2 = 1; | |
stepTicks++; | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),false)); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * -blocks * x + 0.0D * -blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * -blocks * z - 0.0D * -blocks * x),false)); | |
// mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY+0., mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)); | |
mc.thePlayer.setSpeed(0.3); | |
this.stepTicks = 20; | |
} | |
} | |
} |
/*/ | |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import java.util.ArrayList; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.client.gui.inventory.GuiInventory; | |
import net.minecraft.client.multiplayer.PlayerControllerMP; | |
import net.minecraft.enchantment.Enchantment; | |
import net.minecraft.enchantment.EnchantmentHelper; | |
import net.minecraft.entity.player.InventoryPlayer; | |
import net.minecraft.inventory.Container; | |
import net.minecraft.inventory.Slot; | |
import net.minecraft.item.Item; | |
import net.minecraft.item.ItemArmor; | |
import net.minecraft.item.ItemStack; | |
public class AutoArmor | |
extends Module | |
{ | |
public AutoArmor() | |
{ | |
super("AutoArmor", Category.PLAYER, 0); | |
addValue(openInv); | |
} | |
public static ValueBoolean openInv = new ValueBoolean("Inventory", false); | |
public static ValueBoolean nyra = new ValueBoolean("nyra", false); | |
private TimeHelper time = new TimeHelper(); | |
private final int[] boots = { 313, 309, 317, 305, 301 }; | |
private final int[] chestplate = { 311, 307, 315, 303, 299 }; | |
private final int[] helmet = { 310, 306, 314, 302, 298 }; | |
private final int[] leggings = { 312, 308, 316, 304, 300 }; | |
public ArrayList<Mini> createArray() | |
{ | |
ArrayList<Mini> minis = new ArrayList(); | |
minis.add(new MiniValueBooleanToggleSimple(this, openInv)); | |
return minis; | |
} | |
public void onUpdate() | |
{ | |
if (!this.time.hasReached(125L)) { | |
return; | |
} | |
if ((!(this.mc.currentScreen instanceof GuiInventory)) && (openInv.getValue())) { | |
return; | |
} | |
int item = -1; | |
for(int i = 0; i < 4; ++i){ | |
if(Minecraft.getMinecraft().thePlayer.inventory.armorInventory[i] == null){ | |
item = this.findBestArmor(i); | |
Main.getMain.cmdManager.sendChatMessage(i + " " + i); | |
} | |
} | |
boolean hasInvSpace = false; | |
ItemStack[] arritemStack = this.mc.thePlayer.inventory.mainInventory; | |
int n3 = arritemStack.length; | |
int n2 = 0; | |
while (n2 < n3) | |
{ | |
ItemStack stack = arritemStack[n2]; | |
if (stack == null) | |
{ | |
hasInvSpace = true; | |
break; | |
} | |
n2++; | |
} | |
if (item != -1) | |
{ | |
this.mc.playerController.windowClick(0, item, 0, 1, this.mc.thePlayer); | |
this.time.reset(); | |
} | |
} | |
public int findBestArmor(int item){ | |
System.out.println(item); | |
ArrayList<ItemStack> bestItems; | |
double bestDamageReduceAmount = -1; | |
ItemStack s =null; | |
for(ItemStack stack : mc.thePlayer.inventory.mainInventory){ | |
if(stack != null) { | |
if (stack.getItem() instanceof ItemArmor) { | |
ItemArmor armor = (ItemArmor) stack.getItem(); | |
if (armor.armorType == item) { | |
if (armor.damageReduceAmount > bestDamageReduceAmount) { | |
double protectionLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.field_180310_c.effectId, stack); | |
bestDamageReduceAmount = armor.damageReduceAmount + protectionLevel / 10.0d; | |
System.out.println(bestDamageReduceAmount + " re"+ protectionLevel); | |
s = stack; | |
} | |
} | |
} | |
} | |
} | |
return findItem(s); | |
} | |
private int findItem(ItemStack id) | |
{ | |
int index = 9; | |
while (index < 45) | |
{ | |
ItemStack item = this.mc.thePlayer.inventoryContainer.getSlot(index).getStack(); | |
if ((item != null) && item == id) { | |
return index; | |
} | |
index++; | |
} | |
return -1; | |
} | |
private int findItem(int id) | |
{ | |
int index = 9; | |
while (index < 45) | |
{ | |
ItemStack item = this.mc.thePlayer.inventoryContainer.getSlot(index).getStack(); | |
if ((item != null) && (Item.getIdFromItem(item.getItem()) == id)) { | |
return index; | |
} | |
index++; | |
} | |
return -1; | |
} | |
} | |
/*/ | |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import java.util.ArrayList; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.client.gui.inventory.GuiInventory; | |
import net.minecraft.client.multiplayer.PlayerControllerMP; | |
import net.minecraft.entity.player.InventoryPlayer; | |
import net.minecraft.inventory.Container; | |
import net.minecraft.inventory.Slot; | |
import net.minecraft.item.Item; | |
import net.minecraft.item.ItemStack; | |
public class AutoArmor | |
extends Module | |
{ | |
public AutoArmor() | |
{ | |
super("AutoArmor", Category.PLAYER, 0); | |
addValue(openInv); | |
} | |
public static ValueBoolean openInv = new ValueBoolean("Inventory", false); | |
public static ValueBoolean nyra = new ValueBoolean("nyra", false); | |
private TimeHelper time = new TimeHelper(); | |
private final int[] boots = { 313, 309, 317, 305, 301 }; | |
private final int[] chestplate = { 311, 307, 315, 303, 299 }; | |
private final int[] helmet = { 310, 306, 314, 302, 298 }; | |
private final int[] leggings = { 312, 308, 316, 304, 300 }; | |
public ArrayList<Mini> createArray() | |
{ | |
ArrayList<Mini> minis = new ArrayList(); | |
minis.add(new MiniValueBooleanToggleSimple(this, openInv)); | |
return minis; | |
} | |
public void onUpdate() | |
{ | |
if (!getState()) { | |
return; | |
} | |
if (!this.time.hasReached(125L)) { | |
return; | |
} | |
if ((!(this.mc.currentScreen instanceof GuiInventory)) && (openInv.getValue())) { | |
return; | |
} | |
boolean dropkek = false; | |
int item = -1; | |
if (this.mc.thePlayer.inventory.armorInventory[0] == null) | |
{ | |
int[] arrn = this.boots; | |
int n2 = arrn.length; | |
int n = 0; | |
while (n < n2) | |
{ | |
int id = arrn[n]; | |
if (findItem(id) != -1) | |
{ | |
item = findItem(id); | |
break; | |
} | |
n++; | |
} | |
} | |
if (armourIsBetter(0, this.boots)) | |
{ | |
item = 8; | |
dropkek = true; | |
} | |
if (this.mc.thePlayer.inventory.armorInventory[3] == null) | |
{ | |
int[] arrn = this.helmet; | |
int n2 = arrn.length; | |
int n = 0; | |
while (n < n2) | |
{ | |
int id = arrn[n]; | |
if (findItem(id) != -1) | |
{ | |
item = findItem(id); | |
break; | |
} | |
n++; | |
} | |
} | |
if (armourIsBetter(3, this.helmet)) | |
{ | |
item = 5; | |
dropkek = true; | |
} | |
if (this.mc.thePlayer.inventory.armorInventory[1] == null) | |
{ | |
int[] arrn = this.leggings; | |
int n2 = arrn.length; | |
int n = 0; | |
while (n < n2) | |
{ | |
int id = arrn[n]; | |
if (findItem(id) != -1) | |
{ | |
item = findItem(id); | |
break; | |
} | |
n++; | |
} | |
} | |
if (armourIsBetter(1, this.leggings)) | |
{ | |
item = 7; | |
dropkek = true; | |
} | |
if (this.mc.thePlayer.inventory.armorInventory[2] == null) | |
{ | |
int[] arrn = this.chestplate; | |
int n2 = arrn.length; | |
int n = 0; | |
while (n < n2) | |
{ | |
int id = arrn[n]; | |
if (findItem(id) != -1) | |
{ | |
item = findItem(id); | |
break; | |
} | |
n++; | |
} | |
} | |
if (armourIsBetter(2, this.chestplate)) | |
{ | |
item = 6; | |
dropkek = true; | |
} | |
boolean hasInvSpace = false; | |
ItemStack[] arritemStack = this.mc.thePlayer.inventory.mainInventory; | |
int n3 = arritemStack.length; | |
int n2 = 0; | |
while (n2 < n3) | |
{ | |
ItemStack stack = arritemStack[n2]; | |
if (stack == null) | |
{ | |
hasInvSpace = true; | |
break; | |
} | |
n2++; | |
} | |
dropkek = (dropkek) && (!hasInvSpace); | |
boolean bl = dropkek; | |
if (item != -1) | |
{ | |
this.mc.playerController.windowClick(0, item, 0, 1, this.mc.thePlayer); | |
this.time.reset(); | |
} | |
} | |
public boolean armourIsBetter(int slot, int[] armourtype) | |
{ | |
if (this.mc.thePlayer.inventory.armorInventory[slot] != null) | |
{ | |
int currentIndex = 0; | |
int finalCurrentIndex = -1; | |
int invIndex = 0; | |
int finalInvIndex = -1; | |
int[] arrn = armourtype; | |
int n = arrn.length; | |
int n2 = 0; | |
while (n2 < n) | |
{ | |
int armour2 = arrn[n2]; | |
if (Item.getIdFromItem(this.mc.thePlayer.inventory.armorInventory[slot].getItem()) == armour2) | |
{ | |
finalCurrentIndex = currentIndex; | |
break; | |
} | |
currentIndex++; | |
n2++; | |
} | |
arrn = armourtype; | |
n = arrn.length; | |
n2 = 0; | |
while (n2 < n) | |
{ | |
int armour2 = arrn[n2]; | |
if (findItem(armour2) != -1) | |
{ | |
finalInvIndex = invIndex; | |
break; | |
} | |
invIndex++; | |
n2++; | |
} | |
if (finalInvIndex > -1) { | |
return finalInvIndex < finalCurrentIndex; | |
} | |
} | |
return false; | |
} | |
private int findItem(int id) | |
{ | |
int index = 9; | |
while (index < 45) | |
{ | |
ItemStack item = this.mc.thePlayer.inventoryContainer.getSlot(index).getStack(); | |
if ((item != null) && (Item.getIdFromItem(item.getItem()) == id)) { | |
return index; | |
} | |
index++; | |
} | |
return -1; | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import com.google.common.collect.Multimap; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.mods.Combat.KillAura; | |
import de.Client.Main.Modules.mods.Movment.NoSlowDown; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.state.IBlockState; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.ai.attributes.AttributeModifier; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.item.ItemSword; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; | |
import net.minecraft.network.play.client.C09PacketHeldItemChange; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
import java.util.Iterator; | |
import java.util.Map; | |
public class Autotool extends Module { | |
public ValueBoolean ItemSpoof = new ValueBoolean("ItemSpoof",true); | |
public ValueBoolean AutoSword = new ValueBoolean("AutoSword",true); | |
public Autotool() { | |
super("Autotool", Category.PLAYER, Keyboard.KEY_NONE); | |
// TODO Auto-generated constructor stub | |
addValue(ItemSpoof); | |
addValue(AutoSword); | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniValueBooleanToggleSimple(this,AutoSword)); | |
minis.add( new MiniValueBooleanToggleSimple(this,ItemSpoof)); | |
return minis; | |
} | |
public TimeHelper t = new TimeHelper(); | |
public boolean itemFix; | |
@EventTarget | |
public void onPacketSend(PacketSendEvent e) { | |
if (this.getState()) { | |
if (e.getPacket() instanceof C02PacketUseEntity) { | |
if(this.AutoSword.getValue()) { | |
if (mc.objectMouseOver.entityHit != null) { | |
float bestDamage = 1.0F; | |
int bestSlot = -1; | |
for (int i = 0; i < 9; i++) { | |
net.minecraft.item.ItemStack item = mc.thePlayer.inventory.getStackInSlot(i); | |
if (item != null) { | |
if (this.getItemDamage(item) > bestDamage) { | |
bestSlot = i; | |
bestDamage = this.getItemDamage(item); | |
} | |
} | |
} | |
if (bestSlot != -1) { | |
; | |
itemFix = true; | |
} | |
System.out.println("test" + bestSlot); | |
} | |
} | |
} | |
} | |
} | |
private float getItemDamage(final ItemStack itemStack) { | |
final Multimap multimap = itemStack.getAttributeModifiers(); | |
if(!multimap.isEmpty()) { | |
final Iterator iterator = multimap.entries().iterator(); | |
if(iterator.hasNext()) { | |
final Map.Entry entry = (Map.Entry) iterator.next(); | |
final AttributeModifier attributeModifier = (AttributeModifier) entry.getValue(); | |
double damage; | |
if(attributeModifier.getOperation() != 1 && attributeModifier.getOperation() != 2) { | |
damage = attributeModifier.getAmount(); | |
} else { | |
damage = attributeModifier.getAmount() * 100.0; | |
} | |
if(attributeModifier.getAmount() > 1.0) { | |
return 1.0F + (float) damage; | |
} | |
return 1.0F; | |
} | |
} | |
return 1.0F; | |
} | |
@EventTarget | |
public void onUpdate(UpdateEvent e){ | |
if(e.getState() == State.POST) { | |
if (mc.gameSettings.keyBindAttack.pressed && mc.objectMouseOver != null && | |
(mc.objectMouseOver.func_178782_a() != null) && | |
(mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getMaterial() != net.minecraft.block.material.Material.air)) { | |
int item = this.setSlot(mc.objectMouseOver.func_178782_a()); | |
if (item > -1 && item <= 9) { | |
// mc.playerController.curBlockDamageMP += mc.thePlayer.inventory.getStackInSlot(item).getStrVsBlock( mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()).getBlock()); | |
mc.playerController.curBlockDamageMP -= mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getPlayerRelativeBlockHardness(this.mc.thePlayer, this.mc.thePlayer.worldObj, mc.objectMouseOver.func_178782_a()); | |
int oldItem = mc.thePlayer.inventory.currentItem; | |
mc.thePlayer.inventory.currentItem = item; | |
mc.playerController.curBlockDamageMP += mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getPlayerRelativeBlockHardness(this.mc.thePlayer, this.mc.thePlayer.worldObj, mc.objectMouseOver.func_178782_a()); | |
mc.thePlayer.inventory.currentItem = oldItem; | |
itemFix = true; | |
} | |
} | |
} | |
if(e.getState() == State.PRE){ | |
if(this.ItemSpoof.getValue()) { | |
if(itemFix) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); | |
if(Main.getMain.moduleManager.getModule(NoSlowDown.class).getState){ | |
mc.getNetHandler().addToSendQueue((Packet)new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, EnumFacing.DOWN)); | |
mc.getNetHandler().addToSendQueue((Packet)new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); | |
} | |
itemFix = false; | |
} | |
}else{ | |
if(this.itemFix){ | |
if(!mc.gameSettings.keyBindAttack.pressed){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); | |
itemFix = false; | |
} | |
} | |
} | |
} | |
} | |
@EventTarget | |
public void onPacketReceive(PacketReceiveEvent e){ | |
if (mc.gameSettings.keyBindAttack.pressed && mc.objectMouseOver != null && e.getPacket() instanceof C09PacketHeldItemChange && | |
(mc.objectMouseOver.func_178782_a() != null) && | |
(mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getMaterial() != net.minecraft.block.material.Material.air)) { | |
C09PacketHeldItemChange packetHeldItemChange = (C09PacketHeldItemChange) e.getPacket(); | |
float bestSpeed = 1.0F; | |
int bestSlot = -1; | |
IBlockState blockState = mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()); | |
for (int i = 0; i < 9; i++) { | |
net.minecraft.item.ItemStack item = mc.thePlayer.inventory.getStackInSlot(i); | |
if (item != null) { | |
float speed = item.getStrVsBlock(blockState.getBlock()); | |
if (speed > bestSpeed) { | |
bestSpeed = speed; | |
bestSlot = i; | |
} | |
} | |
} | |
if (bestSlot != -1) { | |
if(packetHeldItemChange.getSlotId() != bestSlot){ | |
e.setCancelled(true); | |
} | |
} | |
} | |
} | |
public int setSlot(BlockPos blockPos) { | |
float bestSpeed = 1.0F; | |
int bestSlot = -1; | |
IBlockState blockState = mc.theWorld.getBlockState(blockPos); | |
for (int i = 0; i < 9; i++) { | |
net.minecraft.item.ItemStack item = mc.thePlayer.inventory.getStackInSlot(i); | |
if (item != null) { | |
float speed = item.getStrVsBlock(blockState.getBlock()); | |
if (speed > bestSpeed) { | |
bestSpeed = speed; | |
bestSlot = i; | |
} | |
} | |
} | |
if (bestSlot != -1) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(bestSlot)); | |
return bestSlot; | |
// mc.thePlayer.inventory.currentItem = bestSlot; | |
} | |
return Integer.MAX_VALUE; | |
} | |
@Override | |
public boolean isModuleImportant() { | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.Block; | |
import net.minecraft.block.BlockChest; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
import net.minecraft.util.Vec3; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class ChestAura | |
extends Module { | |
public ChestAura() { | |
super("ChestAura", Category.PLAYER, 0); | |
} | |
private TimeHelper time = new TimeHelper(); | |
private TimeHelper invTime = new TimeHelper(); | |
private List<BlockPos> emptiedChests = new ArrayList(); | |
private List<BlockPos> clickedChests = new ArrayList(); | |
public float[] getRotationsNeeded(BlockPos entity) { | |
double diffY; | |
if (entity == null) { | |
return null; | |
} | |
double diffX = entity.x - (Minecraft.getMinecraft().thePlayer.posX); | |
double diffZ = entity.z - (Minecraft.getMinecraft().thePlayer.posZ); | |
diffY = entity.y + 0.5- (Minecraft.getMinecraft().thePlayer.posY + (double)Minecraft.getMinecraft().thePlayer.getEyeHeight()); | |
double dist = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ); | |
float yaw = (float)(Math.atan2(diffZ, diffX) * 180.0 / 3.141592653589793) - 90.0f; | |
float pitch = (float)(- Math.atan2(diffY, dist) * 180.0 / 3.141592653589793); | |
return new float[]{Minecraft.getMinecraft().thePlayer.rotationYaw + MathHelper.wrapAngleTo180_float(yaw - Minecraft.getMinecraft().thePlayer.rotationYaw), Minecraft.getMinecraft().thePlayer.rotationPitch + MathHelper.wrapAngleTo180_float(pitch - Minecraft.getMinecraft().thePlayer.rotationPitch)}; | |
} | |
@Override | |
public void onUpdate() { | |
boolean clickBlock = false; | |
byte radius; | |
if (this.mc.currentScreen == null && mc.thePlayer.onGround) { | |
if (this.time.hasReached(250L)) { | |
radius = 5; | |
for (int y = radius; y >= -radius; y--) { | |
for (int x = -radius; x < radius; x++) | |
for (int z = -radius; z < radius; z++) { | |
time.reset(); | |
int posX = ((int) Math.floor(this.mc.thePlayer.posX) + x); | |
int posY = ((int) Math.floor(this.mc.thePlayer.posY) + y); | |
int posZ = ((int) Math.floor(this.mc.thePlayer.posZ) + z); | |
if (this.mc.thePlayer.getDistanceSq(this.mc.thePlayer.posX + x, this.mc.thePlayer.posY + y, this.mc.thePlayer.posZ + z) <= 16.0D) { | |
Block block =mc.theWorld.getBlockState(new BlockPos(posX, posY, posZ)).getBlock(); | |
if(block instanceof BlockChest){ | |
BlockPos pos = new BlockPos(posX, posY, posZ); | |
if(!this.emptiedChests.contains(pos)){ | |
float rot[] = this.getRotationsNeeded(new BlockPos(posX, posY, posZ)); | |
this.emptiedChests.add(pos); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, rot[0], rot[1], mc.thePlayer.onGround)); | |
mc.thePlayer.swingItem(); | |
mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, mc.thePlayer.getHeldItem(), new BlockPos(posX, posY, posZ), EnumFacing.DOWN, new Vec3(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
public void onEnable() { | |
this.emptiedChests.clear(); | |
this.clickedChests.clear(); | |
} | |
} | |
package de.Client.Main.Modules.mods.Player; | |
import com.google.common.collect.Multimap; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.Block; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.inventory.GuiChest; | |
import net.minecraft.client.gui.inventory.GuiInventory; | |
import net.minecraft.enchantment.Enchantment; | |
import net.minecraft.enchantment.EnchantmentHelper; | |
import net.minecraft.entity.ai.attributes.AttributeModifier; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.init.Items; | |
import net.minecraft.inventory.Container; | |
import net.minecraft.item.*; | |
import java.util.ArrayList; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
public class ChestStealer extends Module { | |
public static ValueDouble Speed; | |
public static ValueBoolean Silent; | |
public static ValueBoolean Priority; | |
public ChestStealer() { | |
super("ChestStealer", Category.PLAYER, 0); | |
addValue(this.Priority = new ValueBoolean("Priority",true)); | |
addValue(this.Silent = new ValueBoolean("Silent", false)); | |
addValue(this.Speed = new ValueDouble("Speed", 80,200,200)); | |
} | |
public boolean isValidItemStack(ItemStack in, boolean skyWars, List<ItemStack> wholeChest) { | |
if ((Block.getBlockFromItem(in.getItem()) != null) && (hasBlocks() < 256) && (skyWars) && (Block.getBlockFromItem(in.getItem()) != Blocks.tnt)) { | |
return true; | |
} | |
if (goodFood(in)) { | |
return true; | |
} | |
if (bestWeapon(in, wholeChest)) { | |
return true; | |
} | |
if (bestArmor(in, wholeChest)) { | |
return true; | |
} | |
return bestBow(in, wholeChest) || (in.getItem() instanceof ItemEnderPearl); | |
} | |
private boolean bestBow(ItemStack in, List<ItemStack> wholeChest) | |
{ | |
if (!(in.getItem() instanceof ItemBow)) { | |
return false; | |
} | |
double bestNum = 0.0D; | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = this.mc.thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if (bowValue(stack) >= bestNum) { | |
bestNum = bowValue(stack); | |
} | |
} | |
boolean inChest = false; | |
for (ItemStack itemStack : wholeChest) { | |
if ((itemStack != null) && (bowValue(itemStack) >= bestNum) && (!itemStack.equals(in))) | |
{ | |
bestNum = bowValue(itemStack); | |
inChest = true; | |
} | |
} | |
return inChest ? bowValue(in) >= bestNum : bowValue(in) > bestNum; | |
} | |
private double bowValue(ItemStack in) | |
{ | |
double damage = 0.0D; | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, in) * 1.25D; | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, in); | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, in) * 0.5D; | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, in) * 0.5D; | |
return damage; | |
} | |
private boolean goodFood(ItemStack in) | |
{ | |
if ((in.getItem() instanceof ItemFood)) | |
{ | |
if ((in.getItem() instanceof ItemAppleGold)) { | |
return true; | |
} | |
if (in.getMaxStackSize() == 1) | |
{ | |
return hasFood() <= 5; | |
} | |
return !((hasFood() >= 10) && (((ItemFood) in.getItem()).getHealAmount(in) <= 4)); | |
} | |
return false; | |
} | |
private int hasFood() | |
{ | |
int out = 0; | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
((stack.getItem() instanceof ItemFood))) { | |
out += stack.stackSize; | |
} | |
} | |
return out; | |
} | |
private int hasBlocks() | |
{ | |
int out = 0; | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
(Block.getBlockFromItem(stack.getItem()) != null)) { | |
out += stack.stackSize; | |
} | |
} | |
return out; | |
} | |
private boolean bestArmor(ItemStack in, List<ItemStack> wholeChest) | |
{ | |
if ((in.getItem() instanceof ItemArmor)) | |
{ | |
ItemArmor armor = (ItemArmor)in.getItem(); | |
double value = getSortDouble(in); | |
if (isHelmet(armor)) | |
{ | |
boolean best = true; | |
if ((this.mc.thePlayer.inventoryContainer.getSlot(5).getHasStack()) && | |
(value < getSortDouble(this.mc.thePlayer.inventoryContainer.getSlot(5).getStack()) + 0.01D)) { | |
best = false; | |
} | |
for (ItemStack itemStack : wholeChest) { | |
if ((itemStack != null) && | |
(isHelmet(itemStack.getItem())) && | |
(value < getSortDouble(itemStack) + 0.01D) && (!in.equals(itemStack))) { | |
best = false; | |
} | |
} | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
(isHelmet(stack.getItem())) && | |
(value < getSortDouble(stack) + 0.01D)) { | |
best = false; | |
} | |
} | |
return best; | |
} | |
if (isChest(armor)) | |
{ | |
boolean best = true; | |
if ((this.mc.thePlayer.inventoryContainer.getSlot(6).getHasStack()) && | |
(value < getSortDouble(this.mc.thePlayer.inventoryContainer.getSlot(6).getStack()) + 0.01D)) { | |
best = false; | |
} | |
for (ItemStack itemStack : wholeChest) { | |
if ((itemStack != null) && | |
(isChest(itemStack.getItem())) && | |
(value < getSortDouble(itemStack) + 0.01D) && (!in.equals(itemStack))) { | |
best = false; | |
} | |
} | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
(isChest(stack.getItem())) && | |
(value < getSortDouble(stack) + 0.01D)) { | |
best = false; | |
} | |
} | |
return best; | |
} | |
if (isLeggings(armor)) | |
{ | |
boolean best = true; | |
if ((this.mc.thePlayer.inventoryContainer.getSlot(7).getHasStack()) && | |
(value < getSortDouble(this.mc.thePlayer.inventoryContainer.getSlot(7).getStack()) + 0.01D)) { | |
best = false; | |
} | |
for (ItemStack itemStack : wholeChest) { | |
if ((itemStack != null) && | |
(isLeggings(itemStack.getItem())) && | |
(value < getSortDouble(itemStack) + 0.01D) && (!in.equals(itemStack))) { | |
best = false; | |
} | |
} | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
(isLeggings(stack.getItem())) && | |
(value < getSortDouble(stack) + 0.01D)) { | |
best = false; | |
} | |
} | |
return best; | |
} | |
if (isBoots(armor)) | |
{ | |
boolean best = true; | |
if ((this.mc.thePlayer.inventoryContainer.getSlot(8).getHasStack()) && | |
(value < getSortDouble(this.mc.thePlayer.inventoryContainer.getSlot(8).getStack()) + 0.01D)) { | |
best = false; | |
} | |
for (ItemStack itemStack : wholeChest) { | |
if ((itemStack != null) && | |
(isBoots(itemStack.getItem())) && | |
(value < getSortDouble(itemStack) + 0.01D) && (!in.equals(itemStack))) { | |
best = false; | |
} | |
} | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if ((stack != null) && | |
(isBoots(stack.getItem())) && | |
(value < getSortDouble(stack) + 0.01D)) { | |
best = false; | |
} | |
} | |
return best; | |
} | |
} | |
return false; | |
} | |
private boolean isHelmet(Item item) | |
{ | |
return ((item instanceof ItemArmor)) && (item.getUnlocalizedName().startsWith("item.helmet")); | |
} | |
private boolean isChest(Item item) | |
{ | |
return ((item instanceof ItemArmor)) && (item.getUnlocalizedName().startsWith("item.chestplate")); | |
} | |
private boolean isLeggings(Item item) | |
{ | |
return ((item instanceof ItemArmor)) && (item.getUnlocalizedName().startsWith("item.leggings")); | |
} | |
private boolean isBoots(Item item) | |
{ | |
return ((item instanceof ItemArmor)) && (item.getUnlocalizedName().startsWith("item.boots")); | |
} | |
private boolean bestWeapon(ItemStack in, List<ItemStack> wholeChest) | |
{ | |
double bestNum = 0.0D; | |
for (byte isNull = 9; isNull <= 44; isNull = (byte)(isNull + 1)) | |
{ | |
ItemStack stack = this.mc.thePlayer.inventoryContainer.getSlot(isNull).getStack(); | |
if (getItemAttackDamage(stack) >= bestNum) { | |
bestNum = getItemAttackDamage(stack); | |
} | |
} | |
boolean inChest = false; | |
for (ItemStack itemStack : wholeChest) { | |
if ((getItemAttackDamage(itemStack) >= bestNum) && (!itemStack.equals(in))) | |
{ | |
bestNum = getItemAttackDamage(itemStack); | |
inChest = true; | |
} | |
} | |
return inChest ? getItemAttackDamage(in) >= bestNum : getItemAttackDamage(in) > bestNum; | |
} | |
private double getItemAttackDamage(ItemStack item) | |
{ | |
return getAttackOldAttackDamage(item); | |
} | |
private double getAttackOldAttackDamage(ItemStack stack) | |
{ | |
if (stack == null) { | |
return -1.0D; | |
} | |
Item in = stack.getItem(); | |
double damage = -1.0D; | |
if (in == Items.wooden_shovel) { | |
damage = 1.0D; | |
} | |
if (in == Items.wooden_pickaxe) { | |
damage = 2.0D; | |
} | |
if (in == Items.wooden_axe) { | |
damage = 3.0D; | |
} | |
if (in == Items.golden_shovel) { | |
damage = 1.0D; | |
} | |
if (in == Items.golden_pickaxe) { | |
damage = 2.0D; | |
} | |
if (in == Items.golden_axe) { | |
damage = 3.0D; | |
} | |
if (in == Items.stone_shovel) { | |
damage = 2.0D; | |
} | |
if (in == Items.stone_pickaxe) { | |
damage = 3.0D; | |
} | |
if (in == Items.stone_axe) { | |
damage = 4.0D; | |
} | |
if (in == Items.iron_shovel) { | |
damage = 3.0D; | |
} | |
if (in == Items.iron_pickaxe) { | |
damage = 4.0D; | |
} | |
if (in == Items.iron_axe) { | |
damage = 5.0D; | |
} | |
if (in == Items.diamond_shovel) { | |
damage = 4.0D; | |
} | |
if (in == Items.diamond_pickaxe) { | |
damage = 5.0D; | |
} | |
if (in == Items.diamond_axe) { | |
damage = 6.0D; | |
} | |
if (in == Items.wooden_sword) { | |
damage = 4.0D; | |
} | |
if (in == Items.golden_sword) { | |
damage = 4.0D; | |
} | |
if (in == Items.stone_sword) { | |
damage = 5.0D; | |
} | |
if (in == Items.iron_sword) { | |
damage = 6.0D; | |
} | |
if (in == Items.diamond_sword) { | |
damage = 7.0D; | |
} | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.field_180314_l.effectId, stack) * 1.25D; | |
damage += EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, stack) * 0.25D; | |
return damage; | |
} | |
private double getSortDouble(ItemStack item) | |
{ | |
if (!(item.getItem() instanceof ItemArmor)) { | |
return 0.0D; | |
} | |
double sortvalue = 0.0D; | |
if (item.getUnlocalizedName().contains("diamond")) { | |
sortvalue = 0.4D; | |
} | |
if (item.getUnlocalizedName().contains("iron")) { | |
sortvalue = 0.3D; | |
} | |
if (item.getUnlocalizedName().contains("gold")) { | |
sortvalue = 0.0D; | |
} | |
if (item.getUnlocalizedName().contains("leather")) { | |
sortvalue = 0.1D; | |
} | |
if (item.getUnlocalizedName().contains("chain")) { | |
sortvalue = 0.2D; | |
} | |
ItemArmor armor = (ItemArmor)item.getItem(); | |
sortvalue += armor.damageReduceAmount + EnchantmentHelper.getEnchantmentLevel(Enchantment.field_180310_c.effectId, item); | |
return sortvalue; | |
} | |
private TimeHelper time = new TimeHelper(); | |
int slot = 0; | |
boolean skip = false; | |
public boolean isContainerEmpty(Container container) { | |
boolean temp = true; | |
int i = 0; | |
for (int slotAmount = container.inventorySlots.size() == 90 ? 54 : 27; i < slotAmount; i++) { | |
if (container.getSlot(i).getHasStack()) { | |
temp = false; | |
} | |
} | |
return temp; | |
} | |
private float getItemDamage(ItemStack itemStack) { | |
Iterator iterator; | |
Multimap multimap = itemStack.getAttributeModifiers(); | |
if (!multimap.isEmpty() && (iterator = multimap.entries().iterator()).hasNext()) { | |
Map.Entry entry = (Map.Entry) iterator.next(); | |
AttributeModifier attributeModifier = (AttributeModifier) entry.getValue(); | |
double damage = attributeModifier.getOperation() != 1 && attributeModifier.getOperation() != 2 | |
? attributeModifier.getAmount() : attributeModifier.getAmount() * 100.0; | |
if (attributeModifier.getAmount() > 1.0) { | |
return 1.0f + (float) damage; | |
} | |
return 1.0f; | |
} | |
return 1.0f; | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniValueBooleanToggleSimple(this,Priority)); | |
return minis; | |
} | |
@Override | |
public void onUpdate() { | |
if (!this.getState()) | |
return; | |
if(this.Silent.getValue()){ | |
if (mc.theWorld != null) { | |
if (mc.currentScreen instanceof GuiChest) { | |
mc.gameSettings.keyBindUseItem.pressed = false; | |
} | |
} | |
} | |
if(!this.Priority.getValue()){ | |
if (mc.thePlayer == null || mc.theWorld == null) | |
return; | |
if ((mc.currentScreen instanceof GuiInventory)) { | |
mc.playerController.updateController(); | |
} | |
if (mc.theWorld != null) { | |
if (mc.currentScreen instanceof GuiChest) { | |
GuiChest chest = (GuiChest) mc.currentScreen; | |
if (isContainerEmpty(mc.thePlayer.openContainer)) { | |
mc.thePlayer.closeScreen(); | |
} | |
if (chest.lowerChestInventory.getName().contains("Where") || chest.lowerChestInventory.getName().contains("Lobby Teleporter") || chest.lowerChestInventory.getName().contains("Shop") ||chest.lowerChestInventory.getName().contains("Spiel") || chest.lowerChestInventory.getName().contains("Teleporter") || chest.lowerChestInventory.getName().contains("Spiel ausw�hlen")) { | |
return; | |
} | |
for (int i = this.slot; this.slot < chest.lowerChestInventory.getSizeInventory(); ++this.slot) { | |
if (chest.inventorySlots.getSlot(this.slot).getHasStack()) { | |
if (!this.time.hasReached((long) this.Speed.getValue())) { | |
break; | |
} | |
mc.playerController.windowClick(chest.inventorySlots.windowId, this.slot, 1,1, mc.thePlayer); | |
this.time.reset(); | |
if (isContainerEmpty(mc.thePlayer.openContainer)) { | |
mc.thePlayer.closeScreen(); | |
} | |
} | |
} | |
} else { | |
this.slot = 0; | |
} | |
} | |
}else{ | |
if ((this.mc.currentScreen instanceof GuiChest)) | |
{ | |
if (time.hasReached((long) this.Speed.getValue())) | |
{ | |
if (this.slot == ((GuiChest)this.mc.currentScreen).lowerChestInventory.getSizeInventory() - 1) { | |
return; | |
} | |
List<ItemStack> items = new ArrayList(); | |
for (int i = 0; i < ((GuiChest)this.mc.currentScreen).lowerChestInventory.getSizeInventory(); i++) { | |
items.add(((GuiChest)this.mc.currentScreen).lowerChestInventory.getStackInSlot(i)); | |
} | |
for (int x = this.slot; x < ((GuiChest)this.mc.currentScreen).lowerChestInventory.getSizeInventory(); x++) { | |
try | |
{ | |
if ((((GuiChest)this.mc.currentScreen).lowerChestInventory.getStackInSlot(x) != null) && | |
(isValidItemStack(((GuiChest)this.mc.currentScreen).lowerChestInventory.getStackInSlot(x), true, items))) | |
{ | |
this.mc.playerController.windowClick(((GuiChest)this.mc.currentScreen).inventorySlots.windowId, x, 0, 1, this.mc.thePlayer); | |
this.time.reset(); | |
this.slot = x; | |
return; | |
} | |
} | |
catch (Exception ex) | |
{ | |
ex.printStackTrace(); | |
} | |
} | |
this.slot = ((GuiChest)this.mc.currentScreen).lowerChestInventory.getSizeInventory(); | |
this.mc.thePlayer.closeScreen(); | |
} | |
} | |
else { | |
this.slot = 0; | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import | |
de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.network.Packet; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.*; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class FakeLag extends Module { | |
public FakeLag() { | |
super("FakeLag", Category.PLAYER, Keyboard.KEY_NONE); | |
// TODO Auto-generated constructor stub | |
} | |
public TimeHelper t = new TimeHelper(); | |
public ArrayList<Packet> receivedPackets = new ArrayList(); | |
public ArrayList<Packet> sendPacket = new ArrayList(); | |
@EventTarget | |
public void onPacketReceiveevent(PacketReceiveEvent e){ | |
receivedPackets.add(e.getPacket()); | |
e.setCancelled(true); | |
} | |
@EventTarget | |
public void onPacketSend(PacketSendEvent e){ | |
sendPacket.add(e.getPacket()); | |
e.setCancelled(true); | |
// this.toggleModule(); | |
} | |
public void onDisable(){ | |
/*/ | |
for(Packet p : this.receivedPackets){ | |
p.processPacket(mc.getN); | |
} | |
for(Packet p : this.sendPacket){ | |
mc.thePlayer.sendQueue.addToSendQueue(p); | |
} | |
/*/ | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import com.google.common.collect.Multimap; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.inventory.GuiContainerCreative; | |
import net.minecraft.client.gui.inventory.GuiInventory; | |
import net.minecraft.enchantment.EnchantmentHelper; | |
import net.minecraft.entity.EnumCreatureAttribute; | |
import net.minecraft.entity.ai.attributes.AttributeModifier; | |
import net.minecraft.item.*; | |
import java.util.Arrays; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
import java.util.concurrent.CopyOnWriteArrayList; | |
/** | |
* Created by Daniel on 16.07.2017. | |
*/ | |
public class InvCleaner extends Module{ | |
public InvCleaner() { | |
super("InvCleaner", Category.PLAYER,0); | |
addValue(OPENINV); | |
addValue(MOVING); | |
addValue(ARMOR); | |
addValue(TOOLS); | |
addValue(DELAY); | |
this.time = new TimeHelper(); | |
} | |
public static ValueBoolean OPENINV = new ValueBoolean("OpenInv", true); | |
public static ValueBoolean MOVING = new ValueBoolean("Moving", false); | |
public static ValueBoolean ARMOR = new ValueBoolean("Armor", true); | |
public static ValueBoolean TOOLS = new ValueBoolean("Tools", true); | |
public static ValueDouble DELAY = new ValueDouble("Delay", 1.25, 0.0, 5.0); | |
private TimeHelper time; | |
@EventTarget | |
public void onPreMotion(UpdateEvent e) { | |
if(!(e.getState() == State.PRE)){ | |
return; | |
} | |
if(mc.thePlayer.isUsingItem()) { | |
return; | |
} | |
if(!OPENINV.getValue() || ((mc.currentScreen instanceof GuiInventory || mc.currentScreen instanceof GuiContainerCreative) && OPENINV.getValue())) { | |
if(this.time.hasReached((long) (this.DELAY.getValue() * 100))) { | |
CopyOnWriteArrayList<Integer> items = new CopyOnWriteArrayList<Integer>(); | |
for(int slot = 0; slot < 45; slot++) { | |
if(mc.thePlayer.inventoryContainer.getSlot(slot).getHasStack()) { | |
ItemStack item = mc.thePlayer.inventoryContainer.getSlot(slot).getStack(); | |
if(mc.thePlayer.inventory.armorInventory[0] == item | |
|| mc.thePlayer.inventory.armorInventory[1] == item | |
|| mc.thePlayer.inventory.armorInventory[2] == item | |
|| mc.thePlayer.inventory.armorInventory[3] == item) | |
continue; | |
if(item != null && item.getItem() != null && Item.getIdFromItem(item.getItem()) != 0 && !stackIsUseful(slot)) { | |
items.add(slot); | |
} | |
} | |
} | |
if(!items.isEmpty()) { | |
mc.playerController.windowClick(mc.thePlayer.inventoryContainer.windowId, items.get(0), 1, 4, mc.thePlayer); | |
items.remove(0); | |
this.time.reset(); | |
} else { | |
// Nachricht - Fertig | |
return; | |
} | |
} | |
} | |
} | |
private boolean stackIsUseful(int slot) { | |
ItemStack itemStack = mc.thePlayer.inventoryContainer.getSlot(slot).getStack(); | |
boolean hasAlreadyOrBetter = false; | |
if(itemStack.getItem() instanceof ItemSword || itemStack.getItem() instanceof ItemPickaxe | |
|| itemStack.getItem() instanceof ItemAxe) { | |
for (int o = 0; o < 45; ++o) { | |
if(o == slot) | |
continue; | |
if(mc.thePlayer.inventoryContainer.getSlot(o).getHasStack()) { | |
ItemStack item = mc.thePlayer.inventoryContainer.getSlot(o).getStack(); | |
if(item != null && item.getItem() instanceof ItemSword || item.getItem() instanceof ItemAxe | |
|| item.getItem() instanceof ItemPickaxe) { | |
float damageFound = getItemDamage(itemStack); | |
damageFound += EnchantmentHelper.func_152377_a(itemStack, EnumCreatureAttribute.UNDEFINED); | |
float damageCurrent = getItemDamage(item); | |
damageCurrent += EnchantmentHelper.func_152377_a(item, EnumCreatureAttribute.UNDEFINED); | |
if(damageCurrent > damageFound) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} | |
} | |
} | |
} else if(itemStack.getItem() instanceof ItemArmor) { | |
for (int o = 0; o < 45; ++o) { | |
if(slot == o) | |
continue; | |
if(mc.thePlayer.inventoryContainer.getSlot(o).getHasStack()) { | |
ItemStack item = mc.thePlayer.inventoryContainer.getSlot(o).getStack(); | |
if(item != null && item.getItem() instanceof ItemArmor) { | |
List<Integer> helmet = Arrays.asList(298, 314, 302, 306, 310); | |
List<Integer> chestplate = Arrays.asList(299, 315, 303, 307, 311); | |
List<Integer> leggings = Arrays.asList(300, 316, 304, 308, 312); | |
List<Integer> boots = Arrays.asList(301, 317, 305, 309, 313); | |
if(helmet.contains(Item.getIdFromItem(item.getItem())) | |
&& helmet.contains(Item.getIdFromItem(itemStack.getItem()))) { | |
if(helmet.indexOf(Item.getIdFromItem(itemStack.getItem())) < helmet | |
.indexOf(Item.getIdFromItem(item.getItem()))) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} else if(chestplate.contains(Item.getIdFromItem(item.getItem())) | |
&& chestplate.contains(Item.getIdFromItem(itemStack.getItem()))) { | |
if(chestplate.indexOf(Item.getIdFromItem(itemStack.getItem())) < chestplate | |
.indexOf(Item.getIdFromItem(item.getItem()))) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} else if(leggings.contains(Item.getIdFromItem(item.getItem())) | |
&& leggings.contains(Item.getIdFromItem(itemStack.getItem()))) { | |
if(leggings.indexOf(Item.getIdFromItem(itemStack.getItem())) < leggings | |
.indexOf(Item.getIdFromItem(item.getItem()))) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} else if(boots.contains(Item.getIdFromItem(item.getItem())) | |
&& boots.contains(Item.getIdFromItem(itemStack.getItem()))) { | |
if(boots.indexOf(Item.getIdFromItem(itemStack.getItem())) < boots | |
.indexOf(Item.getIdFromItem(item.getItem()))) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} | |
} | |
} | |
} | |
} | |
for(int o = 0; o < 45; o++) { | |
if(slot == o) | |
continue; | |
if(mc.thePlayer.inventoryContainer.getSlot(o).getHasStack()) { | |
ItemStack item = mc.thePlayer.inventoryContainer.getSlot(o).getStack(); | |
if(item != null && (item.getItem() instanceof ItemSword || item.getItem() instanceof ItemAxe | |
|| item.getItem() instanceof ItemBow || item.getItem() instanceof ItemFishingRod | |
|| item.getItem() instanceof ItemArmor || item.getItem() instanceof ItemAxe | |
|| item.getItem() instanceof ItemPickaxe || Item.getIdFromItem(item.getItem()) == 346)) { | |
Item found = (Item) item.getItem(); | |
if(Item.getIdFromItem(itemStack.getItem()) == Item.getIdFromItem(item.getItem())) { | |
hasAlreadyOrBetter = true; | |
break; | |
} | |
} | |
} | |
} | |
if(Item.getIdFromItem(itemStack.getItem()) == 367) | |
return false; // rotten flesh | |
if(Item.getIdFromItem(itemStack.getItem()) == 30) | |
return true; // cobweb | |
if(Item.getIdFromItem(itemStack.getItem()) == 259) | |
return true; // flint & steel | |
if(Item.getIdFromItem(itemStack.getItem()) == 262) | |
return true; // arrow | |
if(Item.getIdFromItem(itemStack.getItem()) == 264) | |
return true; // diamond | |
if(Item.getIdFromItem(itemStack.getItem()) == 265) | |
return true; // iron | |
if(Item.getIdFromItem(itemStack.getItem()) == 346) | |
return true; // fishing rod | |
if(Item.getIdFromItem(itemStack.getItem()) == 384) | |
return true; // bottle o' enchanting | |
if(Item.getIdFromItem(itemStack.getItem()) == 345) | |
return true; // compass | |
if(Item.getIdFromItem(itemStack.getItem()) == 296) | |
return true; // wheat | |
if(Item.getIdFromItem(itemStack.getItem()) == 336) | |
return true; // brick | |
if(Item.getIdFromItem(itemStack.getItem()) == 266) | |
return true; // gold ingot | |
if(Item.getIdFromItem(itemStack.getItem()) == 280) | |
return true; // stick | |
if(itemStack.hasDisplayName()) | |
return true; | |
if(hasAlreadyOrBetter) { | |
return false; | |
} | |
if(itemStack.getItem() instanceof ItemArmor) | |
return true; | |
if(itemStack.getItem() instanceof ItemAxe) | |
return true; | |
if(itemStack.getItem() instanceof ItemBow) | |
return true; | |
if(itemStack.getItem() instanceof ItemSword) | |
return true; | |
if(itemStack.getItem() instanceof ItemPotion) | |
return true; | |
if(itemStack.getItem() instanceof ItemFlintAndSteel) | |
return true; | |
if(itemStack.getItem() instanceof ItemEnderPearl) | |
return true; | |
if(itemStack.getItem() instanceof ItemBlock) | |
return true; | |
if(itemStack.getItem() instanceof ItemFood) | |
return true; | |
if(itemStack.getItem() instanceof ItemPickaxe) | |
return true; | |
return false; | |
} | |
private float getItemDamage(final ItemStack itemStack) { | |
final Multimap multimap = itemStack.getAttributeModifiers(); | |
if(!multimap.isEmpty()) { | |
final Iterator iterator = multimap.entries().iterator(); | |
if(iterator.hasNext()) { | |
final Map.Entry entry = (Map.Entry) iterator.next(); | |
final AttributeModifier attributeModifier = (AttributeModifier) entry.getValue(); | |
double damage; | |
if(attributeModifier.getOperation() != 1 && attributeModifier.getOperation() != 2) { | |
damage = attributeModifier.getAmount(); | |
} else { | |
damage = attributeModifier.getAmount() * 100.0; | |
} | |
if(attributeModifier.getAmount() > 1.0) { | |
return 1.0F + (float) damage; | |
} | |
return 1.0F; | |
} | |
} | |
return 1.0F; | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiChat; | |
import net.minecraft.client.settings.KeyBinding; | |
import org.lwjgl.input.Keyboard; | |
public class InventoryMove extends Module { | |
public InventoryMove() { | |
super("InventoryMove", Category.PLAYER,0); | |
displayName = "Inventory Move"; | |
} | |
@Override | |
public void onUpdate() { | |
if(mc.thePlayer == null || mc.theWorld == null || mc.currentScreen instanceof GuiChat) { | |
return; | |
} | |
KeyBinding[] moveKeys = { | |
mc.gameSettings.keyBindForward, | |
mc.gameSettings.keyBindBack, | |
mc.gameSettings.keyBindLeft, | |
mc.gameSettings.keyBindRight, | |
mc.gameSettings.keyBindJump, | |
mc.gameSettings.keyBindSneak | |
}; | |
KeyBinding[] arrayOfKeyBinding; | |
int j = (arrayOfKeyBinding = moveKeys).length; | |
for(int i = 0; i < j; i++) { | |
KeyBinding bind = arrayOfKeyBinding[i]; | |
KeyBinding.setKeyBindState(bind.getKeyCode(), Keyboard.isKeyDown(bind.getKeyCode())); | |
} | |
} | |
public void onRender(){ | |
if(!getState()){ | |
return; | |
} | |
if((Minecraft.getMinecraft().currentScreen != null) && (!(Minecraft.getMinecraft().currentScreen instanceof GuiChat))) { | |
if (Keyboard.isKeyDown((int)200)) { | |
mc.thePlayer.rotationPitch -= 1.0f; | |
} | |
if (Keyboard.isKeyDown((int)208)) { | |
mc.thePlayer.rotationPitch += 1.0f; | |
} | |
if (Keyboard.isKeyDown((int)203)) { | |
mc.thePlayer.rotationYaw -= 1.0f; | |
} | |
if (Keyboard.isKeyDown((int)205)) { | |
mc.thePlayer.rotationYaw += 1.0f; | |
} | |
if(mc.thePlayer.rotationPitch > 89){ | |
mc.thePlayer.rotationPitch = 89; | |
} | |
if(mc.thePlayer.rotationPitch < -89){ | |
mc.thePlayer.rotationPitch = -89; | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.*; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
public class NoRotate extends Module { | |
public NoRotate() { | |
super("NoRotate", Category.PLAYER, Keyboard.KEY_NONE); | |
// TODO Auto-generated constructor stub | |
} | |
public TimeHelper t = new TimeHelper(); | |
@EventTarget | |
public void onPacketReceiveevent(PacketReceiveEvent e){ | |
if(e.getPacket() instanceof S08PacketPlayerPosLook){ | |
S08PacketPlayerPosLook packetPlayer = (S08PacketPlayerPosLook) e.getPacket(); | |
packetPlayer.field_148936_d = mc.thePlayer.rotationYaw; | |
packetPlayer.field_148937_e = mc.thePlayer.rotationPitch; | |
e.setPacket(packetPlayer); | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import de.Client.Utils.Macro; | |
import net.minecraft.block.*; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.server.*; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.world.World; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.math.BigInteger; | |
import java.security.SecureRandom; | |
import java.util.ArrayList; | |
import java.util.Random; | |
public class TerrainSpeed extends Module { | |
public TerrainSpeed() { | |
super("TerrainSpeed", Category.MOVEMENT, Keyboard.KEY_NONE); | |
// TODO Auto-generated constructor stub | |
addValue(AAC); | |
addValue(AACNEW); | |
addValue(NCP); | |
} | |
public boolean icespeedjump = true; | |
public double aacIceSpeed = 0; | |
public ValueBoolean NCP = new ValueBoolean("NCP",true); | |
public ValueBoolean AACNEW = new ValueBoolean("AACNEW",false); | |
public ValueBoolean AAC = new ValueBoolean("AAC",false); | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniOneOfTwo(this,AAC,NCP)); | |
return minis; | |
} | |
@EventTarget | |
public void onPacketSend(PacketSendEvent e){ | |
if(e.getPacket() instanceof C03PacketPlayer && icespeedjump && this.AACNEW.getValue()){ | |
C03PacketPlayer packet = (C03PacketPlayer) e.getPacket(); | |
packet.y +=0.09; | |
e.setPacket(packet); | |
} | |
} | |
public void onUpdate() { | |
if(this.AACNEW.getValue()){ | |
if((mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY +1, mc.thePlayer.posZ)).getBlock() instanceof BlockLadder || mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY +1, mc.thePlayer.posZ)).getBlock() instanceof BlockVine ) && ! mc.thePlayer.isOnLadder()){ | |
mc.thePlayer.motionY = 0.15; | |
} | |
if(mc.thePlayer.isOnLadder()){ | |
if(mc.gameSettings.keyBindJump.pressed){ | |
mc.thePlayer.motionY = 0.15f; | |
} | |
} | |
if(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY , mc.thePlayer.posZ)).getBlock() instanceof BlockSnow){ | |
if(!mc.gameSettings.keyBindJump.pressed){ | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
}else{ | |
mc.thePlayer.motionY = -1; | |
} | |
} | |
} | |
if(mc.thePlayer.isInWeb){ | |
mc.thePlayer.isInWeb = false; | |
icespeedjump = true; | |
mc.thePlayer.motionY/=5; | |
mc.gameSettings.keyBindJump.pressed = false; | |
}else{ | |
this.icespeedjump = false; | |
} | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockIce || mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockPackedIce ) { | |
if( !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ)).getBlock() instanceof BlockAir) ) { | |
mc.thePlayer.addSpeed(0.2); | |
if (mc.thePlayer.getSpeed() > this.aacIceSpeed) { | |
aacIceSpeed = mc.thePlayer.getSpeed(); | |
} | |
} | |
}else{ | |
if(aacIceSpeed > 0.2 && mc.gameSettings.keyBindSprint.pressed){ | |
mc.thePlayer.setSpeed(aacIceSpeed); | |
aacIceSpeed /= 1.02; | |
if(mc.thePlayer.isCollidedHorizontally){ | |
aacIceSpeed = 0; | |
} | |
}else{ | |
aacIceSpeed = 0; | |
} | |
} | |
} | |
if (this.AAC.getValue()) { | |
//AAC | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)).getBlock() instanceof BlockSoulSand) { | |
mc.thePlayer.setSpeed(0.07); | |
} | |
if (mc.thePlayer.isInWeb) { | |
mc.thePlayer.motionY = 0.05; | |
mc.thePlayer.setSpeed(0.55); | |
} | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockIce || mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockPackedIce) { | |
mc.thePlayer.motionX *= 1.2; | |
mc.thePlayer.motionZ *= 1.2; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
if (mc.thePlayer.getSpeed() > 1.15) { | |
mc.thePlayer.setSpeed(1.15); | |
} | |
this.aacIceSpeed = 0; | |
double blocks = mc.thePlayer.getSpeed(); | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
this.aacIceSpeed = mc.thePlayer.getSpeed(); | |
Block b = mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY-1, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x))).getBlock(); | |
if(!((b instanceof BlockPackedIce) && !((b instanceof BlockIce)))){ | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
this.icespeedjump = false; | |
} | |
} | |
}else{ | |
if(aacIceSpeed > 0.2){ | |
if(!mc.thePlayer.onGround){ | |
mc.thePlayer.motionY -= 0.013; | |
} | |
mc.thePlayer.setSpeed(aacIceSpeed); | |
aacIceSpeed /= 1.02; | |
} | |
if(mc.thePlayer.isCollidedHorizontally){ | |
aacIceSpeed = 0; | |
} | |
} | |
} | |
if (this.NCP.getValue()) { | |
if (mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed) { | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY-1, mc.thePlayer.posZ)).getBlock() instanceof BlockIce || (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY-1, mc.thePlayer.posZ)).getBlock() instanceof BlockPackedIce)) { | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.jump(); | |
mc.thePlayer.setSpeed(1.25); | |
mc.thePlayer.motionY = 0.42399999499320984D; | |
icespeedjump = true; | |
}else{ | |
} | |
} | |
if(icespeedjump){ | |
if(!mc.thePlayer.onGround){ | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
if (this.mc.thePlayer.motionY == -0.07190068807140403D) { | |
this.mc.thePlayer.motionY *= 0.3499999940395355D; | |
} | |
if (this.mc.thePlayer.motionY == -0.10306193759436909D) { | |
this.mc.thePlayer.motionY *= 0.550000011920929D; | |
} | |
if (this.mc.thePlayer.motionY == -0.13395038817442878D) { | |
this.mc.thePlayer.motionY *= 0.6700000166893005D; | |
} | |
if (this.mc.thePlayer.motionY == -0.16635183030382D) { | |
this.mc.thePlayer.motionY *= 0.6899999976158142D; | |
} | |
if (this.mc.thePlayer.motionY == -0.19088711097794803D) { | |
this.mc.thePlayer.motionY *= 0.7099999785423279D; | |
} | |
if (this.mc.thePlayer.motionY == -0.21121925191528862D) { | |
this.mc.thePlayer.motionY *= 0.20000000298023224D; | |
} | |
if (this.mc.thePlayer.motionY == -0.11979897632390576D) { | |
this.mc.thePlayer.motionY *= 0.9300000071525574D; | |
} | |
if (this.mc.thePlayer.motionY == -0.18758479151225355D) { | |
this.mc.thePlayer.motionY *= 0.7200000286102295D; | |
} | |
if (this.mc.thePlayer.motionY == -0.21075983825251726D) { | |
this.mc.thePlayer.motionY *= 0.7599999904632568D; | |
} | |
}else{ | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY-1, mc.thePlayer.posZ)).getBlock() instanceof BlockIce || (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY-1, mc.thePlayer.posZ)).getBlock() instanceof BlockPackedIce)) { | |
}else{ | |
icespeedjump = false; | |
} | |
} | |
} | |
if (mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)).getBlock() instanceof BlockSoulSand) { | |
mc.thePlayer.setSpeed(0.23); | |
} | |
if (mc.thePlayer.isInWeb) { | |
mc.thePlayer.setSpeed(0.29); | |
if (mc.thePlayer.onGround) { | |
} | |
} | |
} | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.Player; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import net.minecraft.network.play.server.S12PacketEntityVelocity; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.MathHelper; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class Velocity extends Module { | |
public ValueDouble horizontalMuliplier = new ValueDouble("horizontal",100,200,200); | |
public ValueDouble verticalMuliplier = new ValueDouble("vertical",100,200,200); | |
public ValueBoolean aac = new ValueBoolean("AAC",true); | |
public Velocity() { | |
super("Velocity", Category.PLAYER, Keyboard.KEY_NONE); | |
addValue(this.horizontalMuliplier); | |
addValue(this.verticalMuliplier); | |
addValue(aac); | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniValueBooleanToggleSimple(this,aac)); | |
return minis; | |
} | |
public boolean fix; | |
public double blockPos; | |
public double oldblockpos; | |
public void onUpdate(){ | |
if(!this.aac.getValue()){ | |
return; | |
} | |
/*/ | |
oldblockpos = mc.thePlayer.rotationYaw; | |
if(mc.thePlayer.hurtTime <=0){ | |
blockPos = mc.thePlayer.rotationYaw; | |
}else{ | |
if(blockPos < oldblockpos + 360){ | |
blockPos += 0.4; | |
} | |
//mc.thePlayer.setSpeed(0.4); | |
mc.thePlayer.motionX = -MathHelper.sin((float) blockPos) * 0.8; | |
mc.thePlayer.motionZ = MathHelper.cos((float) blockPos) * 0.8; | |
/*/ | |
if(mc.thePlayer.hurtTime > 0 && fix) { | |
if(mc.thePlayer.getSpeed() < 0.35) { | |
mc.thePlayer.addSpeed(0.22); | |
} | |
blockPos = mc.thePlayer.getSpeed(); | |
}else{ | |
fix = false; | |
} | |
/*/ | |
if (mc.thePlayer.hurtResistantTime >= 10) { | |
if(mc.thePlayer.onGround){ | |
mc.thePlayer.motionY = 0.101; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
}else{ | |
mc.thePlayer.motionY -= 0.01; | |
} | |
} | |
/*/ | |
} | |
@EventTarget | |
public void onPacketReceiveEvent(PacketReceiveEvent e){ | |
if(e.getPacket() instanceof S12PacketEntityVelocity){ | |
S12PacketEntityVelocity velocity = (S12PacketEntityVelocity) e.getPacket(); | |
if(velocity.field_149417_a == mc.thePlayer.getEntityId()) { | |
if(velocity.field_149416_c > 0 ){ | |
this.fix = true; | |
} | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
public class Babygame extends Module { | |
public Babygame() { | |
super("Babygame", Category.RENDER,0); | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.DisplayGuiScreenEvent; | |
import de.Client.Events.Events.EventRenderWorldBackground; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.ShaderResourcepack; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.renderer.EntityRenderer; | |
import net.minecraft.client.shader.Shader; | |
import net.minecraft.client.shader.ShaderGroup; | |
import net.minecraft.client.shader.ShaderUniform; | |
import net.minecraft.util.ResourceLocation; | |
import java.io.ByteArrayInputStream; | |
import java.io.FileNotFoundException; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.lang.reflect.Field; | |
import java.util.*; | |
public class BetterOverlay extends Module { | |
public BetterOverlay() { | |
super("BetterOverlay", Category.RENDER,0); | |
addValue(noOverlay); | |
addValue(blurOverlay); | |
fadeTime = 1000; | |
} | |
public ValueBoolean noOverlay = new ValueBoolean("None",false); | |
public ValueBoolean blurOverlay = new ValueBoolean("Blur",true); | |
private ShaderResourcepack dummyPack; | |
@Override | |
public void onEnable(){ | |
this.dummyPack = new ShaderResourcepack(); | |
this.dummyPack.func_110549_a(null); | |
fadeTime = 350; | |
super.onEnable(); | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniOneOfTwo(this,noOverlay,blurOverlay)); | |
return minis; | |
} | |
public boolean enabled; | |
@EventTarget | |
public void renderWorldBackGround(DisplayGuiScreenEvent e){ | |
if(!blurOverlay.getValue()){ | |
return; | |
} | |
if(e.guiScreenbevor == null && e.guiScreenafter != null){ | |
Minecraft.getMinecraft().entityRenderer.func_175069_a(new ResourceLocation("shaders/post/fade_in_blur.json")); | |
this.start = System.currentTimeMillis(); | |
}else{ | |
if(e.guiScreenbevor != null && e.guiScreenafter == null){ | |
Minecraft.getMinecraft().entityRenderer.stopUseShader(); | |
} | |
} | |
} | |
private float getProgress() { | |
return Math.min((System.currentTimeMillis() - this.start) / this.fadeTime, 1.0f); | |
} | |
protected boolean validPath(final ResourceLocation location) { | |
return true; | |
} | |
public float radius1 = 5; | |
private String[] blurExclusions; | |
private Field _listShaders; | |
private long start; | |
private float fadeTime = 300; | |
public int radius = 2; | |
public int colorFirst = 75000000; | |
public int colorSecond = 75000000; | |
public int getBackgroundColor(final boolean second) { | |
int color = second ? colorFirst: colorSecond; | |
int a = color >>> 24; | |
int r = color >> 16 & 0xFF; | |
int b = color >> 8 & 0xFF; | |
int g = color & 0xFF; | |
final float prog = getProgress(); | |
a *= (int)prog; | |
r *= (int)prog; | |
g *= (int)prog; | |
b *= (int)prog; | |
return a << 24 | r << 16 | b << 8 | g; | |
} | |
@EventTarget | |
public void renderWorldBackGround(EventRenderWorldBackground e){ | |
if(this.blurOverlay.getValue()){ | |
ScaledResolution sr = new ScaledResolution(); | |
GuiApi.drawGradientRect(0, 0,sr.getScaledWidth(), sr.getScaledHeight(), -1072689136, -804253680); | |
final ShaderGroup sg = Minecraft.getMinecraft().entityRenderer.getShaderGroup(); | |
final List<Shader> shaders = Minecraft.getMinecraft().entityRenderer.theShaderGroup.listShaders; | |
for (final Shader s : shaders) { | |
final ShaderUniform su = s.getShaderManager().getShaderUniform("Progress"); | |
if (su != null) { | |
su.set(this.getProgress()); | |
} | |
} | |
} | |
if(this.blurOverlay.getValue() || this.noOverlay.getValue()) { | |
e.setCancelled(true); | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.BlockFlower; | |
import net.minecraft.block.BlockSapling; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.client.renderer.entity.RenderManager; | |
import net.minecraft.tileentity.TileEntity; | |
import net.minecraft.tileentity.TileEntityChest; | |
import net.minecraft.util.AxisAlignedBB; | |
import net.minecraft.util.BlockPos; | |
import org.lwjgl.opengl.GL11; | |
import java.util.ArrayList; | |
public class ChestESP extends Module { | |
public ChestESP() { | |
super("ChestESP", Category.RENDER, 0); | |
addValue(mcd); | |
} | |
public static void drawBoundingBox(AxisAlignedBB aa) { | |
Tessellator tessellator = Tessellator.getInstance(); | |
WorldRenderer worldRenderer = tessellator.getWorldRenderer(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
tessellator.draw(); | |
} | |
public static void setColor(int colorHex, float alpha) { | |
float red = (colorHex >> 16 & 0xFF) / 255.0F; | |
float green = (colorHex >> 8 & 0xFF) / 255.0F; | |
float blue = (colorHex & 0xFF) / 255.0F; | |
GL11.glColor4f(red, green, blue, alpha == 0.0F ? 1.0F : alpha); | |
} | |
private ArrayList<BlockPos> matchingBlocks = new ArrayList(); | |
public TimeHelper timer = new TimeHelper(); | |
public ValueBoolean mcd = new ValueBoolean("MCD", false); | |
public static void drawRect(double x, double y, double x2, double y2, WorldRenderer var10) | |
{ | |
} | |
public void onRender() { | |
// Main.getMain.cmdManager.sendChatMessage(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ)).getBlock()+""); | |
if (!this.mcd.getValue()) { | |
for (Object e : mc.theWorld.loadedTileEntityList) { | |
TileEntity tileEntity = (TileEntity) e; | |
if (tileEntity instanceof TileEntityChest) { | |
/*/ | |
TileEntityChest tileEntityChest = (TileEntityChest) tileEntity; | |
double renderX = tileEntityChest.getPos().x - RenderManager.renderPosX; | |
double renderY = tileEntityChest.getPos().y - RenderManager.renderPosY; | |
double renderZ = tileEntityChest.getPos().z - RenderManager.renderPosZ; | |
GL11.glPushMatrix(); | |
GL11.glTranslated(renderX, renderY, renderZ); | |
GL11.glPolygonOffset(1.0F, -1.0E7F); | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glBlendFunc(770, 771); | |
// GL11.glDisable(GL11.GL_LIGHTING); | |
GL11.glDisable(GL11.GL_TEXTURE_2D); | |
GL11.glEnable(GL11.GL_LINE_SMOOTH); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(false); | |
setColor(Main.getMain.getPurple(15000, 55500000).getRGB(), 0.3f); | |
drawBoundingBox(new AxisAlignedBB(0.06, 0, 0.06, 0.94, 0.88, 0.94)); | |
GL11.glDisable(GL11.GL_LINE_SMOOTH); | |
GL11.glEnable(GL11.GL_TEXTURE_2D); | |
// GL11.glEnable(GL11.GL_LIGHTING); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(true); | |
GL11.glPopMatrix(); | |
GL11.glScaled(1, 1, 1); | |
GL11.glPolygonOffset(1.0F, 1000000.0F); | |
GL11.glTranslated(-renderX, -renderY, -renderZ); | |
GL11.glPopMatrix(); | |
/*/ | |
GlStateManager.pushMatrix(); | |
GlStateManager.enablePolygonOffset(); | |
GlStateManager.doPolygonOffset(1.0F, -1500000.0F); | |
GlStateManager.translate(tileEntity.getPos().getX() - RenderManager.renderPosX + 0.5D, tileEntity.getPos().getY() - RenderManager.renderPosY + 0.5D, tileEntity.getPos().getZ() - RenderManager.renderPosZ + 0.5D); | |
GlStateManager.rotate(-RenderManager.playerViewY, 0F, 1.0F, 0.0F); | |
GlStateManager.rotate(RenderManager.playerViewX, 1F, 0.0F, 0.0F); | |
GlStateManager.scale(-0.02666667F, -0.02666667F, 0.02666667F); | |
GuiApi.drawRect(-22.5D, -22.5D, -6.5D, -18.5D, -16777216); | |
GuiApi.drawRect(22.5D, -22.5D, 6.5D, -18.5D, -16777216); | |
GuiApi.drawRect(-22.5D, 21.5D, -6.5D, 25.5D, -16777216); | |
GuiApi.drawRect(22.5D, 21.5D, 6.5D, 25.5D, -16777216); | |
GuiApi.drawRect(18.5D, 25.0D, 22.5D, 9.5D, -16777216); | |
GuiApi.drawRect(18.5D, -22.5D, 22.5D, -6.5D, -16777216); | |
GuiApi.drawRect(-18.5D, 25.0D, -22.5D, 9.5D, -16777216); | |
GuiApi.drawRect(-18.5D, -22.5D, -22.5D, -6.5D, -16777216); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GuiApi.drawRect(-22.0D, -22.0D, -7.0D, -19.0D, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(-22.0D, 22.0D, -7.0D, 25.0D,Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(19.0D, -22.0D, 22.0D, -7.0D, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(-19.0D, 22.0D, -22.0D, 10.0D, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(22.0D, 22.0D, 7.0D, 25.0D, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(22.0D, -22.0D, 7.0D, -19.0D,Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(19.0D, 22.0D, 22.0D, 10.0D, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(-19.0D, -22.0D, -22.0D, -7.0D, Main.getMain.getClientColor().getRGB()); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GlStateManager.disablePolygonOffset(); | |
GlStateManager.doPolygonOffset(1.0F, 1500000.0F); | |
GlStateManager.popMatrix(); | |
} | |
} | |
} | |
if (mcd.getValue()) { | |
if (timer.hasReached(3000L)) { | |
timer.reset(); | |
this.matchingBlocks.clear(); | |
for (int y = 30; y >= -30; y--) { | |
for (int x = 30; x >= -30; x--) { | |
for (int z = 30; z >= -30; z--) { | |
int posX = (int) (mc.thePlayer.posX + x); | |
int posY = (int) (mc.thePlayer.posY + y); | |
int posZ = (int) (mc.thePlayer.posZ + z); | |
BlockPos pos = new BlockPos(posX, posY, posZ); | |
if (mc.theWorld.getBlockState(pos).getBlock() instanceof BlockFlower||mc.theWorld.getBlockState(pos).getBlock() instanceof BlockSapling) { | |
this.matchingBlocks.add(pos); | |
} | |
} | |
} | |
} | |
} | |
for (BlockPos pos : this.matchingBlocks) { | |
double renderX = pos.x - RenderManager.renderPosX; | |
double renderY = pos.y - RenderManager.renderPosY; | |
double renderZ = pos.z - RenderManager.renderPosZ; | |
GL11.glPushMatrix(); | |
GL11.glTranslated(renderX, renderY, renderZ); | |
GL11.glPolygonOffset(1.0F, -1.0E7F); | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glBlendFunc(770, 771); | |
// GL11.glDisable(GL11.GL_LIGHTING); | |
GL11.glDisable(GL11.GL_TEXTURE_2D); | |
GL11.glEnable(GL11.GL_LINE_SMOOTH); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(false); | |
setColor(Main.getMain.getPurple(15000, 55500000).getRGB(), 0.3f); | |
drawBoundingBox(new AxisAlignedBB(0.06, 0, 0.06, 0.94, 0.88, 0.94)); | |
GL11.glDisable(GL11.GL_LINE_SMOOTH); | |
GL11.glEnable(GL11.GL_TEXTURE_2D); | |
// GL11.glEnable(GL11.GL_LIGHTING); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(true); | |
GL11.glPopMatrix(); | |
GL11.glScaled(1, 1, 1); | |
GL11.glPolygonOffset(1.0F, 1000000.0F); | |
GL11.glTranslated(-renderX, -renderY, -renderZ); | |
GL11.glPopMatrix(); | |
} | |
} | |
} | |
} | |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.EventRenderScreen; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.GuiApi; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.EntityLivingBase; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
public class ESP extends Module { | |
public ValueBoolean player = new ValueBoolean("players", true); | |
public ESP() { | |
super("ESP", Category.RENDER, 0); | |
} | |
@EventTarget | |
public void on2D(EventRenderScreen screen) { | |
Main.getMain.renderer2d.shouldConvert2d = true; | |
for (Entity e : Main.getMain.renderer2d.upperPos1.keySet()) { | |
if (!mc.theWorld.getLoadedEntityList().contains(e)) { | |
return; | |
} | |
EntityLivingBase en = (EntityLivingBase) e; | |
int n = (int) en.getHealth() * 100 / (int) en.getMaxHealth(); | |
float hX = Main.getMain.renderer2d.getHighestX(e); | |
float lX = Main.getMain.renderer2d.getLowestX(e); | |
float hY = Main.getMain.renderer2d.getHighestY(e); | |
float lY = Main.getMain.renderer2d.getLowestY(e); | |
float xDiff = hX - lX; | |
float yDiff = hY - lY; | |
ScaledResolution sr = new ScaledResolution(); | |
if (hX > 0 && lX < sr.getScaledWidth() && hY > 0 && lY < sr.getScaledHeight()) { | |
if (hY - yDiff < 0 && lY + yDiff > sr.getScaledHeight() || hX - xDiff < 0 && lX + xDiff > sr.getScaledHeight()) { | |
// Main.getMain.cmdManager.sendChatMessage(xDiff + " X ------ " + yDiff + " Y"); | |
return; | |
} | |
double scale = mc.thePlayer.getDistanceToEntity(e); | |
if(scale > 2){ | |
scale = 2; | |
} | |
yDiff *= scale; | |
xDiff *= scale; | |
hX *= scale; | |
lX *= scale; | |
hY *= scale; | |
lY *= scale; | |
GL11.glScaled(1 / scale, 1 / scale, 1 / scale); | |
GL11.glColor3f(0, 0, 0); | |
GuiApi.drawRect(lX - 3, lY - 1, lX + 1, lY + yDiff / 3.5 + 1, 0xff000000); | |
GuiApi.drawRect(hX - 1, lY - 1, hX + 3, lY + yDiff / 3.5 + 1, 0xff000000); | |
GuiApi.drawRect(lX - 3, hY - yDiff / 3.5 - 1, lX + 1, hY + 1, 0xff000000); | |
GuiApi.drawRect(hX - 1, hY - yDiff / 3.5 - 1, hX + 3, hY + 1, 0xff000000); | |
GuiApi.drawRect(lX, hY - 3, lX + xDiff / 3.5 + 1, hY + 1, 0xff000000); | |
GuiApi.drawRect(hX - xDiff / 3.5 - 1, hY - 3, hX, hY + 1, 0xff000000); | |
GuiApi.drawRect(lX, lY - 1, lX + xDiff / 3.5 + 1, lY + 3, 0xff000000); | |
GuiApi.drawRect(hX - xDiff / 3.5 - 1, lY - 1, hX, lY + 3, 0xff000000); | |
GuiApi.drawRect(lX - 2, lY, lX, lY + yDiff / 3.5, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(hX, lY, hX + 2, lY + yDiff / 3.5, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(lX - 2, hY - yDiff / 3.5, lX, hY, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(hX, hY - yDiff / 3.5, hX + 2, hY, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(lX, hY - 2, lX + xDiff / 3.5, hY, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(hX - xDiff / 3.5, hY - 2, hX, hY, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(lX, lY, lX + xDiff / 3.5, lY + 2, Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawRect(hX - xDiff / 3.5, lY, hX, lY + 2, Main.getMain.getClientColor().getRGB()); | |
GL11.glScaled(scale, scale, scale); | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
public class FullBright extends Module { | |
public FullBright() { | |
super("FullBright", Category.RENDER, 0); | |
// TODO Auto-generated constructor stub | |
} | |
public void onEnable(){ | |
if(mc.gameSettings.gammaSetting <= 100){ | |
mc.gameSettings.gammaSetting += 10; | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
public void onDisable(){ | |
if(mc.gameSettings.gammaSetting - 10 >= 0){ | |
mc.gameSettings.gammaSetting -= 10; | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.StaticClickGui.MainPanel; | |
import org.lwjgl.input.Keyboard; | |
public class Gui extends Module { | |
public Gui() { | |
super("Gui", Category.None, Keyboard.KEY_G); | |
} | |
@Override | |
public void onEnable(){ | |
mc.displayGuiScreen(Main.getMain.getClickGui); | |
// mc.displayGuiScreen(new MainPanel()); | |
this.toggleModule(); | |
} | |
} |
package de.Client.Main.Modules.mods.Render; | |
/** | |
* Created by Daniel on 06.10.2017. | |
*/ | |
public class Hurtcam { | |
} |
package de.Client.Main.Modules.mods.Render; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
public class Xray extends Module { | |
public Xray() { | |
super("Xray", Category.RENDER,0); | |
} | |
@Override | |
public void onToggle(){ | |
if(mc.theWorld != null){ | |
mc.renderGlobal.loadRenderers(); | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import net.minecraft.entity.Entity; | |
import java.util.ArrayList; | |
public class AntiBots extends Module{ | |
public AntiBots() { | |
super("Antibots", Category.WORLD, 0); | |
// TODO Auto-generated constructor stub | |
addValue(this.invisibles); | |
addValue(this.hypixel); | |
displayName = "Anti Bots"; | |
} | |
public ValueBoolean invisibles = new ValueBoolean("Invisibles",true); | |
public ValueBoolean hypixel = new ValueBoolean("Hypixel",false); | |
public boolean filterEntity(Entity e){ | |
if(this.invisibles.getValue()){ | |
if(e.isInvisible()){ | |
return false; | |
} | |
} | |
if(this.hypixel.getValue()){ | |
if(e.hasCustomName()){ | |
if(e.getCustomNameTag().replace("§", "$").startsWith("$c")){ | |
return false; | |
} | |
} | |
} | |
return true; | |
} | |
public ArrayList<Entity> goodEntities(){ | |
ArrayList goodEntities = new ArrayList<Entity>(); | |
for(int i = 0; i < mc.theWorld.loadedEntityList.size();++i){ | |
Entity e = (Entity) mc.theWorld.loadedEntityList.get(i); | |
if(e != mc.thePlayer){ | |
if(filterEntity(e)) { | |
goodEntities.add(e); | |
} | |
} | |
} | |
return goodEntities; | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.Macro; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.client.network.NetworkPlayerInfo; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.item.ItemFishingRod; | |
import net.minecraft.network.play.client.C02PacketUseEntity; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; | |
import net.minecraft.network.play.server.S0CPacketSpawnPlayer; | |
import net.minecraft.network.play.server.S18PacketEntityTeleport; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class AutoFish extends Module { | |
public AutoFish() { | |
super("AutoFish", Category.WORLD, Keyboard.KEY_Y); | |
// TODO Auto-generated constructor stub | |
} | |
@Override | |
public void onUpdate() { | |
if (mc.thePlayer.getCurrentEquippedItem() == null) { | |
return; | |
} | |
if (mc.thePlayer.ticksExisted % 4 == 2) { | |
if (mc.thePlayer.getCurrentEquippedItem().getItem() instanceof ItemFishingRod) { | |
// mc.thePlayer.fishEntit | |
if (mc.thePlayer.fishEntity != null) { | |
Main.getMain.cmdManager.sendChatMessage(mc.thePlayer.fishEntity.fishPitch +""); | |
if (mc.thePlayer.fishEntity.fishPitch < -30) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.getCurrentEquippedItem())); | |
} | |
} else { | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.getCurrentEquippedItem())); | |
} | |
} | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import org.lwjgl.opengl.GL11; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.multiplayer.PlayerControllerMP; | |
import net.minecraft.client.renderer.entity.RenderManager; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
public class Civbreak extends Module { | |
public BlockPos pos; | |
public Civbreak() { | |
super("CivBreak", Category.WORLD,0); | |
} | |
public void onEnable(){ | |
this.pos = null; | |
} | |
@Override | |
public void onUpdate() { | |
if(mc.gameSettings.keyBindAttack.pressed){ | |
pos = mc.objectMouseOver.func_178782_a(); | |
} | |
if(!(pos == null )){ | |
if(!(mc.theWorld.getBlockState(pos).getBlock() == Blocks.air)){ | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging( | |
C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK,pos, EnumFacing.DOWN)); | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging( | |
C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK,pos, EnumFacing.DOWN)); | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging( | |
C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK,pos, EnumFacing.DOWN)); | |
mc.thePlayer.swingItem(); | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniValueBooleanToggleSimple; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.Block; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class Fucker extends Module { | |
public ValueDouble range = new ValueDouble("Range",10,10,10); | |
public ValueDouble id = new ValueDouble("id",26,26,26); | |
public Block blockToFuck = Blocks.bed; | |
public ValueBoolean AACTeleport = new ValueBoolean("AACTeleport", true); | |
public TimeHelper t = new TimeHelper(); | |
public Fucker() { | |
super("Fucker", Category.WORLD, Keyboard.KEY_NONE); | |
addValue(range); | |
addValue(id); | |
addValue(AACTeleport); | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniValueBooleanToggleSimple(this,AACTeleport)); | |
return minis; | |
} | |
public void nukeBlock(BlockPos pos){ | |
if(this.AACTeleport.getValue()) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(pos.x, pos.y, pos.z, true)); | |
} | |
// mc.thePlayer.setPosition(pos.x,pos.y,pos.z); | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, pos, EnumFacing.UP)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, pos, EnumFacing.UP)); | |
} | |
public void onUpdate(){ | |
AACTeleport.setValue(false); | |
if(t.hasReached(this.AACTeleport.getValue() ? 200 : 200)){ | |
t.reset(); | |
}else{ | |
return; | |
} | |
blockToFuck = Block.getBlockById((int) this.id.getValue()); | |
int range = (int) this.range.getValue(); | |
if(this.AACTeleport.getValue()){ | |
range = 5; | |
} | |
for(int x = (int) -(range); x < range*2;++x){ | |
for(int y = (int) -(range); y < range*2;++y){ | |
for(int z = (int) -(range); z < range*2;++z){ | |
if(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + x/2,mc.thePlayer.posY + y/2,mc.thePlayer.posZ + z/2)).getBlock() == this.blockToFuck){ | |
nukeBlock(new BlockPos(mc.thePlayer.posX + x/2,mc.thePlayer.posY + y/2,mc.thePlayer.posZ + z/2)); | |
x = (int) (this.range.getValue() *80000); | |
return; | |
} | |
} | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import net.minecraft.block.BlockLiquid; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.util.AxisAlignedBB; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.MathHelper; | |
import net.minecraft.util.MovementInput; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class LiquidWalk extends Module { | |
public ValueBoolean NCP = new ValueBoolean("Ncp", true); | |
public ValueBoolean Dolphine = new ValueBoolean("Dolphine", true); | |
public ValueBoolean AAC = new ValueBoolean("Aac", true); | |
public boolean nextTick; | |
private int airticks; | |
public LiquidWalk() { | |
super("LiquidWalk", Category.WORLD, Keyboard.KEY_J); | |
addValue(NCP); | |
addValue(AAC); | |
addValue(Dolphine); | |
this.displayName = "Liquid Walk"; | |
} | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniOneOfTwo(this,AAC,NCP)); | |
return minis; | |
} | |
public boolean isOnLiquid(AxisAlignedBB boundingBox) { | |
boundingBox = boundingBox.contract(0.01, 0, 0.01).offset(0, -0.01, 0); | |
boolean onLiquid = false; | |
int y = (int) boundingBox.minY; | |
for (int x = MathHelper.floor_double(boundingBox.minX); x < MathHelper | |
.floor_double(boundingBox.maxX + 1); x++) { | |
for (int z = MathHelper.floor_double(boundingBox.minZ); z < MathHelper | |
.floor_double(boundingBox.maxZ + 1); z++) { | |
net.minecraft.block.Block block = getBlock(new BlockPos(x, y, z)); | |
if (block == Blocks.air) { | |
continue; | |
} | |
if (!(block instanceof BlockLiquid)) { | |
return false; | |
} | |
onLiquid = true; | |
} | |
} | |
return onLiquid; | |
} | |
@EventTarget(3) | |
public void onSendPacket(PacketSendEvent event) { | |
if(!this.NCP.getValue() || mc.thePlayer.isInWater()){ | |
return; | |
} | |
if ((!event.isCancelled()) && | |
((event.getPacket() instanceof C03PacketPlayer))) { | |
C03PacketPlayer packet = (C03PacketPlayer)event.getPacket(); | |
if (this.isOnLiquid(mc.thePlayer.boundingBox)) { | |
this.nextTick = (!this.nextTick); | |
if (this.nextTick) { | |
packet.y-= Math.pow(10.0D, -7.0D)-0.2; | |
}else{ | |
} | |
packet.field_149474_g = (!this.nextTick); | |
event.setPacket(packet); | |
} | |
} | |
} | |
public boolean getdown; | |
public boolean getout; | |
public double currentMoveSpeed; | |
@Override | |
public void onUpdate(){ | |
if(this.Dolphine.getValue()){ | |
if(mc.thePlayer.onGround){ | |
this.getdown = true; | |
} | |
if(this.isOnLiquid(mc.thePlayer.boundingBox)){ | |
mc.thePlayer.motionY += 0.025; | |
} | |
if(mc.thePlayer.motionY > 0 && getdown){ | |
if(mc.thePlayer.motionY <= 0.11) mc.thePlayer.motionY *= 1.2671; | |
mc.thePlayer.motionY += 0.05172; | |
mc.thePlayer.motionY *= 1.000001; | |
getout = false; | |
this.nextTick = true; | |
} | |
if(mc.thePlayer.motionY < 0 && this.getdown){ | |
mc.thePlayer.motionY += 0.01528; | |
} | |
airticks++; | |
if(this.isOnLiquid(mc.thePlayer.boundingBox.expand(0,0.01, 0))){ | |
this.getout = (!this.getout); | |
this.airticks =0; | |
this.mc.thePlayer.motionY = (this.getout ? 0.05D : 0.500D); | |
if(!this.getdown){ | |
} | |
this.getdown = true; | |
} | |
} | |
if(this.AAC.getValue()) { | |
if ( mc.thePlayer.isInWater() || !mc.thePlayer.onGround && mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY-1,mc.thePlayer.posZ)).getBlock() instanceof BlockLiquid) { | |
if(mc.thePlayer.onGround) { | |
mc.thePlayer.motionY += 0.03; | |
nextTick = false; | |
} | |
if(!mc.gameSettings.keyBindForward.pressed && ! mc.gameSettings.keyBindBack.pressed && ! mc.gameSettings.keyBindRight.pressed && ! mc.gameSettings.keyBindLeft.pressed){ | |
}else{ | |
airticks = (int) mc.thePlayer.rotationYaw; | |
mc.thePlayer.motionX *= 1.1715; | |
mc.thePlayer.motionZ *= 1.1715; | |
currentMoveSpeed = mc.thePlayer.getSpeed() ; | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()); | |
} | |
if(this.nextTick){ | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()/10); | |
} | |
}else{ | |
} | |
if(mc.thePlayer.onGround && ! mc.thePlayer.isInWater()){ | |
if(!this.nextTick){ | |
mc.thePlayer.setSpeed(mc.thePlayer.getSpeed()/5); | |
} | |
this.nextTick =true; | |
} | |
} | |
} | |
public static net.minecraft.block.Block getBlock(BlockPos pos) { | |
return Minecraft.getMinecraft().theWorld.getBlockState(pos).getBlock(); | |
} | |
public boolean safe() { | |
try { | |
return mc.thePlayer.fallDistance < 3 && NCP.getValue(); | |
} catch (Exception e) { | |
return true; | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.client.renderer.entity.RenderManager; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.util.AxisAlignedBB; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.opengl.GL11; | |
import java.sql.Time; | |
import java.util.ArrayList; | |
public class PathFinder extends Module { | |
public PathFinder() { | |
super("PathFinder", Category.WORLD, Keyboard.KEY_NONE); | |
// TODO Auto-generated constructor stub | |
} | |
public ArrayList<BlockPos> blockPos = new ArrayList(); | |
public BlockPos blockPosToGo; | |
public TimeHelper timeHelper = new TimeHelper(); | |
public void onEnable(){ | |
this.scanForBeds(); | |
} | |
public void onRender(){ | |
for(BlockPos pos : this.blockPos){ | |
double renderX = pos.x - RenderManager.renderPosX; | |
double renderY = pos.y - RenderManager.renderPosY; | |
double renderZ = pos.z - RenderManager.renderPosZ; | |
int x = pos.x; | |
int z = pos.z; | |
int y = pos.y; | |
GL11.glPushMatrix(); | |
GL11.glTranslated(renderX, renderY, renderZ); | |
GL11.glPolygonOffset(1.0F, -1.0E7F); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glBlendFunc(770, 771); | |
// GL11.glDisable(GL11.GL_LIGHTING); | |
GL11.glDisable(GL11.GL_TEXTURE_2D); | |
GL11.glEnable(GL11.GL_LINE_SMOOTH); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(false); | |
GL11.glColor4f(10,0,0,0.3f); | |
this.chestESP(new AxisAlignedBB(0, 0, 0, 1, 1D, 1D)); | |
GL11.glDisable(GL11.GL_LINE_SMOOTH); | |
GL11.glEnable(GL11.GL_TEXTURE_2D); | |
// GL11.glEnable(GL11.GL_LIGHTING); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GL11.glDepthMask(true); | |
GL11.glPolygonOffset(1.0F, 1000000.0F); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GL11.glTranslated(-renderX, -renderY, -renderZ); | |
GL11.glPopMatrix(); | |
} | |
} | |
public void chestESP(AxisAlignedBB aa) { | |
Tessellator tessellator = Tessellator.getInstance(); | |
WorldRenderer worldRenderer = tessellator.getWorldRenderer(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
tessellator.draw(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.maxZ); | |
worldRenderer.addVertex(aa.minX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.minX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.minZ); | |
worldRenderer.addVertex(aa.maxX, aa.maxY, aa.maxZ); | |
worldRenderer.addVertex(aa.maxX, aa.minY, aa.maxZ); | |
tessellator.draw(); | |
} | |
public ArrayList<BlockPos> matchingBlocks= new ArrayList(); | |
public int range = 200; | |
public void scanForBeds(){ | |
this.matchingBlocks.clear(); | |
for (int y = this.range; y >= -this.range; y--) | |
{ | |
for (int x = this.range; x >= -this.range; x--) | |
{ | |
for (int z = this.range; z >= -this.range; z--) | |
{ | |
int posX = (int)(mc.thePlayer.posX + x); | |
int posY = (int)(mc.thePlayer.posY + y); | |
int posZ = (int)(mc.thePlayer.posZ + z); | |
BlockPos pos = new BlockPos(posX, posY, posZ); | |
if(mc.thePlayer.getDistance(pos.x,pos.y,pos.z) > 4) { | |
if (mc.theWorld.getBlockState(pos).getBlock() == Blocks.bed) { | |
matchingBlocks.add(pos); | |
} | |
} | |
} | |
} | |
} | |
} | |
public void findPath(){ | |
if (blockPos.isEmpty()) { | |
return; | |
} | |
int goalX = (int) mc.thePlayer.posX; | |
int goalZ = (int) mc.thePlayer.posZ; | |
for(int i = 0; i<100; ++i){ | |
BlockPos blockPos1 = this.blockPos.get(this.blockPos.size() - 1); | |
if(blockPos1.x > goalX){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x-1,blockPos1.y,blockPos1.z)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x-1,blockPos1.y,blockPos1.z)); | |
}else{ | |
if(blockPos1.z > goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)); | |
} | |
}else if(blockPos1.z < goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)); | |
} | |
} | |
} | |
}else if(blockPos1.x < goalX){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x+1,blockPos1.y,blockPos1.z)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x+1,blockPos1.y,blockPos1.z)); | |
}else{ | |
if(blockPos1.z > goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)); | |
} | |
}else if(blockPos1.z < goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)); | |
} | |
} | |
} | |
}else{ | |
if(blockPos1.z > goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)); | |
} | |
}else if(blockPos1.z < goalZ){ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)); | |
} | |
}else{ | |
if(blockPos1.z == goalZ){ | |
if(blockPos1.x == goalX){ | |
i = 200; | |
} | |
} | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z+1)); | |
}else{ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x,blockPos1.y,blockPos1.z-1)); | |
}else{ | |
if(!mc.theWorld.getBlockState(new BlockPos(blockPos1.x+1,blockPos1.y,blockPos1.z)).getBlock().isFullBlock()){ | |
this.blockPos.add(new BlockPos(blockPos1.x+1,blockPos1.y,blockPos1.z)); | |
}else { | |
if (!mc.theWorld.getBlockState(new BlockPos(blockPos1.x - 1, blockPos1.y, blockPos1.z)).getBlock().isFullBlock()) { | |
this.blockPos.add(new BlockPos(blockPos1.x - 1, blockPos1.y, blockPos1.z - 1)); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
public void teleportToPos(ArrayList<BlockPos> positions){ | |
int distance = 0; | |
for(int i = 0; i < positions.size();++i) { | |
BlockPos pos = positions.get(positions.size()-1); | |
distance++; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(pos.x, pos.y, pos.z, true)); | |
positions.remove(pos); | |
} | |
} | |
public TimeHelper time = new TimeHelper(); | |
public void onUpdate() { | |
if(mc.thePlayer.posY <= 0){ | |
time.reset(); | |
} | |
if (!time.hasReached(10000) && mc.thePlayer.fallDistance < 2 && mc.gameSettings.keyBindAttack.pressed) { | |
mc.thePlayer.fallDistance = 99; | |
BlockPos sPos = new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+1,mc.thePlayer.posZ); | |
for(BlockPos pos : this.matchingBlocks){ | |
mc.thePlayer.setPosition(sPos.x,sPos.y,sPos.z); | |
this.blockPos.clear(); | |
this.blockPos.add(sPos); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.findPath(); | |
this.teleportToPos(this.blockPos); | |
mc.thePlayer.swingItem(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, pos, EnumFacing.UP)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, pos, EnumFacing.UP)); | |
sPos = new BlockPos(pos.x,pos.y+1,pos.z); | |
} | |
} | |
} | |
@Override | |
public boolean isModuleImportant(){ | |
return false; | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import net.minecraft.block.Block; | |
import net.minecraft.block.BlockAir; | |
import net.minecraft.block.BlockHopper; | |
import net.minecraft.enchantment.Enchantment; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C07PacketPlayerDigging; | |
import net.minecraft.util.AxisAlignedBB; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
import org.lwjgl.input.Keyboard; | |
import java.util.Random; | |
public class Phase extends Module { | |
public ValueBoolean skipClip = new ValueBoolean("skipClip",false); | |
public ValueBoolean offset = new ValueBoolean("offset",true); | |
public boolean shouldclip; | |
public Phase() { | |
super("Phase", Category.WORLD, Keyboard.KEY_Y); | |
// TODO Auto-generated constructor stub | |
addValue(skipClip); | |
addValue(offset); | |
} | |
public boolean debugboolean1; | |
public boolean debugboolean2; | |
public boolean debugboolean3; | |
public boolean debugboolean4; | |
private boolean isInsideBlock() { | |
for (int x = MathHelper.floor_double(mc.thePlayer.boundingBox.minX); x < MathHelper.floor_double(mc.thePlayer.boundingBox.maxX) + 1; x++) { | |
for (int y = MathHelper.floor_double(mc.thePlayer.boundingBox.minY); y < MathHelper.floor_double(mc.thePlayer.boundingBox.maxY) + 1; y++) { | |
for (int z = MathHelper.floor_double(mc.thePlayer.boundingBox.minZ); z < MathHelper.floor_double(mc.thePlayer.boundingBox.maxZ) + 1; z++) | |
{ | |
Block block = mc.theWorld.getBlockState(new BlockPos(x, y, z)).getBlock(); | |
if ((block != null) && (!(block instanceof BlockAir))) | |
{ | |
AxisAlignedBB boundingBox = block.getCollisionBoundingBox(mc.theWorld, new BlockPos(x, y, z), mc.theWorld.getBlockState(new BlockPos(x, y, z))); | |
if ((block instanceof BlockHopper)) { | |
boundingBox = new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1); | |
} | |
if ((boundingBox != null) && (mc.thePlayer.boundingBox.intersectsWith(boundingBox))) { | |
return true; | |
} | |
} | |
} | |
} | |
} | |
return false; | |
} | |
public void onUpdate(){ | |
/*/ | |
/*/ | |
/*/ | |
if(mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround){ | |
mc.thePlayer.motionY = -0.4; | |
debugboolean2 = true; | |
} | |
if ( debugboolean2) { | |
double blocks = 0.00001; | |
double blocks2 = 1; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
this.debugboolean2 = false; | |
// mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+1,mc.thePlayer.posZ)).; | |
// mc.thePlayer.swingIte m(); | |
// mc.thePlayer.ticksExisted = 0; | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.setSpeed(0.1); | |
} | |
/*/ | |
if(mc.thePlayer.isCollidedHorizontally && mc.thePlayer.ticksExisted % 7 == 1){ | |
mc.thePlayer.setSpeed(0); | |
double blocks = 0.00001; | |
double blocks2 = 1; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * 0.03 * x + 0.0D * 0.03 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * 0.03 * z - 0.0D * 0.03 * x)); | |
}else{ | |
double blocks = 0.00001; | |
if(this.isInsideBlock()){ | |
mc.thePlayer.setSpeed(0.5); | |
}else{ | |
if(mc.thePlayer.getSpeed() >0.2) { | |
mc.thePlayer.setSpeed(0.1); | |
} | |
} | |
} | |
if(false) { | |
if (mc.gameSettings.keyBindSneak.pressed) { | |
if (mc.thePlayer.ticksExisted % 13 == 2 && mc.thePlayer.onGround) { | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ), EnumFacing.DOWN)); | |
} | |
return; | |
} | |
shouldclip = false; | |
if (this.isInsideBlock()) { | |
if (!mc.thePlayer.onGround) { | |
mc.thePlayer.motionY = -1; | |
} | |
mc.gameSettings.keyBindForward.pressed = false; | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ), EnumFacing.DOWN)); | |
if (mc.thePlayer.ticksExisted > 10) { | |
double blocks = -0.1; | |
// double blocks2 = 2; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x), false)); | |
mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
mc.thePlayer.jump(); | |
this.debugboolean2 = true; | |
} | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * -blocks * x + 0.0D * -blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * -blocks * z - 0.0D * -blocks * x),false)); | |
// mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)); | |
} else { | |
if (debugboolean2) { | |
mc.thePlayer.setSpeed(0.01); | |
mc.gameSettings.keyBindForward.pressed = true; | |
} | |
double blocks = 0.00001; | |
double blocks2 = 1; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
// mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+1,mc.thePlayer.posZ)).; | |
if (!mc.thePlayer.onGround && mc.thePlayer.motionY < -00) { | |
if (debugboolean1) { | |
debugboolean2 = false; | |
debugboolean1 = false; | |
// this.toggleModule(); | |
// mc.thePlayer.swingItem(); | |
mc.thePlayer.ticksExisted = 0; | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.playerController.func_178891_a(this.mc, mc.playerController, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY , mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, new BlockPos(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY + 1, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)), EnumFacing.DOWN)); | |
} | |
} else { | |
debugboolean1 = true; | |
} | |
} | |
} | |
// mc.thePlayer.fallDistance = 0.0f; | |
/*/ | |
} | |
/*/ | |
// mc.thePlayer.posZ , false)); | |
// mc.thePlayer.rotationYaw += 30; | |
if(this.skipClip.getValue()){ | |
if(mc.thePlayer.isCollidedHorizontally){ | |
double blocks = 0.00001; | |
double blocks2 = 2; | |
double x = Math.cos(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double z = Math.sin(Math.toRadians(mc.thePlayer.rotationYaw + 90.0F)); | |
double y = mc.thePlayer.posY; | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),false)); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * -blocks * x + 0.0D * -blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * -blocks * z - 0.0D * -blocks * x),false)); | |
mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * blocks2 * x + 0.0D * blocks2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks2 * z - 0.0D * blocks2 * x)); | |
} | |
} | |
if(this.offset.getValue()) { | |
if (mc.thePlayer.isCollidedHorizontally) { | |
double x = -MathHelper.sin(mc.thePlayer.getDirection()) * 0.5; | |
double z = MathHelper.cos(mc.thePlayer.getDirection()) * 0.5; | |
double y = mc.thePlayer.posY; | |
mc.thePlayer.setPosition(mc.thePlayer.posX + (1.0D * 0.2 * x + 0.0D * 0.2 * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * 0.2 * z - 0.0D * 0.2 * x)); | |
// for(int i = 0; i < 10; i++) { | |
boolean isInsideBlock; | |
for (int x1 = MathHelper.floor_double(mc.thePlayer.boundingBox.minX); x1 < MathHelper.floor_double(mc.thePlayer.boundingBox.maxX) + 1; x1++) { | |
for (int y1 = MathHelper.floor_double(mc.thePlayer.boundingBox.minY); y1 < MathHelper.floor_double(mc.thePlayer.boundingBox.maxY) + 1; y1++) { | |
for (int z1 = MathHelper.floor_double(mc.thePlayer.boundingBox.minZ); z1 < MathHelper.floor_double(mc.thePlayer.boundingBox.maxZ) + 1; z1++) | |
{ | |
Block block = mc.theWorld.getBlockState(new BlockPos(x, y, z)).getBlock(); | |
if ((block != null) && (!(block instanceof BlockAir))) | |
{ | |
AxisAlignedBB boundingBox = block.getCollisionBoundingBox(mc.theWorld, new BlockPos(x, y, z), mc.theWorld.getBlockState(new BlockPos(x, y, z))); | |
if ((block instanceof BlockHopper)) { | |
boundingBox = new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1); | |
} | |
if ((boundingBox != null) && (mc.thePlayer.boundingBox.intersectsWith(boundingBox))) { | |
isInsideBlock = true; | |
} | |
} | |
} | |
} | |
} | |
isInsideBlock = false; | |
if(!isInsideBlock) { | |
// mc.thePlayer.jump(); | |
mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + x, mc.thePlayer.posY, | |
mc.thePlayer.posZ + z, false)); | |
}else{ | |
mc.thePlayer.setPosition(mc.thePlayer.posX + x, -99, | |
mc.thePlayer.posZ + z); | |
// mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), mc.thePlayer.posY, mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x),false)); | |
} | |
} | |
if(mc.gameSettings.keyBindSneak.pressed){ | |
mc.thePlayer.setPosition(mc.thePlayer.posX,mc.thePlayer.posY-1,mc.thePlayer.posZ); | |
} | |
if(mc.gameSettings.keyBindJump.pressed && !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX,mc.thePlayer.posY+1,mc.thePlayer.posZ)).getBlock() instanceof BlockAir)){ | |
mc.thePlayer.setPosition(mc.thePlayer.posX,mc.thePlayer.posY+0.42,mc.thePlayer.posZ); | |
} | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.*; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.Block; | |
import net.minecraft.block.BlockAir; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.projectile.EntitySnowball; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.item.ItemBlock; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.network.play.client.*; | |
import net.minecraft.potion.Potion; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
import net.minecraft.util.Vec3; | |
import org.lwjgl.opengl.GL11; | |
import java.math.BigDecimal; | |
import java.math.RoundingMode; | |
public class ScaffoldWalk | |
extends Module | |
{ | |
public static boolean Eagle = false; | |
public static boolean ScaffoldWalk = true; | |
public static ValueBoolean jump = new ValueBoolean("Jump", false); | |
public static long placeDelay = 5L; | |
public static float[] values = { 0.0F, 0.0F }; | |
public static ValueBoolean Safewalk = new ValueBoolean("Safewalk", true); | |
public int startposY; | |
public ValueBoolean Silent = new ValueBoolean("Silent", true); | |
public ValueBoolean PSave = new ValueBoolean("PSave", true); | |
public ValueBoolean AAC = new ValueBoolean("AAC", true); | |
public ValueBoolean TAC = new ValueBoolean("TAC", true); | |
public ValueBoolean SlowMode = new ValueBoolean("SlowMode", false); | |
public ValueDouble SlowModeTime = new ValueDouble("SlowModeTime", 1000.0D, 1000.0D, 1000.0D); | |
public ValueDouble SlowModeBlock = new ValueDouble("SlowModeBlock", 3.0D, 10.0D, 10.0D); | |
public int blockcounter; | |
public boolean nextTick; | |
public BlockPos postoLook; | |
public int blockposy; | |
public double rotation; | |
public int ticktoWait; | |
private float lastYaw; | |
private float lastPitch; | |
private BlockData blockData = null; | |
private TimeHelper time = new TimeHelper(); | |
public ScaffoldWalk() | |
{ | |
super("Scaffoldwalk", Category.WORLD, 0); | |
addValue(TAC); | |
addValue(AAC); | |
addValue(Silent); | |
addValue(this.PSave); | |
addValue(this.SlowMode); | |
addValue(this.SlowModeBlock); | |
addValue(this.SlowModeTime); | |
addValue(jump); | |
addValue(Safewalk); | |
this.displayName = "Scaffold Walk"; | |
} | |
public static Block getBlock(BlockPos pos) | |
{ | |
return Minecraft.getMinecraft().theWorld.getBlockState(pos).getBlock(); | |
} | |
@EventTarget | |
public void setRotation(PacketSendEvent event) | |
{ | |
if(this.AAC.getValue()){ | |
if(!Eagle){ | |
return; | |
} | |
if(mc.theWorld.getBlockState(this.blockData.position).getBlock() == Blocks.air){ | |
return; | |
} | |
} | |
if ((event.getPacket() instanceof C03PacketPlayer)) | |
{ | |
if(!this.AAC.getValue()){ | |
C03PacketPlayer p = (C03PacketPlayer)event.getPacket(); | |
p.pitch = 65.0F; | |
p.yaw += 180.0F; | |
event.setPacket(p); | |
}else{ | |
//mc.thePlayer.rotationPitch = this.getFacingRotations(this.blockData.position.x,this.blockData.position.y, this.blockData.position.z, this.blockData.face)[1]; | |
C03PacketPlayer p = (C03PacketPlayer)event.getPacket(); | |
p.pitch = 83.24f; | |
// mc.thePlayer.rotationPitch = this.getFacingRotations(this.blockData.position.x,this.blockData.position.y, this.blockData.position.z, this.blockData.face)[1]; | |
p.yaw = (float) rotation+180; | |
//mc.thePlayer.rotationYaw= (float) this.rotation; | |
p.field_149474_g = true; | |
event.setPacket(p); | |
} | |
} | |
} | |
public float[] getFacingRotations(int x, int y, int z, EnumFacing facing) | |
{ | |
double diffX = x - (mc.thePlayer.posX)+0.5; | |
double diffZ = z -(mc.thePlayer.posZ)+0.5; | |
double diffY; | |
diffY = y- 0.5-(mc.thePlayer.posY); | |
double dist = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ); | |
float yaw = (float)(Math.atan2(diffZ, diffX) * 180.0 / 3.141592653589793) - 90.0f; | |
float pitch = (float)(- Math.atan2(diffY, dist) * 180.0 / 3.141592653589793); | |
return new float[]{mc.thePlayer.rotationYaw + MathHelper.wrapAngleTo180_float(yaw - mc.thePlayer.rotationYaw), mc.thePlayer.rotationPitch + MathHelper.wrapAngleTo180_float(pitch - mc.thePlayer.rotationPitch)}; | |
} | |
public float[] getAngles(Entity e) | |
{ | |
return new float[] { getYawChangeToEntity(e) + mc.thePlayer.rotationYaw, getPitchChangeToEntity(e) + mc.thePlayer.rotationPitch }; | |
} | |
public boolean isatEdge(){ | |
return false; | |
} | |
public float getYawChangeToEntity(Entity entity) | |
{ | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double yawToEntity1 = 0.0D; | |
if ((deltaZ < 0.0D) && (deltaX < 0.0D)) | |
{ | |
yawToEntity1 = 90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} | |
else | |
{ | |
double yawToEntity11; | |
if ((deltaZ < 0.0D) && (deltaX > 0.0D)) { | |
yawToEntity11 = -90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} else { | |
yawToEntity11 = Math.toDegrees(-Math.atan(deltaX / deltaZ)); | |
} | |
} | |
return MathHelper.wrapAngleTo180_float(-(mc.thePlayer.rotationYaw - (float)yawToEntity1)); | |
} | |
public float getPitchChangeToEntity(Entity entity) | |
{ | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double deltaY = entity.posY - 1.6D + entity.getEyeHeight() - mc.thePlayer.posY; | |
double distanceXZ = MathHelper.sqrt_double(deltaX * deltaX + deltaZ * deltaZ); | |
double pitchToEntity = -Math.toDegrees(Math.atan(deltaY / distanceXZ)); | |
return -MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationPitch - (float)pitchToEntity); | |
} | |
@EventTarget | |
public void swingarm(UpdateEvent event) | |
{ | |
if (ScaffoldWalk) | |
{ | |
if (this.AAC.getValue() || (!mc.thePlayer.isSneaking())) | |
{ | |
int y = (int) mc.thePlayer.posY; | |
if(jump.getValue()){ | |
y = this.blockposy+1; | |
} | |
BlockPos bpos = new BlockPos(mc.thePlayer.posX, y - 1.0D, | |
mc.thePlayer.posZ); | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX, y - 1.0D,mc.thePlayer.posZ+1)).getBlock() == Blocks.air){ | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX, y - 1.0D,mc.thePlayer.posZ-1)).getBlock() == Blocks.air){ | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX+1, y - 1.0D,mc.thePlayer.posZ)).getBlock() == Blocks.air){ | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX-1, y - 1.0D,mc.thePlayer.posZ)).getBlock() == Blocks.air){ | |
// SunAPI.sendChatMessageWithPR("Detected Impossible blockpos - trying to find a save one"); | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX+1, y- 1.0D,mc.thePlayer.posZ+1)).getBlock() != Blocks.air){ | |
bpos = new BlockPos(mc.thePlayer.posX, y- 1.0D,mc.thePlayer.posZ+1); | |
} | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX-1, y - 1.0D,mc.thePlayer.posZ-1)).getBlock() != Blocks.air){ | |
bpos = new BlockPos(mc.thePlayer.posX, y - 1.0D,mc.thePlayer.posZ-1); | |
} | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX+1, y - 1.0D,mc.thePlayer.posZ-1)).getBlock() != Blocks.air){ | |
bpos = new BlockPos(mc.thePlayer.posX+1, y - 1.0D,mc.thePlayer.posZ); | |
} | |
if(mc.theWorld.getBlockState( new BlockPos(mc.thePlayer.posX-1, y - 1.0D,mc.thePlayer.posZ+1)).getBlock() != Blocks.air){ | |
bpos = new BlockPos(mc.thePlayer.posX-1,y - 1.0D,mc.thePlayer.posZ); | |
} | |
} | |
} | |
} | |
} | |
this.blockData = getBlockData(bpos); | |
if (this.blockData != null) { | |
values = getFacingRotations1(this.blockData.position.getX(), | |
this.blockData.position.getY(), this.blockData.position.getZ(), EnumFacing.DOWN); | |
} | |
} | |
} | |
} | |
public float[] getFacingRotations1(int x, int y, int z, EnumFacing facing) { | |
Entity temp = new EntitySnowball(mc.theWorld); | |
temp.posX = (x + 0.5D); | |
temp.posY = (y + 0.5D); | |
temp.posZ = (z + 0.5D); | |
temp.posX += facing.getDirectionVec().getX() * 0.25D; | |
temp.posY += facing.getDirectionVec().getY() * 0.25D; | |
temp.posZ += facing.getDirectionVec().getZ() * 0.25D; | |
return getAngles(temp); | |
} | |
@EventTarget | |
public void onRenderHud(EventRenderScreen e){ | |
ScaledResolution sr = new ScaledResolution(); | |
startposY = 0; | |
for(int i = 0; i <mc.thePlayer.inventory.mainInventory.length;++i){ | |
if(mc.thePlayer.inventory.mainInventory[i] != null){ | |
if(mc.thePlayer.inventory.mainInventory[i].getItem() instanceof ItemBlock){ | |
startposY +=mc.thePlayer.inventory.mainInventory[i].stackSize ; | |
} | |
} | |
} | |
GL11.glPushMatrix(); | |
GL11.glScaled(1.3, 1.3, 1.3); | |
//fr.drawStringWithShadow("�6" + this.startposY, ((int)((sr.getScaledWidth()/2-10-fr.getStringWidth( this.startposY+""))/1.3f)), ((int)(sr.getScaledHeight()/2-4)/1.3f), 0xffffffff); | |
GL11.glScaled(1, 1, 1); | |
GL11.glPopMatrix(); | |
} | |
public void onRender(){ | |
if(!this.getState()){ | |
} | |
} | |
@Override | |
public void onEnable(){ | |
if(mc.thePlayer != null){ | |
blockposy = (int) (mc.thePlayer.posY-1); | |
} | |
super.onEnable(); | |
} | |
private double getBaseMoveSpeed() { | |
double baseSpeed = 0.2873D; | |
if (this.mc.thePlayer.isPotionActive(Potion.moveSpeed)) { | |
int amplifier = this.mc.thePlayer.getActivePotionEffect( | |
Potion.moveSpeed).getAmplifier(); | |
baseSpeed *= (1.0D + 0.2D * (amplifier + 1)); | |
} | |
return baseSpeed; | |
} | |
@EventTarget | |
public void onMove(MoveEvent e){ | |
if(this.AAC.getValue()){ | |
mc.thePlayer.setSprinting(false); | |
int yaw = 0; | |
double rotation2 = mc.thePlayer.rotationYaw > 0 ? -mc.thePlayer.rotationYaw : mc.thePlayer.rotationYaw; | |
boolean reverse = mc.thePlayer.rotationYaw > 0; | |
double rotation = ((int)rotation2 % 360)*-1; | |
if(rotation <= 45 || rotation > 315){ | |
yaw = 0; | |
} | |
if(rotation > 45 && rotation < 135){ | |
yaw = 90; | |
} | |
if(rotation >= 135 && rotation < 225){ | |
yaw = 180; | |
} | |
if(rotation >= 225 && rotation <= 315){ | |
yaw = 270; | |
} | |
if(!reverse){ | |
yaw *=-1; | |
} | |
this.rotation = yaw; | |
yaw += 45; | |
double speed = this.getBaseMoveSpeed()/1.67; | |
e.setX(mc.thePlayer.moveForward * speed * Math.cos(Math.toRadians(yaw + 90.0f)) + mc.thePlayer.moveForward * speed * Math.sin(Math.toRadians(yaw + 90.0f))); | |
e.setZ(mc.thePlayer.moveForward * speed * Math.sin(Math.toRadians(yaw + 90.0f)) - mc.thePlayer.moveForward *speed * Math.cos(Math.toRadians(yaw + 90.0f))); | |
double blocks = 0.05; | |
double x = Math.cos(Math.toRadians(this.rotation+ 90.0F)); | |
double z = Math.sin(Math.toRadians(this.rotation + 90.0F)); | |
double y = mc.thePlayer.posY; | |
// mc.thePlayer.setPosition(Wrapper.mc.thePlayer.posX + (1.0D * blocks * x + 0.0D * blocks * z), Wrapper.mc.thePlayer.posY, Wrapper.mc.thePlayer.posZ + (1.0D * blocks * z - 0.0D * blocks * x)); | |
if(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX+ (1.0D * blocks * x + 0.0D * blocks * z),mc.thePlayer.posY-1,mc.thePlayer.posZ+ (1.0D * blocks * z - 0.0D * blocks * x))).getBlock() instanceof BlockAir){ | |
this.ticktoWait ++; | |
}else{ | |
this.ticktoWait = 0; | |
} | |
if(ticktoWait > 0){ | |
this.Eagle = true; | |
}else{ | |
this.Eagle = false; | |
} | |
} | |
} | |
public void onUpdate() | |
{ | |
mc.timer.timerSpeed = 1; | |
try{ | |
//SunAPI.sendChatMessage(""+this.Eagle); | |
if(AAC.getValue()){ | |
if(!this.Eagle){ | |
return; | |
} | |
} | |
if(!this.Silent.getValue()){ | |
if(mc.thePlayer.getCurrentEquippedItem() == null){ | |
return; | |
} | |
if(!(mc.thePlayer.getCurrentEquippedItem().getItem() instanceof ItemBlock)){ | |
return; | |
} | |
} | |
if(jump.getValue()){ | |
if(mc.thePlayer.onGround){ | |
blockposy = (int) (mc.thePlayer.posY-1) ; | |
} | |
}else{ | |
blockposy = this.blockData.position.y ; | |
} | |
boolean hasempyslot = false; | |
boolean noitemsleft = true; | |
ItemStack itemstacktouse = null; | |
boolean needtoplace = mc.theWorld.getBlockState(this.blockData.position).getBlock() == Blocks.air; | |
if(this.AAC.getValue()){ | |
if(!Eagle){ | |
return; | |
} | |
if(mc.theWorld.getBlockState(this.blockData.position).getBlock() == Blocks.air){ | |
return; | |
} | |
} | |
int i2 = 8888; | |
for(int i = 0; i <mc.thePlayer.inventory.mainInventory.length;++i){ | |
if(i < 9){ | |
if(mc.thePlayer.inventory.mainInventory[i] != null){ | |
if(mc.thePlayer.inventory.mainInventory[i].getItem() instanceof ItemBlock){ | |
if(((ItemBlock)mc.thePlayer.inventory.mainInventory[i].getItem()).getBlock().isFullBlock() && ((ItemBlock)mc.thePlayer.inventory.mainInventory[i].getItem()).getBlock() != Blocks.command_block ||((ItemBlock)mc.thePlayer.inventory.mainInventory[i].getItem()).getBlock() == Blocks.glass ){ | |
if(Eagle || !this.AAC.getValue()){ | |
i2 = i; | |
} | |
itemstacktouse = mc.thePlayer.inventory.mainInventory[i]; | |
noitemsleft = false; | |
} | |
} | |
}else{ | |
hasempyslot = true; | |
} | |
}else{ | |
if(hasempyslot &&noitemsleft){ | |
if(mc.thePlayer.inventory.mainInventory[i] != null){ | |
if(mc.thePlayer.inventory.mainInventory[i].getItem() instanceof ItemBlock){ | |
mc.playerController.windowClick(0, i, 1, 1, mc.thePlayer); | |
} | |
} | |
} | |
} | |
} | |
if(i2 != 8888){ | |
if(this.Silent.getValue()) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(i2)); | |
} | |
} | |
if(itemstacktouse == null){ | |
} | |
if ((this.blockcounter >= this.SlowModeBlock.getValue()) && (this.SlowMode.getValue())) | |
{ | |
this.time.reset(); | |
this.blockcounter = 0; | |
} | |
try | |
{ | |
if ((!mc.thePlayer.isSneaking())) { | |
this.lastPitch += 1.0F; | |
} | |
if(this.AAC.getValue()){ | |
BlockPos blockPos = new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0D, mc.thePlayer.posZ); | |
if (mc.thePlayer.fallDistance <= 4.0F) { | |
if ((mc.theWorld.getBlockState(blockPos).getBlock() != Blocks.air)) { | |
return; | |
} | |
} | |
} | |
if ((this.time.hasReached((long) this.SlowModeTime.getValue())) || (!this.SlowMode.getValue())) | |
{ | |
Vec3 vector = new Vec3(this.blockData.position.getX(), this.blockData.position.getY(), this.blockData.position.getZ()); | |
float var7 = (float)(vector.xCoord - (double)this.blockData.position.getX()); | |
float var8 = (float)(vector.yCoord - (double)this.blockData.position.getY()); | |
float var9 = (float)(vector.zCoord - (double)this.blockData.position.getZ()); | |
if(this.PSave.getValue()){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(this.blockData.position, this.blockData.face.getIndex(), itemstacktouse, var7, var8, var9)); | |
}else{ | |
if(this.TAC.getValue()){ | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.STOP_SPRINTING)); | |
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer,C0BPacketEntityAction.Action.START_SPRINTING)); | |
} | |
if(Silent.getValue()) { | |
mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, itemstacktouse, this.blockData.position, this.blockData.face, new Vec3(this.blockData.position.getX(), this.blockData.position.getY(), this.blockData.position.getZ())); | |
}else{ | |
mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, mc.thePlayer.getCurrentEquippedItem(), this.blockData.position, this.blockData.face, new Vec3(this.blockData.position.getX(), this.blockData.position.getY(), this.blockData.position.getZ())); | |
} | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C0APacketAnimation() ); | |
this.blockcounter += 1; | |
} | |
} | |
catch (Exception ignored) {} | |
if(this.Silent.getValue()) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); | |
} | |
}catch(Exception ignored){ | |
} | |
} | |
@EventTarget | |
public void onPostMotionUpdate(PreSendMotion event) | |
{ | |
if (ScaffoldWalk) | |
{ | |
if (mc.theWorld == null) { | |
return; | |
} | |
if(this.AAC.getValue()){ | |
} | |
} | |
} | |
public BlockData getBlockData(BlockPos pos) | |
{ | |
return | |
mc.theWorld.getBlockState(pos.add(0, -1, 0)).getBlock() != Blocks.air ? | |
new BlockData(pos.add(0, -1, 0), EnumFacing.UP) : mc.theWorld.getBlockState(pos.add(-1, 0, 0)).getBlock() != Blocks.air ? new BlockData(pos.add(-1, 0, 0), EnumFacing.EAST) : mc.theWorld.getBlockState(pos.add(1, 0, 0)).getBlock() != Blocks.air ? new BlockData(pos.add(1, 0, 0), EnumFacing.WEST) : mc.theWorld.getBlockState(pos.add(0, 0, -1)).getBlock() != Blocks.air ? new BlockData(pos.add(0, 0, -1), EnumFacing.SOUTH) : mc.theWorld.getBlockState(pos.add(0, 0, 1)).getBlock() != Blocks.air ? new BlockData(pos.add(0, 0, 1), EnumFacing.NORTH) : new BlockData(pos.add(0, -1, 0), EnumFacing.UP); | |
} | |
} | |
class BlockData { | |
public BlockPos position; | |
public EnumFacing face; | |
public BlockData(BlockPos position, EnumFacing face) { | |
this.position = position; | |
this.face = face; | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.PacketReceiveEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.ClickGui.Panels.Minitypes.MiniOneOfTwo; | |
import de.Client.Utils.Macro; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.client.network.NetworkPlayerInfo; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.item.ItemFishingRod; | |
import net.minecraft.network.play.client.*; | |
import net.minecraft.network.play.server.S0CPacketSpawnPlayer; | |
import net.minecraft.network.play.server.S18PacketEntityTeleport; | |
import net.minecraft.util.EnumFacing; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.lwjgl.input.Keyboard; | |
import java.util.ArrayList; | |
public class Speedmine extends Module { | |
public Speedmine() { | |
super("Speedmine", Category.WORLD, Keyboard.KEY_Y); | |
// TODO Auto-generated constructor stub | |
addValue(AAC); | |
addValue(NCP); | |
} | |
public ValueBoolean AAC = new ValueBoolean("AAC",true); | |
public ValueBoolean NCP = new ValueBoolean("NCP",false); | |
@Override | |
public ArrayList<Mini> createArray(){ | |
ArrayList<Mini> minis = new ArrayList<>(); | |
minis.add( new MiniOneOfTwo(this,AAC,NCP)); | |
return minis; | |
} | |
@Override | |
public void onUpdate() { | |
try { | |
if(this.NCP.getValue()) { | |
mc.playerController.blockHitDelay = 0; | |
mc.playerController.curBlockDamageMP += mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getPlayerRelativeBlockHardness(this.mc.thePlayer, this.mc.thePlayer.worldObj, mc.objectMouseOver.func_178782_a()) / 10; | |
if (mc.theWorld.getBlockState(mc.objectMouseOver.func_178782_a()) | |
.getBlock().getPlayerRelativeBlockHardness(this.mc.thePlayer, this.mc.thePlayer.worldObj, mc.objectMouseOver.func_178782_a()) > 0.2) { | |
mc.playerController.curBlockDamageMP += 0.2; | |
} | |
} | |
if (AAC.getValue()) { | |
if(mc.playerController.curBlockDamageMP > 0.0) { | |
mc.thePlayer.sendQueue.addToSendQueue(new C0APacketAnimation()); | |
mc.thePlayer.sendQueue.addToSendQueue(new C0APacketAnimation()); | |
mc.playerController.curBlockDamageMP +=0.009; | |
} | |
if(mc.playerController.blockHitDelay > 3){ | |
mc.playerController.blockHitDelay = 3; | |
} | |
} | |
}catch (Exception e){ | |
} | |
} | |
} |
package de.Client.Main.Modules.mods.World; | |
import java.util.ArrayList; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.MoveEvent; | |
import de.Client.Events.Events.PacketSendEvent; | |
import de.Client.Events.Events.PreSendMotion; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Utils.RotationUtil; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.block.BlockAir; | |
import net.minecraft.block.state.IBlockState; | |
import net.minecraft.client.entity.EntityPlayerSP; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.item.ItemBlock; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.network.play.client.C03PacketPlayer; | |
import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook; | |
import net.minecraft.network.play.client.C09PacketHeldItemChange; | |
import net.minecraft.network.play.client.C0APacketAnimation; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.Vec3; | |
public class Tower extends Module { | |
public static ValueBoolean motion = new ValueBoolean("motion",false); | |
public static ValueBoolean teleport = new ValueBoolean("teleport",false); | |
public static ValueBoolean Other = new ValueBoolean("Other",false); | |
public static ValueBoolean jump = new ValueBoolean("jump",false); | |
public static ValueBoolean aac = new ValueBoolean("teleport",false); | |
public static ValueBoolean spartan = new ValueBoolean("lowjump",false); | |
public static ValueBoolean nyra = new ValueBoolean("nyra",false); | |
public Tower() { | |
super("Tower", Category.WORLD,0); | |
addValue(jump); | |
addValue(teleport); | |
addValue(motion); | |
addValue(this.aac); | |
addValue(this.Other); | |
addValue(this.spartan); | |
addValue(this.nyra); | |
} | |
public static boolean Eagle = false; | |
public static boolean ScaffoldWalk = true; | |
public static ValueBoolean nullDelay = new ValueBoolean("Null Delay", false); | |
// Standart: 75L | |
public static long placeDelay = 5L; | |
public static float[] values = { 0.0F, 0.0F }; | |
private float lastYaw; | |
private float lastPitch; | |
private BlockData blockData = null; | |
private TimeHelper time = new TimeHelper(); | |
private boolean dont; | |
private int cooldown; | |
private int delay; | |
private boolean performJump; | |
@Override | |
public void onDisable(){ | |
mc.timer.timerSpeed = 1; | |
super.onDisable(); | |
} | |
@EventTarget | |
public void setRotation(PacketSendEvent event) { | |
if(event.getPacket() instanceof C03PacketPlayer){ | |
C03PacketPlayer p = (C03PacketPlayer) event.getPacket(); | |
p.pitch = 90; | |
event.setPacket(p); | |
} | |
} | |
@EventTarget | |
public void onMove(MoveEvent e){ | |
} | |
private ArrayList<BlockPos> getCollisionBlocks1() | |
{ | |
ArrayList<BlockPos> collidedBlocks = new ArrayList(); | |
EntityPlayerSP p = mc.thePlayer; | |
int var3 = (int)Math.floor(p.posX); | |
while (var3 <= (int)Math.floor(p.posX)) | |
{ | |
int var4 = (int)p.posY - 1; | |
while (var4 <= (int)p.posY) | |
{ | |
int var5 = (int)Math.floor(p.posZ); | |
while (var5 <= (int)Math.floor(p.posZ)) | |
{ | |
BlockPos blockPos = new BlockPos(var3, var4, var5); | |
try | |
{ | |
if ((var4 > p.posY - 2.0D) && (var4 <= p.posY - 1.0D)) { | |
collidedBlocks.add(blockPos); | |
} | |
} | |
catch (Throwable localThrowable) {} | |
var5++; | |
} | |
var4++; | |
} | |
var3++; | |
} | |
return collidedBlocks; | |
} | |
private ArrayList<BlockPos> getCollisionBlocks() | |
{ | |
ArrayList<BlockPos> collidedBlocks = new ArrayList(); | |
EntityPlayerSP p = mc.thePlayer; | |
for (int var3 = (int)Math.floor(p.posX); var3 <= (int)Math.floor(p.posX); var3++) { | |
for (int var4 = (int)p.posY - 1; var4 <= (int)p.posY; var4++) { | |
for (int var5 = (int)Math.floor(p.posZ); var5 <= (int)Math.floor(p.posZ); var5++) | |
{ | |
BlockPos blockPos = new BlockPos(var3, var4, var5); | |
try | |
{ | |
if ((var4 > p.posY - 2.0D) && (var4 <= p.posY - 1)) { | |
collidedBlocks.add(blockPos); | |
} | |
} | |
catch (Throwable localThrowable) {} | |
} | |
} | |
} | |
return collidedBlocks; | |
} | |
@Override | |
public void onUpdate() { | |
try { | |
if (this.nyra.getValue()) { | |
{ | |
++this.lastPitch; | |
EntityPlayerSP p = mc.thePlayer; | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
if (p.onGround) { | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
p.motionY = 0.42; | |
} | |
ArrayList<BlockPos> collisionBlocks = getCollisionBlocks(); | |
for (BlockPos pos : collisionBlocks) { | |
IBlockState state = p.worldObj.getBlockState(pos); | |
if ((state.getBlock() instanceof BlockAir)) { | |
mc.thePlayer.swingItem(); | |
p.motionY = -5000.0D; | |
} else { | |
mc.thePlayer.motionY += 0.1; | |
} | |
} | |
} | |
} | |
boolean hasempyslot = false; | |
boolean noitemsleft = true; | |
ItemStack itemstacktouse = null; | |
int itemtouse = 0; | |
for (int i = 0; i < mc.thePlayer.inventory.mainInventory.length; ++i) { | |
if (i < 9) { | |
if (mc.thePlayer.inventory.mainInventory[i] != null) { | |
if (mc.thePlayer.inventory.mainInventory[i].getItem() instanceof ItemBlock && ((ItemBlock) mc.thePlayer.inventory.mainInventory[i].getItem()).getBlock() != Blocks.command_block) { | |
itemtouse = i; | |
itemstacktouse = mc.thePlayer.inventory.mainInventory[i]; | |
noitemsleft = false; | |
} | |
} else { | |
hasempyslot = true; | |
} | |
} else { | |
if (hasempyslot && noitemsleft) { | |
if (mc.thePlayer.inventory.mainInventory[i] != null) { | |
if (mc.thePlayer.inventory.mainInventory[i].getItem() instanceof ItemBlock && ((ItemBlock) mc.thePlayer.inventory.mainInventory[i].getItem()).getBlock() != Blocks.command_block) { | |
mc.playerController.windowClick(0, i, 1, 1, mc.thePlayer); | |
return; | |
} | |
} | |
} | |
} | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(itemtouse)); | |
// this.setModuleDisplayName(this.getModuleName() + "§8 " + this.mode()); | |
try { | |
if (itemstacktouse != null) { | |
++this.lastPitch; | |
if (this.jump.getValue()) { | |
{ | |
++this.lastPitch; | |
if (this.jump.getValue()) { | |
EntityPlayerSP p = mc.thePlayer; | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
if (p.onGround) { | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
p.jump(); | |
p.jump(); | |
p.jump(); | |
} | |
ArrayList<BlockPos> collisionBlocks = getCollisionBlocks(); | |
for (BlockPos pos : collisionBlocks) { | |
IBlockState state = p.worldObj.getBlockState(pos); | |
if ((state.getBlock() instanceof BlockAir)) { | |
mc.thePlayer.swingItem(); | |
p.motionY = -5.0D; | |
} | |
} | |
} | |
} | |
} | |
if (this.spartan.getValue()) { | |
this.mc.thePlayer.swingItem(); | |
if (mc.thePlayer.onGround) { | |
mc.thePlayer.motionY = 0.3682; | |
} else { | |
} | |
if (this.mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, this.mc.thePlayer.getHeldItem(), this.blockData.position, this.blockData.face, new Vec3(this.blockData.position.getX(), mc.thePlayer.posY, this.blockData.position.getZ()))) { | |
this.mc.thePlayer.swingItem(); | |
} | |
} | |
if (this.aac.getValue()) { | |
EntityPlayerSP player = mc.thePlayer; | |
if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemBlock && mc.gameSettings.keyBindJump.pressed) { | |
if (true) { | |
BlockPos playerPos = new BlockPos(player.posX, player.posY, player.posZ); | |
if (true) { | |
if (player.onGround) { | |
player.jump(); | |
player.motionX = player.motionZ = 0.0D; | |
this.dont = true; | |
this.dont = false; | |
} | |
} else if (player.onGround) { | |
player.jump(); | |
player.motionX = player.motionZ = 0.0D; | |
this.dont = true; | |
player.onUpdate(); | |
this.dont = false; | |
} | |
} else { | |
} | |
if (player.onGround && this.cooldown <= 0) { | |
player.sendQueue.addToSendQueue(new C06PacketPlayerPosLook(player.posX, player.posY + 0.42D, player.posZ, player.rotationYaw, Math.max(player.rotationPitch, 30.0F), false)); | |
player.sendQueue.addToSendQueue(new C06PacketPlayerPosLook(player.posX, player.posY + 0.75D, player.posZ, player.rotationYaw, 90.0F, false)); | |
mc.thePlayer.setPositionAndUpdate(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ); | |
player.motionY = 0.0D; | |
this.cooldown = 2; | |
} else { | |
player.motionY = -1.0D; | |
player.motionX = 0.0D; | |
player.motionZ = 0.0D; | |
if (this.cooldown > 0) { | |
--this.cooldown; | |
} | |
} | |
} | |
} | |
if (this.motion.getValue()) { | |
EntityPlayerSP p = mc.thePlayer; | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
if (p.onGround) { | |
mc.thePlayer.motionX *= 0.0D; | |
mc.thePlayer.motionZ *= 0.0D; | |
p.jump(); | |
p.jump(); | |
p.jump(); | |
mc.timer.timerSpeed = 1f; | |
} | |
ArrayList<BlockPos> collisionBlocks = getCollisionBlocks(); | |
for (BlockPos pos : collisionBlocks) { | |
IBlockState state = p.worldObj.getBlockState(pos); | |
if ((state.getBlock() instanceof BlockAir)) { | |
mc.thePlayer.swingItem(); | |
mc.timer.timerSpeed = 5f; | |
p.motionY = -5.0D; | |
} | |
} | |
} | |
if (this.mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, this.mc.thePlayer.getHeldItem(), this.blockData.position.add(0, -1, 0), this.blockData.face, new Vec3(this.blockData.position.getX(), mc.thePlayer.posY, this.blockData.position.getZ()))) { | |
this.mc.thePlayer.swingItem(); | |
} | |
} | |
if (mc.gameSettings.keyBindJump.pressed) { | |
if (this.mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, this.mc.thePlayer.getHeldItem(), this.blockData.position, this.blockData.face, new Vec3(this.blockData.position.getX(), mc.thePlayer.posY, this.blockData.position.getZ()))) { | |
this.mc.thePlayer.swingItem(); | |
} | |
} | |
} catch (Exception e) { | |
} | |
BlockPos player = new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0D, | |
mc.thePlayer.posZ); | |
this.blockData = getBlockData(player); | |
if (itemstacktouse.getItem() instanceof ItemBlock && blockData != null) { | |
if (mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, itemstacktouse, this.blockData.position, this.blockData.face, new Vec3(this.blockData.position.getX(), this.blockData.position.getY(), this.blockData.position.getZ()))) | |
; | |
mc.thePlayer.sendQueue.addToSendQueue(new C0APacketAnimation()); | |
} | |
mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); | |
}catch (Exception e){ | |
} | |
} | |
@EventTarget | |
public void packetlook(PacketSendEvent event) { | |
if (this.ScaffoldWalk) { | |
if ((event.getPacket() instanceof C03PacketPlayer)) { | |
C03PacketPlayer player1 = (C03PacketPlayer) event.getPacket(); | |
if (this.blockData == null) { | |
return; | |
} | |
values = RotationUtil.getFacingRotations(this.blockData.position.getX(), this.blockData.position.getY(), | |
this.blockData.position.getZ(), this.blockData.face); | |
player1.yaw = values[0]; | |
player1.pitch = values[1]; | |
} | |
} | |
} | |
@EventTarget | |
public void onPostMotionUpdate(MoveEvent event) { | |
if(this.Other.getValue()){ | |
EntityPlayerSP p = mc.thePlayer; | |
if (this.delay > 2) { | |
this.delay -= 1; | |
} | |
if ((p.onGround) && (this.delay <= 2)) { | |
this.performJump = true; | |
} | |
if ((this.performJump) && (this.delay <= 100)) | |
{ | |
p.motionY = 0.5D; | |
ArrayList<BlockPos> collisionBlocks = getCollisionBlocks1(); | |
for (BlockPos pos : collisionBlocks) | |
{ | |
IBlockState state = p.worldObj.getBlockState(pos); | |
if ((state.getBlock() instanceof BlockAir)) | |
{ | |
mc.thePlayer.sendQueue.netManager.sendPacket(new C03PacketPlayer.C05PacketPlayerLook(0.0F, 90.0F, true)); | |
mc.playerController.func_178890_a(mc.thePlayer, mc.theWorld, mc.thePlayer.inventory.getCurrentItem(), pos.add(0, -1, 0), EnumFacing.UP, new Vec3(pos.getX(), pos.getY(), pos.getZ())); | |
mc.thePlayer.swingItem(); | |
p.motionY = 0.0D; | |
this.delay = 5; | |
} | |
} | |
return; | |
} | |
} | |
} | |
public BlockData getBlockData(BlockPos pos) { | |
return this.mc.theWorld.getBlockState(pos.add(0, 0, 1)).getBlock() != Blocks.air | |
? new BlockData(pos.add(0, 0, 1), EnumFacing.NORTH) | |
: this.mc.theWorld.getBlockState(pos.add(0, 0, -1)).getBlock() != Blocks.air | |
? new BlockData(pos.add(0, 0, -1), EnumFacing.SOUTH) | |
: this.mc.theWorld.getBlockState(pos.add(1, 0, 0)).getBlock() != Blocks.air | |
? new BlockData(pos.add(1, 0, 0), EnumFacing.WEST) | |
: this.mc.theWorld.getBlockState(pos.add(-1, 0, 0)).getBlock() != Blocks.air | |
? new BlockData(pos.add(-1, 0, 0), EnumFacing.EAST) | |
: this.mc.theWorld.getBlockState(pos.add(0, -1, 0)).getBlock() != Blocks.air | |
? new BlockData(pos.add(0, -1, 0), EnumFacing.UP) : null; | |
} | |
} | |
package de.Client.Main.Modules; | |
import de.Client.Events.EventManager; | |
import de.Client.Main.Main; | |
import de.Client.Main.Values.Value; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import net.minecraft.client.Minecraft; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class Module { | |
public boolean getState; | |
public String name; | |
public int keyBind; | |
public String displayName; | |
public Category category; | |
public Minecraft mc = Minecraft.getMinecraft(); | |
public ArrayList<Value> values = new ArrayList<Value>(); | |
public Module(String name,Category category, int keyBind){ | |
this.name = name; | |
this.displayName = name; | |
this.keyBind = keyBind; | |
this.category = category; | |
this.getState = false; | |
} | |
public ArrayList<Mini> createArray(){ | |
return new ArrayList<>(); | |
} | |
public void addValue(Value v){ | |
this.values.add(v); | |
} | |
public boolean isModuleImportant(){ | |
return true; | |
} | |
public boolean getState() | |
{ | |
return getState; | |
} | |
public void toggleModule(){ | |
this.getState = ! this.getState; | |
if(this.getState){ | |
this.onEnable(); | |
EventManager.register(this); | |
}else{ | |
this.onDisable(); | |
EventManager.unregister(this); | |
} | |
try { | |
Main.getMain.moduleManager.saveModule(Main.getMain.moduleSave); | |
} catch (IOException e) { | |
System.err.println("error occured while saving"); | |
e.printStackTrace(); | |
} | |
this.onToggle(); | |
} | |
public void onEnable(){} | |
public void onDisable(){} | |
public void onToggle(){} | |
public void onUpdate(){} | |
public void onRender(){} | |
public void onRenderNametag(){} | |
} |
package de.Client.Main.Modules; | |
import de.Client.Events.EventManager; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.mods.Combat.*; | |
import de.Client.Main.Modules.mods.Movment.*; | |
import de.Client.Main.Modules.mods.Player.*; | |
import de.Client.Main.Modules.mods.Render.*; | |
import de.Client.Main.Modules.mods.World.*; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import java.io.*; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class ModuleManager { | |
public ArrayList<Module> modules = new ArrayList<Module>(); | |
public ModuleManager(){ | |
this.init(); | |
} | |
public void init(){ | |
add(new AntiBots()); | |
add(new NoSlowDown()); | |
add(new LiquidWalk()); | |
add(new Sprint()); | |
add(new ESP()); | |
add(new Gui()); | |
add(new AutoArmor()); | |
add(new Fucker()); | |
add(new Criticals()); | |
add(new KillAura()); | |
add(new Velocity()); | |
add(new ChestStealer()); | |
add(new ScaffoldWalk()); | |
add(new FullBright()); | |
add(new NameTags2()); | |
add(new BetterOverlay()); | |
add(new Xray()); | |
add(new Glide()); | |
add(new ClickTP()); | |
add(new ChestAura()); | |
add(new Speed()); | |
add(new InventoryMove()); | |
add(new ControllerApi()); | |
add(new SafeWalk()); | |
add(new Civbreak()); | |
add(new Phase()); | |
add(new NoRotate()); | |
add(new McdeadAimbot()); | |
add(new ChestESP()); | |
add(new Step()); | |
add(new NoFall()); | |
add(new Teams()); | |
add(new Fastladder()); | |
add(new InvCleaner()); | |
add(new TerrainSpeed()); | |
add(new Babygame()); | |
add(new Autotool()); | |
add(new Tower()); | |
add(new Longjump()); | |
add(new Regen()); | |
add(new AutoFish()); | |
add(new Speedmine()); | |
} | |
public void saveModule(File file) throws IOException{ | |
Main.getMain.moduleSave.delete(); | |
Main.getMain.moduleSave.createNewFile(); | |
PrintWriter output = new PrintWriter(new FileWriter(file, true)); | |
for(Module mod : Main.getMain.moduleManager.getModules()){ | |
if(!mod.values.isEmpty()){ | |
for(Value v : mod.values){ | |
String save = mod.name +" : " + mod.getState + " : " + mod.keyBind + " : " + (v instanceof ValueBoolean ? (("Valueboolean : ") + v.getName() + " : " + ((ValueBoolean)v).getValue()) :( "Valuedouble : " + v.getName() +" : "+((ValueDouble)v).getValue())) ; | |
output.println(save); | |
} | |
}else{ | |
String save = mod.name +" : " + mod.getState + " : " + mod.keyBind; | |
output.println(save); | |
} | |
} | |
output.close(); | |
} | |
public String[] readFile(File file) { | |
if(file.exists()) { | |
try { | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
List<String> lines = new ArrayList(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return (String[]) lines.toArray(new String[lines.size()]); | |
} catch (Exception ignored) { | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
return null; | |
} | |
public void loadModules(File file) { | |
if(file.exists()) { | |
try { | |
for(Module modules : this.getModules()) { | |
for(String bind : readFile(file)) { | |
String[] splitted = bind.split(" : "); | |
if(modules.name.equalsIgnoreCase(splitted[0])) { | |
if(Boolean.parseBoolean(splitted[1])){ | |
EventManager.unregister(modules); | |
EventManager.register(modules); | |
modules.getState = true; | |
} | |
modules.keyBind = Integer.parseInt(splitted[2]); | |
for(Value v : modules.values){ | |
if(splitted[3].equalsIgnoreCase("Valueboolean") && v instanceof ValueBoolean){ | |
ValueBoolean vboolean = (ValueBoolean) v; | |
if(vboolean.getName().equalsIgnoreCase(splitted[4])){ | |
vboolean.setValue(Boolean.parseBoolean(splitted[5])); | |
} | |
}else if(splitted[3].equalsIgnoreCase("Valuedouble")&& v instanceof ValueDouble){ | |
try{ | |
ValueDouble vdouble = (ValueDouble) v; | |
if(vdouble.getName().equalsIgnoreCase(splitted[4])){ | |
System.err.println("Found Value c:"+Double.parseDouble(splitted[5])); | |
vdouble.setValue(Double.parseDouble(splitted[5])); | |
} | |
}catch(Exception e){ | |
System.err.println("Found BADDDDD value" + splitted[4]); | |
e.printStackTrace(); | |
} | |
} | |
} | |
} | |
} | |
} | |
} catch (Exception e) { | |
System.out.println("FEHLER)"); | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
} | |
public void add(Module mod){ | |
this.modules.add(mod); | |
} | |
public ArrayList<Module> getModulesForCategory(Category category){ | |
ArrayList<Module> returnArray = new ArrayList(); | |
for(Module mod : this.modules){ | |
if(mod.category == category){ | |
returnArray.add(mod); | |
} | |
} | |
return returnArray; | |
} | |
public Module getModule(Class clazz){ | |
for(Module mod : this.modules){ | |
if(mod.getClass() == clazz){ | |
return mod; | |
} | |
} | |
return null; | |
} | |
public List<Module> getActiveModules(){ | |
List mods = new ArrayList<Module>(); | |
for(Module m : this.getModules()){ | |
if(m.getState){ | |
mods.add(m); | |
} | |
} | |
return mods; | |
} | |
public ArrayList<Module> getModules(){ | |
return this.modules; | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Main.Main; | |
import de.Client.Utils.Alt; | |
import de.Client.Utils.DarkPasswordField; | |
import de.Client.Utils.DarkTextField; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.input.Mouse; | |
import java.io.File; | |
import java.io.FileWriter; | |
import java.io.IOException; | |
import java.io.PrintWriter; | |
public final class AddAlt extends GuiScreen { | |
static DarkPasswordField password; | |
static GuiScreen previousScreen; | |
public static int id; | |
static DarkTextField username; | |
public AddAlt(GuiScreen previousScreen) { | |
this.previousScreen = previousScreen; | |
} | |
public void drawScreen(int x, int y, float z) { | |
this.drawDefaultBackground(); | |
ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight); | |
drawCenteredString(this.mc.fontRendererObj, "Add Alt", this.width / 2 - 10, 20, -1); | |
this.username.drawTextBox(); | |
this.password.drawTextBox(); | |
if (this.username.getText().isEmpty()) { | |
drawString(this.mc.fontRendererObj, " < Username / E-Mail >", this.width / 2 - 96, 66, -7829368); | |
} | |
if (this.password.getText().isEmpty()) { | |
drawString(this.mc.fontRendererObj, " < Password >", this.width / 2 - 96, 106, -7829368); | |
} | |
// Anzeige | |
if(Mouse.isButtonDown(0) && Mouse.isButtonDown(1) && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)){ | |
// mc.displayGuiScreen(new GuiComboListGenerator(this)); | |
} | |
super.drawScreen(x, y, z); | |
} | |
public void initGui() { | |
int var3 = this.height / 4 + 24; | |
this.buttonList.add(new GuiButton(1002, this.width / 2 - 100, var3 + 72 + 48, "Add Alt")); | |
this.buttonList.add(new GuiButton(1003, this.width / 2 - 100, var3 + 72 + 72, "Back")); | |
this.username = new DarkTextField(Integer.MAX_VALUE,this.mc.fontRendererObj, this.width / 2 - 100, 60, 200, 20); | |
this.password = new DarkPasswordField(this.mc.fontRendererObj, this.width / 2 - 100, 100, 200, 20); | |
this.username.setFocused(true); | |
Keyboard.enableRepeatEvents(true); | |
} | |
protected void actionPerformed(GuiButton button) throws IOException { | |
if(button.id == 1000) { | |
// Laden aus Datenbank | |
} | |
if(button.id == 1001) { | |
// mc.displayGuiScreen(new McLeaksGui(this)); | |
} | |
if(button.id == 1002) { | |
id = 0; | |
for(int i = 0; i < AltManager.AltListArray.size();++i){ | |
id ++; | |
} | |
AltManager.AltListArray.add(new Alt(this.username.getText(), this.password.getText(),id)); | |
File file = Main.getMain.altList; | |
if(file.exists()) { | |
file.delete(); | |
} | |
file.createNewFile(); | |
PrintWriter output = null; | |
try { | |
output = new PrintWriter(new FileWriter(file, true)); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
for(Alt alts : AltManager.AltListArray) { | |
output.println(alts.getEmail() + ":" + alts.getPassword()); | |
} | |
output.close(); | |
this.mc.displayGuiScreen(this.previousScreen); | |
} | |
if(button.id == 1003) { | |
this.mc.displayGuiScreen(this.previousScreen); | |
} | |
} | |
protected void keyTyped(char character, int key) throws IOException { | |
try { | |
super.keyTyped(character, key); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
if (character == '\t') { | |
if ((!this.username.isFocused()) && (!this.password.isFocused())) { | |
this.username.setFocused(true); | |
} else { | |
this.username.setFocused(this.password.isFocused()); | |
this.password.setFocused(!this.username.isFocused()); | |
} | |
} | |
if (character == '\r') { | |
actionPerformed((GuiButton) this.buttonList.get(0)); | |
} | |
this.username.textboxKeyTyped(character, key); | |
this.password.textboxKeyTyped(character, key); | |
} | |
protected void mouseClicked(int x, int y, int button) { | |
try { | |
super.mouseClicked(x, y, button); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
this.username.mouseClicked(x, y, button); | |
this.password.mouseClicked(x, y, button); | |
} | |
public void onGuiClosed() { | |
Keyboard.enableRepeatEvents(false); | |
} | |
public void updateScreen() { | |
username.updateCursorCounter(); | |
password.updateCursorCounter(); | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Main.Main; | |
import de.Client.Utils.*; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.*; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.util.ResourceLocation; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.input.Mouse; | |
import java.awt.*; | |
import java.io.*; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class AltManager extends GuiScreen { | |
public static ArrayList<Alt> AltListArray = new ArrayList<Alt>(); | |
public static AccountLoginThread thread; | |
private String status; | |
private Alt alttoremove; | |
public int mousediffrent; | |
public static TimeHelper time = new TimeHelper(); | |
public boolean animationSwitch; | |
public double animationTicks; | |
public Minecraft mc = Minecraft.getMinecraft(); | |
public FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; | |
public TimeHelper timeHelper = new TimeHelper(); | |
public AltManager(GuiScreen prevScreen) { | |
} | |
private void setStatus(String status) { | |
status = thread.getStatus(); | |
} | |
@Override | |
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { | |
for(Alt alts : AltListArray){ | |
alts.onMouse(mouseX,mouseY); | |
} | |
super.mouseClicked(mouseX, mouseY, mouseButton); | |
} | |
@Override | |
protected void actionPerformed(GuiButton button) throws IOException { | |
if(button.id == 2){ | |
mc.displayGuiScreen(new GuiMainMenu()); | |
} | |
if(button.id == 3){ | |
for(Alt alts: this.AltListArray){ | |
if(alts.selected){ | |
alts.login(); | |
} | |
} | |
} | |
if(button.id == 4){ | |
mc.displayGuiScreen(new AddAlt(this)); | |
} | |
if(button.id == 5){ | |
for(int i = 0; i < this.AltListArray.size(); i++){ | |
Alt alts = this.AltListArray.get(i); | |
if(alts.selected){ | |
this.AltListArray.remove(alts); | |
this.saveAlts(); | |
mc.displayGuiScreen(new AltManager(null)); | |
} | |
} | |
} | |
if(button.id == 6){ | |
mc.displayGuiScreen(new DirectLogin(this)); | |
} | |
} | |
protected void overlayBackground(int p_148136_1_, int p_148136_2_, int p_148136_3_, int p_148136_4_) | |
{ | |
Tessellator var5 = Tessellator.getInstance(); | |
WorldRenderer var6 = var5.getWorldRenderer(); | |
this.mc.getTextureManager().bindTexture(Gui.optionsBackground); | |
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); | |
float var7 = 32.0F; | |
var6.startDrawingQuads(); | |
var6.func_178974_a(4210752, p_148136_4_); | |
var6.addVertexWithUV((double)0, (double)p_148136_2_, 0.0D, 0.0D, (double)((float)p_148136_2_ / var7)); | |
var6.addVertexWithUV((double)(this.width), (double)p_148136_2_, 0.0D, (double)((float)this.width / var7), (double)((float)p_148136_2_ / var7)); | |
var6.func_178974_a(4210752, p_148136_3_); | |
var6.addVertexWithUV((double)(this.width), (double)p_148136_1_, 0.0D, (double)((float)this.width / var7), (double)((float)p_148136_1_ / var7)); | |
var6.addVertexWithUV((double)0, (double)p_148136_1_, 0.0D, 0.0D, (double)((float)p_148136_1_ / var7)); | |
var5.draw(); | |
} | |
public static String[] readFile(File file) { | |
if (file.exists()) { | |
try { | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
List<String> lines = new ArrayList(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return (String[]) lines.toArray(new String[lines.size()]); | |
} catch (Exception ignored) { | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
return null; | |
} | |
public void saveAlts() throws IOException { | |
File file = Main.getMain.altList; | |
if(file.exists()) { | |
file.delete(); | |
} | |
file.createNewFile(); | |
PrintWriter output = null; | |
try { | |
output = new PrintWriter(new FileWriter(file, true)); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
for(Alt alts : AltManager.AltListArray) { | |
output.println(alts.getEmail() + ":" + alts.getPassword() + ":"+alts.name); | |
} | |
output.close(); | |
} | |
public void saveAltsAndReplace(Alt altToReplace) throws IOException { | |
File file = Main.getMain.altList; | |
if(file.exists()) { | |
file.delete(); | |
} | |
file.createNewFile(); | |
PrintWriter output = null; | |
try { | |
output = new PrintWriter(new FileWriter(file, true)); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
for(Alt alts : AltManager.AltListArray) { | |
if(alts.getPassword() == altToReplace.getPassword() && alts.getEmail() == altToReplace.getEmail()){ | |
output.println(altToReplace.getEmail() + ":" + altToReplace.getPassword() + ":" + altToReplace.name); | |
System.out.println("replacing account to apply name"); | |
}else { | |
output.println(alts.getEmail() + ":" + alts.getPassword() + ":" + alts.name); | |
} | |
} | |
output.close(); | |
} | |
public AltManager returnAndInit(){ | |
this.initGui(); | |
return this; | |
} | |
@Override | |
public void initGui() { | |
city.clear(); | |
Rect startRect = new Rect(this.width); | |
this.city.add(startRect); | |
int size = width-1; | |
while (size > 0 ) { | |
Rect firstRect = new Rect(Integer.MAX_VALUE); | |
for (Rect r : this.city) { | |
if (r.abstand + r.x < firstRect.abstand + firstRect.x) { | |
firstRect = r; | |
} | |
} | |
if (firstRect.xPos() > -50) { | |
Rect newRect = new Rect(firstRect.xPos()); | |
newRect.x = -newRect.widht; | |
this.city.add(newRect); | |
size -= newRect.widht; | |
} | |
} | |
animationTicks = this.width; | |
Alt.scrollpos = -20; | |
try{ | |
int width = this.width / 2-100; | |
this.buttonList.add(new DarkButton(2, width - 101, this.height -22, 200, 20, "Zurück")); | |
this.buttonList.add(new DarkButton(3, width + 101, this.height -22, 200, 20, "Login")); | |
this.buttonList.add(new DarkButton(4, width - 101, this.height -44, 150, 20, "AddAlt")); | |
this.buttonList.add(new DarkButton(6, width+50 , this.height -44, 100, 20, "Direct login")); | |
this.buttonList.add(new DarkButton(5,width + 151, this.height -44, 150, 20, "RemoveAlt")); | |
Alt.scrollpos = 0; | |
this.AltListArray.clear(); | |
int id = 0; | |
for(String string : this.readFile(Main.getMain.altList)){ | |
String[] splitString = string.split(":"); | |
if(splitString.length > 2) { | |
this.AltListArray.add(new Alt(splitString[0], splitString[1], splitString[2], id)); | |
}else{ | |
this.AltListArray.add(new Alt(splitString[0], splitString[1], id)); | |
} | |
++id; | |
} | |
super.initGui(); | |
}catch(Exception ignored){ | |
} | |
} | |
public ArrayList<Rect> city = new ArrayList<>(); | |
@Override | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) { | |
if(Keyboard.isKeyDown(Keyboard.KEY_RETURN)){ | |
mc.displayGuiScreen(new GuiAltChecker(this)); | |
} | |
Gui.drawRect(0,0,width,height,new Color(0xDCE2F6).getRGB()); | |
// GuiApi.drawBorderedCircle(30,10,200,new Color(0xFFEF34).getRGB(),new Color(0xFFFC77).getRGB()); | |
boolean markdirty = false; | |
for(int i = 0; i < this.city.size(); ++i){ | |
Rect r = this.city.get(i); | |
r.draw(); | |
if(r.dirty){ | |
markdirty = true; | |
} | |
} | |
if(markdirty) { | |
for (int i = 0; i < this.city.size(); ++i) { | |
Rect r = this.city.get(i); | |
if (r.dirty) { | |
this.city.remove(i); | |
} | |
} | |
} | |
Rect firstRect = new Rect(Integer.MAX_VALUE); | |
for(Rect r : this.city){ | |
if(r.abstand + r.x < firstRect.abstand + firstRect.x){ | |
firstRect = r; | |
} | |
} | |
if(firstRect.xPos() > -50){ | |
Rect newRect = new Rect(firstRect.xPos()); | |
newRect.x = - newRect.widht; | |
this.city.add(newRect); | |
} | |
if (Mouse.isButtonDown(0)) { | |
Alt.scrollpos += mouseY - mousediffrent; | |
mousediffrent = mouseY; | |
} else { | |
mousediffrent = mouseY; | |
} | |
Alt.scrollpos += Mouse.getDWheel() / (Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) ? 1 : 10); | |
for (Alt alts : AltListArray) { | |
alts.drawAltEntry(mouseX, mouseY); | |
} | |
//this.overlayBackground(this.height - 45, this.height, 255, 255); | |
Gui.drawRect(this.width / 2 - 210,this.height-50,this.width / 2 +210, this.height, new Color(0x191B29).getRGB()); | |
drawCenteredString(this.mc.fontRendererObj, this.thread == null ? "" : (this.thread).getStatus(), this.width / 2 - 9, 5, -1); | |
if(time.hasReached(500)){ | |
time.reset(); | |
try { | |
this.saveAlts(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
super.drawScreen(mouseX, mouseY, partialTicks); | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Utils.AccountLoginThread; | |
import de.Client.Utils.DarkPasswordField; | |
import de.Client.Utils.DarkTextField; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.input.Mouse; | |
import java.io.IOException; | |
public final class DirectLogin extends GuiScreen { | |
static DarkPasswordField password; | |
static GuiScreen previousScreen; | |
public static int id; | |
static DarkTextField username; | |
public DirectLogin(GuiScreen previousScreen) { | |
this.previousScreen = previousScreen; | |
} | |
public void drawScreen(int x, int y, float z) { | |
this.drawDefaultBackground(); | |
ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight); | |
drawCenteredString(this.mc.fontRendererObj, "Direct Login", this.width / 2 - 10, 20, -1); | |
this.username.drawTextBox(); | |
this.password.drawTextBox(); | |
if (this.username.getText().isEmpty()) { | |
drawString(this.mc.fontRendererObj, " < Username / E-Mail >", this.width / 2 - 96, 66, -7829368); | |
} | |
if (this.password.getText().isEmpty()) { | |
drawString(this.mc.fontRendererObj, " < Password >", this.width / 2 - 96, 106, -7829368); | |
} | |
// Anzeige | |
if(Mouse.isButtonDown(0) && Mouse.isButtonDown(1) && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)){ | |
// mc.displayGuiScreen(new GuiComboListGenerator(this)); | |
} | |
super.drawScreen(x, y, z); | |
} | |
public void initGui() { | |
int var3 = this.height / 4 + 24; | |
this.buttonList.add(new GuiButton(1002, this.width / 2 - 100, var3 + 72 + 48, "Login")); | |
this.buttonList.add(new GuiButton(1003, this.width / 2 - 100, var3 + 72 + 72, "Back")); | |
this.username = new DarkTextField(Integer.MAX_VALUE,this.mc.fontRendererObj, this.width / 2 - 100, 60, 200, 20); | |
this.password = new DarkPasswordField(this.mc.fontRendererObj, this.width / 2 - 100, 100, 200, 20); | |
this.username.setFocused(true); | |
Keyboard.enableRepeatEvents(true); | |
} | |
protected void actionPerformed(GuiButton button) throws IOException { | |
if(button.id == 1000) { | |
// Laden aus Datenbank | |
} | |
if(button.id == 1001) { | |
// mc.displayGuiScreen(new McLeaksGui(this)); | |
} | |
if(button.id == 1002) { | |
((de.Client.Main.Screens.AltManager) this.previousScreen).thread = new AccountLoginThread(this.username.getText(),this.password.getText()); | |
((de.Client.Main.Screens.AltManager) this.previousScreen).thread.start(); | |
this.mc.displayGuiScreen(this.previousScreen); | |
} | |
if(button.id == 1003) { | |
this.mc.displayGuiScreen(this.previousScreen); | |
} | |
} | |
protected void keyTyped(char character, int key) throws IOException { | |
try { | |
super.keyTyped(character, key); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
if (character == '\t') { | |
if ((!this.username.isFocused()) && (!this.password.isFocused())) { | |
this.username.setFocused(true); | |
} else { | |
this.username.setFocused(this.password.isFocused()); | |
this.password.setFocused(!this.username.isFocused()); | |
} | |
} | |
if (character == '\r') { | |
actionPerformed((GuiButton) this.buttonList.get(0)); | |
} | |
this.username.textboxKeyTyped(character, key); | |
this.password.textboxKeyTyped(character, key); | |
} | |
protected void mouseClicked(int x, int y, int button) { | |
try { | |
super.mouseClicked(x, y, button); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
this.username.mouseClicked(x, y, button); | |
this.password.mouseClicked(x, y, button); | |
} | |
public void onGuiClosed() { | |
Keyboard.enableRepeatEvents(false); | |
} | |
public void updateScreen() { | |
username.updateCursorCounter(); | |
password.updateCursorCounter(); | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Main.Main; | |
import de.Client.Utils.*; | |
import de.Client.Utils.ArrayList; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.multiplayer.ServerData; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.input.Mouse; | |
import java.io.BufferedReader; | |
import java.io.File; | |
import java.io.FileReader; | |
import java.io.IOException; | |
import java.util.*; | |
public class GuiAltChecker extends GuiScreen { | |
public static java.util.ArrayList<Alt> AltListArray = new java.util.ArrayList<Alt>(); | |
// static Dark//Field //; | |
static GuiScreen previousScreen; | |
public static int id = -1; | |
public static int failedacc = 0; | |
public boolean started; | |
static DarkTextField username = new DarkTextField(Integer.MAX_VALUE,Minecraft.getMinecraft().fontRendererObj, 100, 20, 200, 20); | |
public static TimeHelper time = new TimeHelper(); | |
public boolean isStarted; | |
public int offset; | |
public GuiAltChecker(GuiScreen previousScreen) { | |
this.previousScreen = new AltManager(this); | |
} | |
public static String[] readFile(File file) { | |
if (file.exists()) { | |
try { | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
List<String> lines = new java.util.ArrayList(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return (String[]) lines.toArray(new String[lines.size()]); | |
} catch (Exception ignored) { | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
return null; | |
} | |
public void initGui() { | |
id ++; | |
started = true; | |
this.buttonList.add(new DarkButton(0, 100, 50, 200, 20,"Start")); | |
this.AltListArray.clear(); | |
int id = 0; | |
for(String string : this.readFile(Main.getMain.altList)){ | |
String[] splitString = string.split(":"); | |
if(splitString.length > 2) { | |
this.AltListArray.add(new Alt(splitString[0], splitString[1], splitString[2], id)); | |
}else{ | |
this.AltListArray.add(new Alt(splitString[0], splitString[1], id)); | |
} | |
++id; | |
} | |
} | |
protected void actionPerformed(GuiButton button) throws IOException { | |
if(button.id == 0){ | |
isStarted = true; | |
} | |
} | |
protected void keyTyped(char character, int key) throws IOException { | |
try { | |
super.keyTyped(character, key); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
this.username.textboxKeyTyped(character,key); | |
} | |
@Override | |
public void drawScreen(int mouseX, int mouseY, float partialTicks){ | |
this.drawBackground(1); | |
username.drawTextBox(); | |
if(username.getText().contains(".") && isStarted){ | |
}else{ | |
time.reset(); | |
super.drawScreen(mouseX,mouseY,partialTicks); | |
return; | |
} | |
if(started){ | |
Alt alt = GuiAltChecker.AltListArray.get(id); | |
((de.Client.Main.Screens.AltManager) this.previousScreen).thread = new AccountLoginThread(alt.getEmail(), alt.getPassword()); | |
((de.Client.Main.Screens.AltManager) this.previousScreen).thread.start(); | |
time.reset(); | |
started = false; | |
}else{ | |
} | |
if(((de.Client.Main.Screens.AltManager) this.previousScreen).thread.getStatus().contains("Fehlgeschlagen")){ | |
mc.displayGuiScreen(new GuiAltChecker(this.previousScreen)); | |
this.failedacc ++; | |
if(failedacc > 7){ | |
System.exit(-1); | |
} | |
} | |
if(time.hasReached(5000)) { | |
if (!((de.Client.Main.Screens.AltManager) this.previousScreen).thread.isAlive()) { | |
mc.displayGuiScreen(new GuiAltConnecting(this, Minecraft.getMinecraft(), new ServerData("none", this.username.getText()))); | |
}else{ | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("§cWAITING FOR LOGIN!",200,50,0xff); | |
} | |
} | |
Alt alt = GuiAltChecker.AltListArray.get(id); | |
alt.drawAltEntry(mouseX,mouseY); | |
Alt.scrollpos = - alt.id * 42 + 50; | |
super.drawScreen(mouseX,mouseY,partialTicks); | |
} | |
protected void mouseClicked(int x, int y, int button) { | |
try { | |
super.mouseClicked(x, y, button); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
this.username.mouseClicked(x, y, button); | |
} | |
public void onGuiClosed() { | |
Keyboard.enableRepeatEvents(false); | |
} | |
public void updateScreen() { | |
username.updateCursorCounter(); | |
} | |
} |
package de.Client.Main.Screens; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiDisconnected; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.multiplayer.ServerAddress; | |
import net.minecraft.client.multiplayer.ServerData; | |
import net.minecraft.client.multiplayer.WorldClient; | |
import net.minecraft.client.network.NetHandlerLoginClient; | |
import net.minecraft.client.resources.I18n; | |
import net.minecraft.network.EnumConnectionState; | |
import net.minecraft.network.NetworkManager; | |
import net.minecraft.network.handshake.client.C00Handshake; | |
import net.minecraft.network.login.client.C00PacketLoginStart; | |
import net.minecraft.util.ChatComponentText; | |
import net.minecraft.util.ChatComponentTranslation; | |
import org.apache.logging.log4j.LogManager; | |
import org.apache.logging.log4j.Logger; | |
import java.io.IOException; | |
import java.net.InetAddress; | |
import java.net.UnknownHostException; | |
import java.util.concurrent.atomic.AtomicInteger; | |
public class GuiAltConnecting extends GuiScreen | |
{ | |
private static final AtomicInteger CONNECTION_ID = new AtomicInteger(0); | |
private static final Logger logger = LogManager.getLogger(); | |
private NetworkManager networkManager; | |
private boolean cancel; | |
public final GuiScreen previousGuiScreen; | |
private static final String __OBFID = "CL_00000685"; | |
public GuiAltConnecting(GuiScreen p_i1181_1_, Minecraft mcIn, ServerData p_i1181_3_) | |
{ | |
this.mc = mcIn; | |
this.previousGuiScreen = p_i1181_1_; | |
ServerAddress var4 = ServerAddress.func_78860_a(p_i1181_3_.serverIP); | |
// mcIn.loadWorld((WorldClient)null); | |
mcIn.setServerData(p_i1181_3_); | |
this.connect(var4.getIP(), var4.getPort()); | |
} | |
private void connect(final String ip, final int port) | |
{ | |
logger.info("Connecting to " + ip + ", " + port); | |
(new Thread("Server Connector #" + CONNECTION_ID.incrementAndGet()) | |
{ | |
private static final String __OBFID = "CL_00000686"; | |
public void run() | |
{ | |
InetAddress var1 = null; | |
try | |
{ | |
if (GuiAltConnecting.this.cancel) | |
{ | |
return; | |
} | |
var1 = InetAddress.getByName(ip); | |
GuiAltConnecting.this.networkManager = NetworkManager.provideLanClient(var1, port); | |
GuiAltConnecting.this.networkManager.setNetHandler(new NetHandlerLoginClient(GuiAltConnecting.this.networkManager, GuiAltConnecting.this.mc, GuiAltConnecting.this.previousGuiScreen)); | |
GuiAltConnecting.this.networkManager.sendPacket(new C00Handshake(47, ip, port, EnumConnectionState.LOGIN)); | |
GuiAltConnecting.this.networkManager.sendPacket(new C00PacketLoginStart(GuiAltConnecting.this.mc.getSession().getProfile())); | |
} | |
catch (UnknownHostException var5) | |
{ | |
if (GuiAltConnecting.this.cancel) | |
{ | |
return; | |
} | |
GuiAltConnecting.logger.error("Couldn\'t connect to server", var5); | |
GuiAltConnecting.this.mc.displayGuiScreen(GuiAltConnecting.this.previousGuiScreen); | |
} | |
catch (Exception var6) | |
{ | |
if (GuiAltConnecting.this.cancel) | |
{ | |
return; | |
} | |
GuiAltConnecting.logger.error("Couldn\'t connect to server", var6); | |
String var3 = var6.toString(); | |
if (var1 != null) | |
{ | |
String var4 = var1.toString() + ":" + port; | |
var3 = var3.replaceAll(var4, ""); | |
} | |
GuiAltConnecting.this.mc.displayGuiScreen(GuiAltConnecting.this.previousGuiScreen); | |
} | |
} | |
}).start(); | |
} | |
/** | |
* Called from the main game loop to update the screen. | |
*/ | |
public void updateScreen() | |
{ | |
if (this.networkManager != null) | |
{ | |
if (this.networkManager.isChannelOpen()) | |
{ | |
this.networkManager.processReceivedPackets(); | |
} | |
else | |
{ | |
this.networkManager.checkDisconnected(); | |
} | |
} | |
} | |
/** | |
* Fired when a key is typed (except F11 who toggle full screen). This is the equivalent of | |
* KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) | |
*/ | |
protected void keyTyped(char typedChar, int keyCode) throws IOException {} | |
/** | |
* Adds the buttons (and other controls) to the screen in question. | |
*/ | |
public void initGui() | |
{ | |
this.buttonList.clear(); | |
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, I18n.format("gui.cancel", new Object[0]))); | |
} | |
protected void actionPerformed(GuiButton button) throws IOException | |
{ | |
if (button.id == 0) | |
{ | |
this.cancel = true; | |
if (this.networkManager != null) | |
{ | |
this.networkManager.closeChannel(new ChatComponentText("Aborted")); | |
} | |
this.mc.displayGuiScreen(this.previousGuiScreen); | |
} | |
} | |
/** | |
* Draws the screen and all the components in it. Args : mouseX, mouseY, renderPartialTicks | |
*/ | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) | |
{ | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Main.Main; | |
import de.Client.Render.ArrayLists.ArrayListD; | |
import de.Client.Utils.ArrayList; | |
import net.minecraft.block.Block; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.GuiTextField; | |
import net.minecraft.client.gui.inventory.GuiEditSign; | |
import net.minecraft.client.network.NetHandlerPlayClient; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; | |
import net.minecraft.client.resources.I18n; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.network.play.client.C12PacketUpdateSign; | |
import net.minecraft.tileentity.TileEntity; | |
import net.minecraft.tileentity.TileEntitySign; | |
import net.minecraft.util.ChatComponentText; | |
import net.minecraft.util.ChatStyle; | |
import net.minecraft.util.IChatComponent; | |
import org.lwjgl.input.Keyboard; | |
import java.awt.*; | |
import java.io.IOException; | |
/** | |
* Created by Daniel on 12.08.2017. | |
*/ | |
public class GuiEditColorSign extends GuiScreen{ | |
TileEntitySign entitySign; | |
public GuiEditColorSign(TileEntitySign sign){ | |
entitySign = sign; | |
} | |
public GuiTextField line1; | |
public GuiTextField line2; | |
public GuiTextField line3; | |
public GuiTextField line4; | |
public java.util.ArrayList<GuiTextField> lines = new java.util.ArrayList<>(); | |
@Override | |
public void initGui(){ | |
Keyboard.enableRepeatEvents(true); | |
double x = this.width/2-60; | |
double y = this.height / 2-40; | |
lines.clear(); | |
lines.add(line1 = new GuiTextField(0,mc.fontRendererObj,(int) x,(int) y+7,(int) 120,14)); | |
y += 20; | |
lines.add(line2 = new GuiTextField(1,mc.fontRendererObj,(int) x,(int) y+7,(int) 120,14)); | |
y += 20; | |
lines.add(line3 = new GuiTextField(1,mc.fontRendererObj,(int) x,(int) y+7,(int) 120,14)); | |
y += 20; | |
lines.add(line4 = new GuiTextField(1,mc.fontRendererObj,(int) x,(int) y+7,(int) 120,14)); | |
y += 20; | |
this.buttonList.add(new GuiButton(1,(int) x,(int) y+7,(int) 120,(int) 14,"sign")); | |
} | |
@Override | |
public void onGuiClosed() | |
{ | |
Keyboard.enableRepeatEvents(false); | |
NetHandlerPlayClient var1 = this.mc.getNetHandler(); | |
if (var1 != null) | |
{ | |
// signText[0] = | |
entitySign.signText[0] = new ChatComponentText(this.line1.getText()); | |
entitySign.signText[1] = new ChatComponentText(this.line2.getText()); | |
entitySign.signText[2] = new ChatComponentText(this.line3.getText()); | |
entitySign.signText[3] = new ChatComponentText(this.line4.getText()); | |
System.out.println(entitySign.signText[0]); | |
var1.addToSendQueue(new C12PacketUpdateSign(this.entitySign.getPos(), this.entitySign.signText)); | |
} | |
} | |
@Override | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) | |
{ | |
TileEntityRendererDispatcher.instance.renderTileEntityAt(this.entitySign, -Integer.MAX_VALUE, -0.75D, -0.5D, 0.0F); | |
for(GuiTextField l : this.lines){ | |
l.drawTextBox(); | |
} | |
this.drawDefaultBackground(); | |
line1.drawTextBox(); | |
line2.drawTextBox(); | |
line3.drawTextBox(); | |
line4.drawTextBox(); | |
System.out.println(this.line1.getText()); | |
super.drawScreen( mouseX, mouseY, partialTicks); | |
} | |
@Override | |
protected void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
for(GuiTextField l : this.lines){ | |
l.textboxKeyTyped(typedChar,keyCode); | |
l.setText(l.getText().replace("&","§r§")); | |
} | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException | |
{ | |
for(GuiTextField l : this.lines){ | |
l.mouseClicked(mouseX,mouseY,mouseButton); | |
} | |
// line1.mouseClicked(mouseX,mouseY,mouseButton); | |
// line2.mouseClicked(mouseX,mouseY,mouseButton); | |
// line3.mouseClicked(mouseX,mouseY,mouseButton); | |
// line4.mouseClicked(mouseX,mouseY,mouseButton); | |
super.mouseClicked(mouseX,mouseY,mouseButton); | |
} | |
} |
/* | |
* Copyright 2014 - 2017 | Wurst-Imperium | All rights reserved. | |
* | |
* This Source Code Form is subject to the terms of the Mozilla Public | |
* License, v. 2.0. If a copy of the MPL was not distributed with this | |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. | |
*/ | |
package de.Client.Main.Screens; | |
import java.io.IOException; | |
import org.lwjgl.input.Keyboard; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiMultiplayer; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.GuiTextField; | |
public class GuiProxy extends GuiScreen | |
{ | |
private GuiScreen prevMenu; | |
private GuiTextField proxyBox; | |
private String error = ""; | |
public GuiProxy(GuiScreen prevMultiplayerMenu) | |
{ | |
prevMenu = prevMultiplayerMenu; | |
} | |
/** | |
* Called from the main game loop to update the screen. | |
*/ | |
@Override | |
public void updateScreen() | |
{ | |
proxyBox.updateCursorCounter(); | |
} | |
/** | |
* Adds the buttons (and other controls) to the screen in question. | |
*/ | |
@Override | |
public void initGui() | |
{ | |
Keyboard.enableRepeatEvents(true); | |
buttonList.clear(); | |
buttonList.add( | |
new GuiButton(0, width / 2 - 100, height / 4 + 120 + 12, "Cancel")); | |
buttonList.add( | |
new GuiButton(1, width / 2 - 100, height / 4 + 72 + 12, "Connect")); | |
buttonList.add( | |
new GuiButton(2, width / 2 - 100, height / 4 + 96 + 12, "Reset")); | |
proxyBox = | |
new GuiTextField(0, fontRendererObj, width / 2 - 100, 60, 200, 20); | |
proxyBox.setFocused(true); | |
} | |
/** | |
* "Called when the screen is unloaded. Used to disable keyboard repeat | |
* events." | |
*/ | |
@Override | |
public void onGuiClosed() | |
{ | |
Keyboard.enableRepeatEvents(false); | |
} | |
public static boolean isInteger(String s) | |
{ | |
try | |
{ | |
Integer.parseInt(s); | |
}catch(NumberFormatException e) | |
{ | |
return false; | |
} | |
return true; | |
} | |
@Override | |
protected void actionPerformed(GuiButton clickedButton) | |
{ | |
if(clickedButton.enabled) | |
if(clickedButton.id == 0) | |
{// Cancel | |
mc.displayGuiScreen(prevMenu); | |
}else if(clickedButton.id == 1) | |
{// Connect | |
// must contain ':' once | |
if(!proxyBox.getText().contains(":") | |
|| proxyBox.getText().split(":").length != 2) | |
{ | |
error = "Not a proxy!"; | |
return; | |
} | |
String[] parts = proxyBox.getText().split(":"); | |
// validate port | |
if(!this.isInteger(parts[1]) | |
|| Integer.parseInt(parts[1]) > 65536 | |
|| Integer.parseInt(parts[1]) < 0) | |
{ | |
error = "Invalid port!"; | |
return; | |
} | |
try | |
{ | |
System.setProperty("socksProxyHost", parts[0]); | |
System.setProperty("socksProxyPort", parts[1]); | |
}catch(Exception e) | |
{ | |
error = e.toString(); | |
return; | |
} | |
if(error.isEmpty()) | |
{ | |
mc.displayGuiScreen(prevMenu); | |
}else{} | |
}else if(clickedButton.id == 2) | |
{// Reset | |
System.setProperty("socksProxyHost", ""); | |
System.setProperty("socksProxyPort", ""); | |
mc.displayGuiScreen(prevMenu); | |
} | |
} | |
/** | |
* Fired when a key is typed. This is the equivalent of | |
* KeyListener.keyTyped(KeyEvent e). | |
*/ | |
@Override | |
protected void keyTyped(char par1, int par2) | |
{ | |
proxyBox.textboxKeyTyped(par1, par2); | |
if(par2 == 28 || par2 == 156) | |
actionPerformed((GuiButton) buttonList.get(1)); | |
} | |
/** | |
* Called when the mouse is clicked. | |
* | |
* @throws IOException | |
*/ | |
@Override | |
protected void mouseClicked(int par1, int par2, int par3) throws IOException | |
{ | |
super.mouseClicked(par1, par2, par3); | |
proxyBox.mouseClicked(par1, par2, par3); | |
if(proxyBox.isFocused()) | |
error = ""; | |
} | |
/** | |
* Draws the screen and all the components in it. | |
*/ | |
@Override | |
public void drawScreen(int par1, int par2, float par3) | |
{ | |
drawDefaultBackground(); | |
drawCenteredString(fontRendererObj, "Use Proxy", width / 2, 20, | |
0xFFFFFF); | |
drawString(fontRendererObj, "IP:Port (must be a SOCKS proxy)", | |
width / 2 - 100, 47, 0xA0A0A0); | |
drawCenteredString(fontRendererObj, error, width / 2, 87, 0xFF0000); | |
String currentProxy = System.getProperty("socksProxyHost") + ":" | |
+ System.getProperty("socksProxyPort"); | |
if(currentProxy.equals(":") || currentProxy.equals("null:null")) | |
currentProxy = "none"; | |
drawString(fontRendererObj, "Current proxy: " + currentProxy, | |
width / 2 - 100, 97, 0xA0A0A0); | |
proxyBox.drawTextBox(); | |
super.drawScreen(par1, par2, par3); | |
} | |
} |
package de.Client.Main.Screens; | |
import de.Client.Render.GuiIngameHook; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiIngame; | |
import net.minecraft.client.gui.GuiScreen; | |
/** | |
* Created by Daniel on 04.07.2017. | |
*/ | |
public class GuiTheme extends GuiScreen{ | |
GuiIngame ingame = new GuiIngame(Minecraft.getMinecraft()); | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) | |
{ | |
ingame.func_175180_a(1); | |
} | |
} |
package de.Client.Main.Screens; | |
import com.google.common.collect.Lists; | |
import de.Client.Events.EventTarget; | |
import de.Client.Main.Main; | |
import de.Client.Main.Screens.UIApps.UIButton; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import de.Client.Utils.ColorUtil; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.*; | |
import net.minecraft.util.MathHelper; | |
import org.lwjgl.Sys; | |
import org.lwjgl.input.Mouse; | |
import org.lwjgl.opengl.GL11; | |
import org.omg.Messaging.SYNC_WITH_TRANSPORT; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
import java.util.List; | |
/** | |
* Created by Daniel on 19.08.2017. | |
*/ | |
public class UIApp { | |
public boolean isOpen; | |
public double x; | |
public double y; | |
public double dragX; | |
public double dragY; | |
public double scale = 0.5; | |
public boolean isDragging; | |
public boolean isFullscreen; | |
public double height; | |
public double width; | |
public String name; | |
public ScaledResolution sr = new ScaledResolution(); | |
public java.util.ArrayList<UIButton> buttonArrayList = new ArrayList(); | |
public double getScale(){ | |
return isFullscreen ? 1 : scale; | |
} | |
public double minScale = 0; | |
public double maxScale = 0.9; | |
public UIApp(String name,double minScale){ | |
this.name = name; | |
this.minScale =minScale; | |
} | |
public UIApp(String name){ | |
this.name = name; | |
} | |
public void initGui(){ | |
buttonArrayList.clear(); | |
sr = new ScaledResolution(); | |
height = sr.getScaledHeight() *scale; | |
width = sr.getScaledWidth() *scale; | |
} | |
public void updateScale(){ | |
double lastscale = scale; | |
scale += Mouse.getDWheel() / 10000.0d; | |
if(scale < minScale){ | |
// scale = minScale; | |
} | |
if(scale > maxScale){ | |
// scale = maxScale; | |
} | |
} | |
public double getHeight(){ | |
return sr.getScaledHeight() /scale; | |
} | |
public double getWith(){ | |
return sr.getScaledWidth() /scale; | |
} | |
public void uiClick(double mouseX, double mouseY, float partialTicks){ | |
} | |
public void drawUI(double mouseX, double mouseY, float partialTicks){ | |
scale += Mouse.getDWheel() / 10000f; | |
} | |
public float getDistance(double x,double y,double x1,double y1){ | |
return MathHelper.sqrt_float((float) ((x-x1) * (x-x1)+ (y-y1) * (y-y1))); | |
} | |
public TTFManager X = new TTFManager("Verdana",0,30); | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) { | |
if(this.isDragging) { | |
this.x = mouseX - this.dragX; | |
this.y = mouseY - this.dragY; | |
if(x < 0){ | |
x = 0; | |
} | |
if(x + width > sr.getScaledWidth()){ | |
x = sr.getScaledWidth()-width; | |
} | |
if(y < 0){ | |
y = 0; | |
} | |
if(y + height > sr.getScaledHeight()-23){ | |
y = sr.getScaledHeight()-height-23; | |
} | |
} | |
if(isOpen) { | |
// System.out.println(this.width); | |
GL11.glTranslated(x, y, 0); | |
GL11.glScaled(getScale(),1,1); | |
Gui.drawRect(0, 0,sr.getScaledWidth(), 16, Main.getMain.getClientColor().getRGB()); | |
// Gui.drawRect(sr.getScaledWidth()-1-14/scale, 1,sr.getScaledWidth()-1, 15, new Color(0xB9000C).getRGB()); | |
GL11.glScaled(1,getScale(),1); | |
Gui.drawRect(0, 16/ scale,sr.getScaledWidth(), sr.getScaledHeight(), new Color(0x502B2B2B).getRGB()); | |
GL11.glTranslated(0,16/scale,0); | |
drawUI(mouseX,mouseY,partialTicks); | |
for(UIButton b : this.buttonArrayList){ | |
b.drawButton((float) ((float) ((mouseX-x)/getScale())), (float) ((float) ((mouseY-y)/scale))); | |
} | |
height = sr.getScaledHeight() + 16/scale; | |
GL11.glTranslated(0,-16/scale,0); | |
GL11.glScaled(1,1/getScale(),1); | |
GL11.glScaled(1 / getScale(),1,1); | |
System.out.println(getDistance(mouseX,mouseY,(sr.getScaledWidth()*scale)-8+x,8*scale+y)); | |
if(getDistance(mouseX,mouseY,(sr.getScaledWidth()*scale)-8+x,9*scale+y) < 8) { | |
GuiApi.drawBorderedCircle((sr.getScaledWidth() * scale) - 8, 8, (float) (7), new Color(0xFF1C0E).getRGB(), new Color(0xFF1C0E).getRGB()); | |
}else{ | |
// GuiApi.drawBorderedCircle((sr.getScaledWidth() * scale) - 8, 8, (float) (7), Main.getMain.getClientColor(),); | |
} | |
Main.getMain.verdanas.drawStringWithShadow(name,4,0,0xffffffff); | |
X.drawCenteredString("x", (float) ((sr.getScaledWidth() * scale)-8.4f),-3.5f,0xffffffff); | |
GL11.glTranslated(-x, -y, 0); | |
} | |
updateScale(); | |
height = sr.getScaledHeight() *scale; | |
width = sr.getScaledWidth() *scale; | |
} | |
public void actionPerformed(GuiButton guiButton){ | |
} | |
public double realscale = 0.5; | |
public void actionPerformed(int id){ | |
} | |
public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException | |
{ | |
for(UIButton b : this.buttonArrayList){ | |
b.mouseClicked(mouseX,mouseY,mouseButton); | |
} | |
if(!isOpen){ | |
return; | |
} | |
if(getDistance(mouseX,mouseY,(sr.getScaledWidth()*scale)-8+x,9*scale+y) < 8) { | |
isOpen = false; | |
} | |
if((mouseX >= this.x) && (mouseX <= this.x + this.width ) && (mouseY >= this.y) && (mouseY <= this.y +16) && mouseButton == 0) { | |
this.isDragging = true; | |
this.dragX = mouseX - this.x; | |
this.dragY = mouseY - this.y; | |
} | |
} | |
public void mouseReleased(int mouseX, int mouseY, int mouseButton){ | |
if( mouseButton == 0) { | |
isDragging = false; | |
} | |
} | |
} |
package de.Client.Main.Screens.UIApps; | |
import com.mojang.authlib.GameProfile; | |
import de.Client.Main.Main; | |
import de.Client.Main.Screens.*; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.*; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.entity.EntityOtherPlayerMP; | |
import net.minecraft.client.gui.*; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.util.ResourceLocation; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Keyboard; | |
import org.lwjgl.input.Mouse; | |
import java.awt.*; | |
import java.io.*; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class UIAltManager extends UIApp { | |
public static ArrayList<Alt> AltListArray = new ArrayList<Alt>(); | |
public static AccountLoginThread thread; | |
private String status; | |
private Alt alttoremove; | |
public int mousediffrent; | |
public static TimeHelper time = new TimeHelper(); | |
public boolean animationSwitch; | |
public double animationTicks; | |
public Minecraft mc = Minecraft.getMinecraft(); | |
public FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; | |
public TimeHelper timeHelper = new TimeHelper(); | |
public UIAltManager(GuiScreen prevScreen) { | |
super("AltManager",0.35); | |
} | |
private void setStatus(String status) { | |
status = thread.getStatus(); | |
} | |
@Override | |
public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { | |
super.mouseClicked(mouseX, mouseY, mouseButton); | |
} | |
@Override | |
public void initGui(){ | |
super.initGui(); | |
this.buttonArrayList.add(new UIButton(this,1,"Login",(float)((float) sr.getScaledWidth() / 1.48f), (float) (sr.getScaledHeight() -47),(float)((float) sr.getScaledWidth() / 1.02-sr.getScaledWidth() / 1.5),30,new Color(0x31C211))); | |
this.buttonArrayList.add(new UIButton(this,1,"Delete",(float)((float) sr.getScaledWidth() / 1.48f), (float) (sr.getScaledHeight() -83),(float)((float) sr.getScaledWidth() / 1.02-sr.getScaledWidth() / 1.5)/2f-2,30,new Color(0xAD1312))); | |
this.buttonArrayList.add(new UIButton(this,1,"Add",((float) sr.getScaledWidth() / 1.48f)+(float)((float) sr.getScaledWidth() / 1.02-sr.getScaledWidth() / 1.5)/2f+1, (float) (sr.getScaledHeight() -83),(float)((float) sr.getScaledWidth() / 1.02-sr.getScaledWidth() / 1.5)/2-1,30,new Color(0xDED700))); | |
} | |
@Override | |
public void actionPerformed(int id) { | |
} | |
protected void overlayBackground(int p_148136_1_, int p_148136_2_, int p_148136_3_, int p_148136_4_) | |
{ | |
Tessellator var5 = Tessellator.getInstance(); | |
WorldRenderer var6 = var5.getWorldRenderer(); | |
this.mc.getTextureManager().bindTexture(Gui.optionsBackground); | |
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); | |
float var7 = 32.0F; | |
var6.startDrawingQuads(); | |
var6.func_178974_a(4210752, p_148136_4_); | |
var6.addVertexWithUV((double)0, (double)p_148136_2_, 0.0D, 0.0D, (double)((float)p_148136_2_ / var7)); | |
var6.addVertexWithUV((double)(this.width), (double)p_148136_2_, 0.0D, (double)((float)this.width / var7), (double)((float)p_148136_2_ / var7)); | |
var6.func_178974_a(4210752, p_148136_3_); | |
var6.addVertexWithUV((double)(this.width), (double)p_148136_1_, 0.0D, (double)((float)this.width / var7), (double)((float)p_148136_1_ / var7)); | |
var6.addVertexWithUV((double)0, (double)p_148136_1_, 0.0D, 0.0D, (double)((float)p_148136_1_ / var7)); | |
var5.draw(); | |
} | |
public static String[] readFile(File file) { | |
if (file.exists()) { | |
try { | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
List<String> lines = new ArrayList(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return (String[]) lines.toArray(new String[lines.size()]); | |
} catch (Exception ignored) { | |
} | |
} else { | |
System.out.println("[SkyRise] - Bind-Datei existiert nicht!"); | |
} | |
return null; | |
} | |
public void saveAlts() throws IOException { | |
File file = Main.getMain.altList; | |
if(file.exists()) { | |
file.delete(); | |
} | |
file.createNewFile(); | |
PrintWriter output = null; | |
try { | |
output = new PrintWriter(new FileWriter(file, true)); | |
} catch (IOException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
for(Alt alts : UIAltManager.AltListArray) { | |
output.println(alts.getEmail() + ":" + alts.getPassword() + ":"+alts.name); | |
} | |
output.close(); | |
} | |
@Override | |
public void drawUI(double mouseX, double mouseY, float partialTicks){ | |
//0x595959 | |
// boolean isOverButton = (mouseX >= this.x) && (mouseX <= x+width) && (mouseY >= this.y) && (mouseY <= 17); | |
GuiApi.drawBorderedCircle(15,20, (float) (7),new Color(0x404040).getRGB(),new Color(0x404040).getRGB()); | |
Gui.drawRect(22.02,20,7.98,sr.getScaledHeight() - 16 / scale-20,new Color(0x404040).getRGB()); | |
GuiApi.drawBorderedCircle(15,sr.getScaledHeight() - 16 / scale-20, (float) (7),new Color(0x404040).getRGB(),new Color(0x404040).getRGB()); | |
Gui.drawRect(22.02,10,22.5,sr.getScaledHeight() - 16 / scale-10,new Color(0x502B2B2B).getRGB());//0x502B2B2B | |
Gui.drawRect(7.98,10,7.5,sr.getScaledHeight() - 16 / scale-10,new Color(0x502B2B2B).getRGB()); | |
Gui.drawRect(22.02,17,sr.getScaledWidth() / 1.5,sr.getScaledHeight() - 16 / scale-17,new Color(0x1C1C1C).getRGB()); | |
} | |
public ArrayList<Rect> city = new ArrayList<>(); | |
} |
package de.Client.Main.Values; | |
public class Value { | |
private String name; | |
public Value(String name) { | |
this.name = name; | |
} | |
public String getName() { | |
return this.name; | |
} | |
public void setName(String name) { | |
this.name = name; | |
} | |
} |
package de.Client.Main.Values; | |
public class ValueBoolean extends Value { | |
private boolean value; | |
public ValueBoolean(String name, boolean value) { | |
super(name); | |
this.value = value; | |
} | |
public boolean getValue() { | |
return this.value; | |
} | |
public void setValue(boolean value) { | |
this.value = value; | |
} | |
} |
package de.Client.Main.Values; | |
public class ValueDouble extends Value { | |
private String name; | |
private double value; | |
private double min; | |
private double max; | |
private int round; | |
public ValueDouble(String name, double value, double min, double max, int round) { | |
super(name); | |
this.value = value; | |
this.min = min; | |
this.max = max; | |
this.round = round; | |
} | |
public ValueDouble(String name, double value, double min, double max) { | |
super(name); | |
this.value = value; | |
this.min = min; | |
this.max = max; | |
this.round = 1; | |
} | |
public double getValue() { | |
return this.value; | |
} | |
public void setValue(double value) { | |
this.value = value; | |
} | |
public int getRound() { | |
return this.round; | |
} | |
public double getMin() { | |
return this.min; | |
} | |
public double getMax() { | |
return this.max; | |
} | |
} |
package de.Client.Render.ArrayLists; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.ArrayList; | |
import de.Client.Utils.ColorUtil; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; | |
import net.minecraft.tileentity.TileEntitySign; | |
import net.minecraft.util.ResourceLocation; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.sql.Wrapper; | |
import java.util.*; | |
/** | |
* Created by Daniel on 15.07.2017. | |
*/ | |
public class ArrayListC extends ArrayList{ | |
public HashMap<Module,Color> getColorForModule = new HashMap(); | |
public ArrayListC(){ | |
getColorForModule.clear(); | |
for(Module m : Main.getMain.moduleManager.modules){ | |
Color c = new Color(new Random().nextInt(Integer.MAX_VALUE)); | |
getColorForModule.put(m,new Color( ColorUtil.transparency(c,1))); | |
} | |
} | |
private static java.util.List<Module> getSortedModuleArray() { | |
java.util.ArrayList<Module> list = new java.util.ArrayList<Module>(); | |
for (Module mod : Main.getMain.moduleManager.modules) { | |
if(mod.isModuleImportant()){ | |
if ((!(mod.category == (Category.None)) || mod.name.equals("88")) | |
&& (!(mod.category == (Category.Gui))) ) { | |
if (mod.getState()) { | |
list.add(mod); | |
} | |
} | |
} | |
} | |
list.sort((m1, m2) -> { | |
String s1 = String.valueOf(m1.displayName); | |
String s2 = String.valueOf(m2.displayName); | |
float cmp = 0; | |
cmp = ((Minecraft.getMinecraft().fontRendererObj.getStringWidth(s2) * 999) - (Minecraft.getMinecraft().fontRendererObj.getStringWidth(s1) * 999)); | |
return (int) (cmp != 0 ? cmp : s1.compareTo(s2) * 2); | |
}); | |
return list; | |
} | |
public void draw(double scaledX, double scaledY){ | |
int y = 0; | |
// TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntitySign(), -0.5D, -0.75D, -0.5D, 0.0F); | |
// TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntitySign(), -0.5D, -0.75D, -0.5D, 0.0F); | |
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("textures/gui/title/minecraft.png")); | |
for(Module mod : getSortedModuleArray()){ | |
if(mod.getState){ | |
// this.drawGradientRect(sr.getScaledWidth()-1, y,sr.getScaledWidth()-Main.getMain.verdana.getWidth(mod.displayName)-1, y+1,); | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow (mod.displayName, (float) scaledX-Minecraft.getMinecraft().fontRendererObj.getStringWidth(mod.displayName), y+2,this.getColorForModule.get(mod).getRGB()); | |
y += 9; | |
} | |
} | |
} | |
} |
package de.Client.Render.ArrayLists; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.ArrayList; | |
import java.util.List; | |
public class ArrayListD extends ArrayList{ | |
public void draw(double scaledX, double scaledY){ | |
int y = 0; | |
for(Module mod : getSortedModuleArray()){ | |
if(mod.getState){ | |
// this.drawGradientRect(sr.getScaledWidth()-1, y,sr.getScaledWidth()-Main.getMain.verdana.getWidth(mod.displayName)-1, y+1,); | |
Main.getMain.verdana.drawfixedStringWithShadow(mod.displayName, (float) scaledX-Main.getMain.verdana.getWidth(mod.displayName)-1, -2+y, Main.getMain.getPurple(y*4,10000000).getRGB()); | |
y += 13; | |
} | |
} | |
} | |
private static List<Module> getSortedModuleArray() { | |
java.util.ArrayList<Module> list = new java.util.ArrayList<Module>(); | |
for (Module mod : Main.getMain.moduleManager.modules) { | |
if(mod.isModuleImportant()){ | |
if ((!(mod.category == (Category.None)) || mod.name.equals("88")) | |
&& (!(mod.category == (Category.Gui))) ) { | |
if (mod.getState()) { | |
list.add(mod); | |
} | |
} | |
} | |
} | |
list.sort((m1, m2) -> { | |
String s1 = String.valueOf(m1.displayName); | |
String s2 = String.valueOf(m2.displayName); | |
float cmp = 0; | |
cmp = ((Main.getMain.verdana.getWidth(s2) * 999) - (Main.getMain.verdana.getWidth(s1) * 999)); | |
return (int) (cmp != 0 ? cmp : s1.compareTo(s2) * 2); | |
}); | |
return list; | |
} | |
} |
package de.Client.Render.ArrayLists; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Utils.ArrayList; | |
import net.minecraft.client.gui.Gui; | |
import org.newdawn.slick.Color; | |
import java.util.List; | |
public class ArrayListD2 extends ArrayList{ | |
public void draw(double scaledX, double scaledY){ | |
int y = -1; | |
for(Module mod : getSortedModuleArray()){ | |
if(mod.getState){ | |
Gui.drawRect((float) scaledX-Main.getMain.verdanas.getWidth(mod.displayName)-3,+y+1,scaledX,13+y, Main.getMain.getPurple(y*4,10000000).getRGB()); | |
Gui.drawRect((float) scaledX-Main.getMain.verdanas.getWidth(mod.displayName)-2,+y+1,scaledX,12+y, 0xff2b2b2b); | |
// this.drawGradientRect(sr.getScaledWidth()-1, y,sr.getScaledWidth()-Main.getMain.verdana.getWidth(mod.displayName)-1, y+1,); | |
Main.getMain.verdanas.drawfixedStringWithShadow(mod.displayName, (float) scaledX-Main.getMain.verdanas.getWidth(mod.displayName)-1, -2+y, Main.getMain.getPurple(y*4,10000000).getRGB()); | |
y += 11; | |
} | |
} | |
} | |
private static List<Module> getSortedModuleArray() { | |
java.util.ArrayList<Module> list = new java.util.ArrayList<Module>(); | |
for (Module mod : Main.getMain.moduleManager.modules) { | |
if(mod.isModuleImportant()){ | |
if ((!(mod.category == (Category.None)) || mod.name.equals("88")) | |
&& (!(mod.category == (Category.Gui))) ) { | |
if (mod.getState()) { | |
list.add(mod); | |
} | |
} | |
} | |
} | |
list.sort((m1, m2) -> { | |
String s1 = String.valueOf(m1.displayName); | |
String s2 = String.valueOf(m2.displayName); | |
float cmp = 0; | |
cmp = ((Main.getMain.verdanas.getWidth(s2) * 999) - (Main.getMain.verdanas.getWidth(s1) * 999)); | |
return (int) (cmp != 0 ? cmp : s1.compareTo(s2) * 2); | |
}); | |
return list; | |
} | |
} |
package de.Client.Render.ArrayLists; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.TTFManager; | |
import de.Client.Utils.ArrayList; | |
import de.Client.Utils.ColorUtil; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.ScaledResolution; | |
import java.awt.*; | |
import java.util.*; | |
import java.util.List; | |
/** | |
* Created by Daniel on 08.08.2017. | |
*/ | |
public class ArrayListS extends ArrayList{ | |
public HashMap<Module,Color> getColorForModule = new HashMap(); | |
public ArrayListS(){ | |
getColorForModule.clear(); | |
for(Module m : Main.getMain.moduleManager.modules){ | |
Color c = new Color(new Random().nextInt(Integer.MAX_VALUE)); | |
getColorForModule.put(m,new Color( ColorUtil.transparency(c,1))); | |
} | |
} | |
TTFManager Mayeka = new TTFManager("Mayeka Regular Demo", Font.PLAIN,18); | |
public void draw(double scaledX, double scaledY){ | |
ScaledResolution sr = new ScaledResolution(); | |
List<Module> modules = Main.getMain.moduleManager.getActiveModules(); | |
Collections.sort(modules, new Comparator<Module>() { | |
@Override | |
public int compare(Module m1, Module m2) { | |
return Integer.valueOf((int) Mayeka.getWidth(m2.name)).compareTo(Integer.valueOf((int) Mayeka.getWidth(m1.name))); | |
} | |
}); | |
int y = 0; | |
for(Module module : modules) { | |
if(module.getState) { | |
Gui.drawRect(sr.getScaledWidth() - Mayeka.getWidth(module.name) - 7, y, sr.getScaledWidth(), y + 11, 0x90000000); | |
Gui.drawRect(sr.getScaledWidth() - 2, y, sr.getScaledWidth(), y + 11, getColorForModule.get(module).getRGB()); | |
Mayeka.drawStringWithShadow(module.name, sr.getScaledWidth() - Mayeka.getWidth(module.name) - 5, y , getColorForModule.get(module).getRGB()); | |
y += 11; | |
} | |
} | |
} | |
} |
package de.Client.Render.CircleGui; | |
/** | |
* Created by Daniel on 12.11.2017. | |
*/ | |
public class CircleGui { | |
public CircleGui getGui = new CircleGui(); | |
} |
package de.Client.Render.CircleGui; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.mods.Render.Gui; | |
import de.Client.Render.GuiApi; | |
import java.awt.*; | |
/** | |
* Created by Daniel on 12.11.2017. | |
*/ | |
public class CircleUtils { | |
public static float getAngleForPeaces(int mouseX, int mouseY, int i, float peaces){ | |
return 360 / peaces; | |
} | |
public static double getMouseAngelForPoint(float mouseX, float mouseY, float pointX,float pointY) { | |
// Math.asin(2); | |
// Main.getMain.cmdManager.sendChatMessage(); | |
double relativeMouseX = mouseX - pointX; | |
double relativeMouseY = mouseY - pointY; | |
double hypothenuse = Math.sqrt(relativeMouseX * relativeMouseX + relativeMouseY * relativeMouseY); | |
double angle = relativeMouseY / relativeMouseX; | |
angle = Math.toDegrees(Math.atan(angle)); | |
if(relativeMouseX < 0){ | |
angle = 180+angle; | |
}else{ | |
if(relativeMouseY < 0){ | |
angle +=360; | |
} | |
} | |
angle += 90; | |
return angle % 360; | |
} | |
} |
package de.Client.Render.ClickGui; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Render.ClickGui.Panels.Panel; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.util.ResourceLocation; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class ClickGui extends GuiScreen { | |
public ClickGui() { | |
panels.add(this.panelCombat); | |
panels.add(this.panaelMovement); | |
panels.add(this.panelPlayer); | |
panels.add(this.panelRender); | |
panels.add(this.panelWorld); | |
} | |
public ArrayList<Panel> panels = new ArrayList<Panel>(); | |
public Panel panelCombat = new Panel(Category.COMBAT, 65, 20, | |
new ResourceLocation("Sunrise/Backgrounds/Combat.png"), this); | |
public Panel panaelMovement = new Panel(Category.MOVEMENT, 195, 20, | |
new ResourceLocation("Sunrise/Backgrounds/Movement.png"), this); | |
public Panel panelPlayer = new Panel(Category.PLAYER, 65, 50, | |
new ResourceLocation("Sunrise/Backgrounds/Player.png"), this); | |
public Panel panelRender = new Panel(Category.RENDER, 195, 50, | |
new ResourceLocation("Sunrise/Backgrounds/Render.png"), this); | |
public Panel panelWorld = new Panel(Category.WORLD, 65, 80, new ResourceLocation("Sunrise/Backgrounds/World.png"), | |
this); | |
@Override | |
protected void mouseReleased(int mouseX, int mouseY, int state) { | |
super.mouseReleased(mouseX, mouseY, state); | |
for(int i= 0; i < this.panels.size(); ++i){ | |
Panel p = this.panels.get(i); | |
p.mouseReleased(mouseX, mouseY, state); | |
} | |
} | |
public void updateAnimation(){ | |
for(Panel p : this.panels){ | |
p.updateAnimation(); | |
} | |
} | |
public Panel setPanelToFont(Panel p,boolean open) { | |
int panelIndex = panels.indexOf(p); | |
for(Panel p1 : this.panels) { | |
p1.front = false; | |
} | |
p.front = true; | |
panels.remove(panelIndex); | |
panels.add(p); | |
return p; | |
} | |
@Override | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) { | |
for(int i= 0; i < this.panels.size(); ++i){ | |
Panel p = this.panels.get(i); | |
p.drawPanel(); | |
} | |
} | |
@Override | |
public void initGui() { | |
for(int i= 0; i < this.panels.size(); ++i) { | |
Panel p = this.panels.get(i); | |
p.init(); | |
} | |
} | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
for (int i = 0; i < this.panels.size();++i) { | |
Panel p = this.panels.get(i); | |
p.keyTyped(typedChar,keyCode); | |
} | |
super.keyTyped(typedChar, keyCode); | |
} | |
@Override | |
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { | |
for (int i = 0; i < this.panels.size();++i) { | |
Panel p = this.panels.get(i); | |
p.mouseClick(mouseX, mouseY, mouseButton); | |
} | |
} | |
} |
package de.Client.Render.ClickGui.Panels; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import org.lwjgl.input.Keyboard; | |
import java.io.IOException; | |
public class Mini { | |
public Mini(Module m){ | |
module = m; | |
} | |
public Module module; | |
public float getHeight() { | |
return height; | |
} | |
private float height = 16; | |
public void mouseClick(float x,float y){ | |
} | |
public void closeMini(){ | |
} | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
this.mouseX = mouseX; | |
this.mouseY = mouseY; | |
this.x = x; | |
this.y = y; | |
} | |
public float mouseX; | |
public float mouseY; | |
public float x; | |
public float y; | |
public boolean isMouseOverModule(){ | |
boolean isOver = false; | |
if(mouse(mouseX,mouseY,x-57.5f,x+57.5f,y - getHeight() / 2, y + getHeight() / 2 )) isOver = true; | |
return isOver; | |
} | |
public boolean mouse(float mouseX, float mouseY, float minX, float maxX, float minY, float maxY) { | |
return (mouseX >= minX && mouseX <= maxX) && (mouseY >= minY && mouseY <= maxY); | |
} | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import de.Client.Utils.MiniValueBooleanArray; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.nbt.NBTTagCompound; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class MiniExtendedValueArray extends Mini{ | |
public MiniExtendedValueArray(Module m, ArrayList<MiniValueBooleanArray> aav) { | |
super(m); | |
valueArrayArray = aav; | |
} | |
public ValueBoolean value1; | |
public ValueBoolean value2; | |
public ValueBoolean value3; | |
public ArrayList<MiniValueBooleanArray> valueArrayArray; | |
public MiniValueBooleanArray arrayOver; | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,22); | |
public boolean setNewKeyBind; | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
public void mouseClick(float x,float y){ | |
super.mouseClick(x,y); | |
if(arrayOver != null){ | |
arrayOver.isExtended = ! arrayOver.isExtended; | |
} | |
} | |
public float height; | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
// Gui.drawRect(x-57.5, y-height/2, x+57.5, y+height/2-1,!this.isMouseOverModule() ? new Color(0x303030).getRGB() : new Color(0x242424).getRGB()); | |
height = -getHeight()/2; | |
arrayOver = null; | |
double y2 = y - getHeight()/2+7; | |
for (MiniValueBooleanArray m : this.valueArrayArray) { | |
GuiApi.drawBorderRectNoCorners(x - 57.5, y2 + height, x + 57.5, y2 + height + 15, new Color(0x1D1D1D).getRGB(), !mouse(mouseX,mouseY,x - 57.5f,x + 57.5f,(float) y2 + height,(float)y2 + height + 15) ? new Color(0x292929).getRGB() : new Color(0x222222).getRGB()); | |
Main.getMain.verdanas.drawCenteredStringWithShadow(m.name,(float)x ,(float) y2 + height-0.5f,0xffffffff); | |
Main.getMain.cmdManager.sendChatMessage(m.name + " " + y2); | |
if(mouse(mouseX,mouseY,x - 57.5f,x + 57.5f,(float) y2 + height,(float)y2 + height + 15)){ | |
arrayOver = m; | |
} | |
height += 16; | |
if (m.isExtended) { | |
for (ValueBoolean valueBoolean : m.valueBooleanArrayList) { | |
height += 20; | |
m.drawMini(x,y); | |
} | |
} | |
} | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
@Override | |
public float getHeight(){ | |
float height = 0; | |
for (MiniValueBooleanArray m : this.valueArrayArray) { | |
height += 16; | |
if (m.isExtended) { | |
for (ValueBoolean valueBoolean : m.valueBooleanArrayList) { | |
height += 20; | |
} | |
} | |
} | |
return height; | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import net.minecraft.client.gui.Gui; | |
import org.lwjgl.input.Keyboard; | |
import java.awt.*; | |
import java.io.IOException; | |
public class MiniKeyBind extends Mini{ | |
public MiniKeyBind(Module m) { | |
super(m); | |
} | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,22); | |
public boolean setNewKeyBind; | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
if(this.setNewKeyBind){ | |
if(keyCode == Keyboard.KEY_ESCAPE){ | |
this.setNewKeyBind = false; | |
return; | |
} | |
module.keyBind = keyCode; | |
this.setNewKeyBind = false; | |
} | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
public void mouseClick(float x,float y){ | |
if(this.isMouseOverModule()){ | |
this.setNewKeyBind =! setNewKeyBind; | |
} | |
super.mouseClick(x,y); | |
} | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
Gui.drawRect(x-57.5, y-this.getHeight()/2, x+57.5, y+this.getHeight()/2-1,!this.isMouseOverModule() ? new Color(0x303030).getRGB() : new Color(0x242424).getRGB()); | |
GuiApi.drawGradientRect(x-58, y-12, x+58, y+8, 0,0x242424); | |
if(!this.setNewKeyBind) { | |
verdana.drawStringWithShadow("KeyBind " + Keyboard.getKeyName(module.keyBind), x-56 , y - 9, 0xffffffff); | |
}else{ | |
verdana.drawCenteredStringWithShadow("Press new key" , x , y - 9, 0xffffffff); | |
} | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import net.minecraft.client.gui.Gui; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class MiniOneofThree extends Mini{ | |
public MiniOneofThree(Module m,ValueBoolean vb1, ValueBoolean vb2, ValueBoolean vb3) { | |
super(m); | |
value1 = vb1; | |
value2 = vb2; | |
value3 = vb3; | |
} | |
public ValueBoolean value1; | |
public ValueBoolean value2; | |
public ValueBoolean value3; | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,22); | |
public boolean setNewKeyBind; | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
public void mouseClick(float x,float y){ | |
super.mouseClick(x,y); | |
} | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
Gui.drawRect(x-57.5, y-this.getHeight()/2, x+57.5, y+this.getHeight()/2-1,!this.isMouseOverModule() ? new Color(0x303030).getRGB() : new Color(0x242424).getRGB()); | |
GuiApi.drawGradientRect(x-58, y-12, x+58, y+8, 0,0x242424); | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class MiniOneOfTwo extends Mini{ | |
public MiniOneOfTwo(Module m,ValueBoolean vb1, ValueBoolean vb2) { | |
super(m); | |
value1 = vb1; | |
value2 = vb2; | |
} | |
public ValueBoolean value1; | |
public ValueBoolean value2; | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,20); | |
public boolean setNewKeyBind; | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
public void mouseClick(float x,float y){ | |
if(this.isMouseOverModule()){ | |
if(mouseX < this.x ){ | |
value1.setValue(true); | |
value2.setValue(false); | |
} | |
if(mouseX > this.x ) { | |
value2.setValue(true); | |
value1.setValue(false); | |
} | |
} | |
super.mouseClick(x,y); | |
} | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
Gui.drawRect(x-57.5, y-this.getHeight()/2, x+57.5, y+this.getHeight()/2-1,!this.isMouseOverModule() ? new Color(0x303030).getRGB() : new Color(0x242424).getRGB()); | |
GuiApi.drawGradientRect(x-58, y-12, x+58, y+8, 0,0x242424); | |
GuiApi.drawBorderRectNoCorners(x-56,y-this.getHeight()/2+1,x,y+this.getHeight()/2-2, new Color(0x3D3D3D).getRGB(),this.value1.getValue() ? Main.getMain.getClientColor().getRGB() : new Color(0x1E1E1E).getRGB()); | |
GuiApi.drawBorderRectNoCorners(x+56,y-this.getHeight()/2+1,x,y+this.getHeight()/2-2, new Color(0x3D3D3D).getRGB(),this.value2.getValue() ? Main.getMain.getClientColor().getRGB() : new Color(0x1E1E1E).getRGB()); | |
verdana.drawCenteredStringWithShadow(value1.getName(),x-28,y-7.3f,value1.getValue() ? 0xffffffff : new Color(0x858585).getRGB() ); | |
verdana.drawCenteredStringWithShadow(value2.getName(),x+28,y-7.3f,value2.getValue() ? 0xffffffff : new Color(0x858585).getRGB() ); | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import net.minecraft.client.gui.Gui; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class MiniValueBooleanToggleSimple extends Mini{ | |
public MiniValueBooleanToggleSimple(Module m, ValueBoolean values) { | |
super(m); | |
this.values = values; | |
} | |
public ValueBoolean values; | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,22); | |
@Override | |
public void mouseClick(float x,float y){ | |
super.mouseClick(x,y); | |
if(this.isMouseOverModule()){ | |
values.setValue(!values.getValue()); | |
} | |
} | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
Gui.drawRect(x-57.5, y-this.getHeight()/2, x+57.5, y+this.getHeight()/2,this.isMouseOverModule() ? new Color(0xff272727).getRGB() : new Color(0xff2f2f2f).getRGB()); | |
System.out.println(this.isMouseOverModule() + " "+ y +" " +x); | |
GuiApi.drawRect(x-(57.5 - 0.5f / 2),y-this.getHeight() / 2+0.5f,x-(57.5 - 0.5f / 2)+this.getHeight()-2*0.5f,y+this.getHeight() / 2-0.5f,!values.getValue() ? new Color(0x565656).getRGB() :Main.getMain.getClientColor().getRGB()); | |
GuiApi.drawGradientRect(x-(57.5 - 0.5f / 2),y-this.getHeight() / 2+0.5f-4,x-(57.5 - 0.5f / 2)+this.getHeight()-2*0.5f,y+this.getHeight() / 2-0.5f, 0, Integer.MIN_VALUE); | |
Main.getMain.verdanas.drawStringWithShadow(this.values.getName(), (float) (x-(57.5 - 0.5f / 2)+this.getHeight()-2*0.5f)+1, y-this.getHeight()/2,values.getValue() ? 0xffffffff : new Color(0x807E7F).getRGB()); | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
} |
package de.Client.Render.ClickGui.Panels.Minitypes; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.ClickGui.Panels.Mini; | |
import de.Client.Render.GuiApi; | |
import de.Client.Render.TTFManager; | |
import net.minecraft.client.gui.Gui; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
public class MiniValueSwitcher extends Mini{ | |
public MiniValueSwitcher(Module m, ArrayList<ValueBoolean> values) { | |
super(m); | |
this.values = values; | |
} | |
public ArrayList<ValueBoolean> values= new ArrayList(); | |
public static TTFManager verdana =new TTFManager("Verdana",Font.PLAIN,22); | |
public boolean setNewKeyBind; | |
@Override | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
super.keyTyped(typedChar,keyCode); | |
} | |
@Override | |
public void mouseClick(float x,float y){ | |
super.mouseClick(x,y); | |
} | |
@Override | |
public void drawMini(float x,float y,float mouseX,float mouseY){ | |
Gui.drawRect(x-57.5, y-this.getHeight()/2, x+57.5, y+this.getHeight()/2-1,!this.isMouseOverModule() ? new Color(0x303030).getRGB() : new Color(0x242424).getRGB()); | |
GuiApi.drawGradientRect(x-58, y-12, x+58, y+8, 0,0x242424); | |
super.drawMini(x, y, mouseX, mouseY); | |
} | |
} |
package de.Client.Render.ClickGui.Panels; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.ClickGui.ClickGui; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.RenderAPI2d; | |
import de.Client.Utils.TimeHelper; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.entity.Render; | |
import net.minecraft.util.ResourceLocation; | |
import org.lwjgl.input.Mouse; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.io.IOException; | |
import java.sql.Time; | |
import java.util.ArrayList; | |
public class Panel { | |
public Category category; | |
public float x; | |
public float y; | |
public ResourceLocation locationToRender; | |
public ArrayList<Button> buttons = new ArrayList(); | |
public Minecraft mc = Minecraft.getMinecraft(); | |
public float lastmouseX; | |
public float lastmouseY; | |
public ClickGui clickgui; | |
public boolean isDragging; | |
public boolean isOpen; | |
public Panel(Category category,int startX,int startY,ResourceLocation l,ClickGui gui){ | |
this.category = category; | |
this.x = startX; | |
this.y = startY; | |
this.locationToRender =l; | |
this.clickgui = gui; | |
} | |
public void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
for(Button btn : this.buttons){ | |
if(this.isOpen) { | |
btn.keyTyped(typedChar, keyCode); | |
} | |
} | |
} | |
public boolean mouse(int mouseX, int mouseY, float minX, float maxX, float minY, float maxY) { | |
return (mouseX >= minX && mouseX <= maxX) && (mouseY >= minY && mouseY <= maxY); | |
} | |
public void init() { | |
if (buttons.isEmpty()) { | |
for (Module mod : Main.getMain.moduleManager.getModulesForCategory(this.category)) { | |
this.buttons.add(new Button(mod, this)); | |
} | |
} | |
this.openPanelHeight = buttons.size() * 18; | |
} | |
public void setColor(int colorHex,float alpha) | |
{ | |
float red = (colorHex >> 16 & 0xFF) / 255.0F; | |
float green = (colorHex >> 8 & 0xFF) / 255.0F; | |
float blue = (colorHex & 0xFF) / 255.0F; | |
GL11.glColor4f(red, green, blue, alpha == 0.0F ? 1.0F : alpha); | |
} | |
public void mouseClick(int mouseX,int mouseY,int mouseType) { | |
if (this.mouse(mouseX, mouseY, x - 60, x + 60, y - 9, (float) (y + 9 + this.openPanelHeight))) { | |
if (!this.front) { | |
this.clickgui.setPanelToFont(this, this.isOpen).mouseClick(mouseX, mouseY, mouseType); | |
} | |
} | |
if(this.front) { | |
if (this.mouse(mouseX, mouseY, x - 60, x + 60, y - 9, y + 9)) { | |
isDragging = true; | |
for (Panel p : this.clickgui.panels) { | |
if (p != this) { | |
p.isDragging = false; | |
} | |
} | |
if (mouseType == 1) { | |
isOpen = !isOpen; | |
mc.theWorld.playSound(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ,"random.pop",10000,isOpen ? 1 : -1,false); | |
} | |
} | |
if (this.isOpen) { | |
for (Button btn : this.buttons) { | |
btn.mouseClick(mouseX, mouseY, mouseType); | |
} | |
} | |
} | |
} | |
public void mouseReleased(int mouseX,int mouseY,int mouseType){ | |
isDragging = false; | |
} | |
public static void startScissors(int x, int y, int width, int height) { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_SCISSOR_TEST); | |
ScaledResolution sr1 = new ScaledResolution(); | |
int factor = sr1.getScaleFactor(); | |
GL11.glScissor(x * factor, (sr1.getScaledHeight() - height) * factor, Math.abs((width - x) * factor), Math.abs((height - y) * factor)); | |
} | |
public static void stopScissor() { | |
GL11.glDisable(GL11.GL_SCISSOR_TEST); | |
GL11.glPopMatrix(); | |
} | |
public double anInt; | |
public double openPanelHeight; | |
public float getDiffrent(double f1, double f2){ | |
return (float) Math.sqrt((f1-f2)*(f1-f2)); | |
} | |
public void updateAnimation(){ | |
// System.out.println("test"); | |
double height = 0; | |
for (Button b : this.buttons) { | |
height += 18; | |
if(b.isOpen && !this.isOpen){ | |
for(Mini m : b.valueButtons){ | |
height += m.getHeight(); | |
} | |
} | |
} | |
if(this.isOpen){ | |
openPanelHeight = height + 10; | |
if(-this.openPanelHeight -11+anInt <= 0) { | |
anInt += this.getDiffrent(-this.openPanelHeight -11+anInt,1)/10; | |
} | |
}else{ | |
anInt = -10; | |
} | |
} | |
public TimeHelper t = new TimeHelper(); | |
public int frames; | |
public boolean scissorfix; | |
public boolean front; | |
public void drawPanel() { | |
// System.out.println(this.front); | |
ScaledResolution sr = new ScaledResolution(); | |
double x1 = Mouse.getEventX() * clickgui.width / this.mc.displayWidth; | |
double y1 = clickgui.height - Mouse.getEventY() * clickgui.height / this.mc.displayHeight; | |
if (isDragging) { | |
if (Mouse.isButtonDown(0)) { | |
this.x += (x1 * 200 - this.lastmouseX) / 200.00f; | |
this.y += (y1 * 200 - this.lastmouseY) / 200.00f; | |
} | |
} | |
this.lastmouseX = (float) (x1 * 200); | |
this.lastmouseY = (float) (y1 * 200); | |
if (this.isOpen) { | |
int y2 = 0; | |
if (-this.openPanelHeight - 11 + anInt < 0) { | |
startScissors(0, (int) y - 5, (int) ((int) sr.getScaledWidth()), (int) ((int) y + this.openPanelHeight)); | |
scissorfix = true; | |
GL11.glTranslated(0, -this.openPanelHeight - 11 + anInt, 0); | |
// System.out.println(-this.openPanelHeight -11+anInt ); | |
} | |
for (Button btn : this.buttons) { | |
btn.drawButton(x, y + 18 + y2, (float) x1, (float) y1); | |
y2 += btn.height; | |
} | |
if (-this.openPanelHeight - 11 + anInt < 0) { | |
GL11.glTranslated(0, -(-this.openPanelHeight - 11 + anInt), 1); | |
} | |
if (scissorfix) { | |
stopScissor(); | |
scissorfix = false; | |
} | |
} else { | |
anInt = 0; | |
} | |
GuiApi.drawFineBorderedRect(x - 60, y + 9, x + 60, (int) (y - 10), new Color(0xff202020).darker().getRGB(), 0xff202020); | |
String s = String.valueOf(String.valueOf(category.toString().substring(0, 1))) | |
+ category.toString().substring(1, category.toString().length()).toLowerCase(); | |
Main.getMain.verdana.drawCenteredStringWithShadow(this.isOpen ? "V" : "...", x - 54, y - 9, Main.getMain.getClientColor().getRGB()); | |
Main.getMain.verdana.drawCenteredStringWithShadow(s, x, y - 9, Color.white.getRGB()); | |
GlStateManager.color(1, 1, 1); | |
mc.getTextureManager().bindTexture(this.locationToRender); | |
setColor(Main.getMain.getClientColor().getRGB(), 1); | |
// if (this.category == Category.PLAYER) { | |
// GL11.glScaled(0.03125d,0.03125d,0.03125d); | |
// RenderAPI2d.drawTexture(RenderAPI2d.getTextureForCategory.get(this.category), (x + 60 - 18)/32F, (y - 9)/32F,512, 512); | |
// GL11.glScaled(32,32,32); | |
// } | |
Gui.drawModalRectWithCustomSizedTexture(x+60-18,y-9,1800,1800,18,18,18,18); | |
} | |
} |
package de.Client.Render; | |
import net.minecraft.client.gui.GuiScreen; | |
import java.awt.image.BufferedImage; | |
import java.awt.image.Raster; | |
public class GuiAnimation extends GuiScreen{ | |
public GuiScreen screen; | |
public BufferedImage imageToRender; | |
public GuiAnimation(BufferedImage image, GuiScreen guiScreenToGo){ | |
imageToRender = image; | |
screen = guiScreenToGo; | |
} | |
@Override | |
public void initGui(){ | |
for(int x = 0;x < this.imageToRender.getWidth();++x){ | |
for(int y = 0; y < this.imageToRender.getHeight();++y){ | |
Raster r = this.imageToRender.getTile(x, y); | |
} | |
} | |
} | |
@Override | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) | |
{ | |
} | |
} |
package de.Client.Render; | |
import de.Client.Main.Main; | |
import de.Client.Utils.ColorUtil; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.FontRenderer; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import org.lwjgl.opengl.GL11; | |
public class GuiApi { | |
private static FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; | |
public static void drawCentredStringWithShadow(String s, int x, int y, int colour) { | |
fr.drawString(s, x -= fr.getStringWidth(s) / 2, y, colour); | |
} | |
public static void drawScaledRect(double x, double y, double x2, double y2, int color,double scale) { | |
x *= scale; | |
y *= scale; | |
x2 *= scale; | |
y2 *= scale; | |
Gui.drawRect(x, y, x2, y2, color); | |
} | |
public static void drawRect(double x, double y, double x2, double y2, int color) { | |
Gui.drawRect(x, y, x2, y2, color); | |
} | |
public static void drawRectColor(double d, double e, double f2, double f3, float alpha, float red, float green, float blue) | |
{ | |
GlStateManager.enableBlend(); | |
GlStateManager.func_179090_x(); | |
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); | |
GL11.glPushMatrix(); | |
GL11.glColor4f(red, green, blue, alpha); | |
GL11.glBegin(7); | |
GL11.glVertex2d(f2, e); | |
GL11.glVertex2d(d, e); | |
GL11.glVertex2d(d, f3); | |
GL11.glVertex2d(f2, f3); | |
GL11.glEnd(); | |
GlStateManager.func_179098_w(); | |
GlStateManager.disableBlend(); | |
GL11.glPopMatrix(); | |
} | |
public static void drawOutlineRect(float drawX, float drawY, float drawWidth, float drawHeight, int color) { | |
drawRect(drawX, drawY, drawWidth, drawY + 0.5F, color); | |
drawRect(drawX, drawY + 0.5F, drawX + 0.5F, drawHeight, color); | |
drawRect(drawWidth - 0.5F, drawY + 0.5F, drawWidth, drawHeight - 0.5F, color); | |
drawRect(drawX + 0.5F, drawHeight - 0.5F, drawWidth, drawHeight, color); | |
} | |
public static void drawOutlinedRect(float drawX, float drawY, float drawWidth, float drawHeight, float alpha, float red, float green, float blue) | |
{ | |
drawRectColor(drawX, drawY, drawWidth, drawY + 0.5F, alpha, red, green, blue); | |
drawRectColor(drawX, drawY + 0.5F, drawX + 0.5F, drawHeight, alpha, red, green, blue); | |
drawRectColor(drawWidth - 0.5F, drawY + 0.5F, drawWidth, drawHeight - 0.5F, alpha, red, green, blue); | |
drawRectColor(drawX + 0.5F, drawHeight - 0.5F, drawWidth, drawHeight, alpha, red, green, blue); | |
} | |
public static void drawRGBRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, int r , int g , int b) { | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glPushMatrix(); | |
GL11.glColor3f((float) (float) r, (float) (float) g, (float) (float) b); | |
GL11.glBegin((int)7); | |
GL11.glVertex2d((double)paramXEnd, (double)paramYStart); | |
GL11.glVertex2d((double)paramXStart, (double)paramYStart); | |
GL11.glVertex2d((double)paramXStart, (double)paramYEnd); | |
GL11.glVertex2d((double)paramXEnd, (double)paramYEnd); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, int paramColor) { | |
float alpha = (float)(paramColor >> 24 & 255) / 255.0f; | |
float red = (float)(paramColor >> 16 & 255) / 255.0f; | |
float green = (float)(paramColor >> 8 & 255) / 255.0f; | |
float blue = (float)(paramColor & 255) / 255.0f; | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glPushMatrix(); | |
GL11.glColor4f((float)red, (float)green, (float)blue, (float)alpha); | |
GL11.glBegin((int)7); | |
GL11.glVertex2d((double)paramXEnd, (double)paramYStart); | |
GL11.glVertex2d((double)paramXStart, (double)paramYStart); | |
GL11.glVertex2d((double)paramXStart, (double)paramYEnd); | |
GL11.glVertex2d((double)paramXEnd, (double)paramYEnd); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawPoint(int x, int y, int color) { | |
GuiApi.drawRect(x, y, x + 1, y + 1, color); | |
} | |
public static void drawVerticalLine(double x, double y, double height, int color) { | |
GuiApi.drawRect(x, y, x + 1, height, color); | |
} | |
public static void drawHorizontalLine(double x, double y, double width, int color) { | |
GuiApi.drawRect(x, y, width, y + 1, color); | |
} | |
public static void drawBorderedRect(double f, double y, double g, double d, int bord, int color) { | |
GuiApi.drawRect(f + 1, y + 1, g, d, color); | |
GuiApi.drawVerticalLine(f, y, d, bord); | |
GuiApi.drawVerticalLine(g, y, d, bord); | |
GuiApi.drawHorizontalLine(f + 1, y, g, bord); | |
GuiApi.drawHorizontalLine(f, d, g + 1, bord); | |
} | |
public static void drawFineBorderedRect(double x, double y, double x1, double y1, int bord, int color) { | |
GL11.glScaled((double)0.5, (double)0.5, (double)0.5); | |
GuiApi.drawRect((x *= 2) + 1, (y *= 2) + 1, x1 *= 2, y1 *= 2, color); | |
GuiApi.drawVerticalLine(x, y, y1, bord); | |
GuiApi.drawVerticalLine(x1, y, y1, bord); | |
GuiApi.drawHorizontalLine(x + 1, y, x1, bord); | |
GuiApi.drawHorizontalLine(x, y1, x1 + 1, bord); | |
GL11.glScaled((double)2.0, (double)2.0, (double)2.0); | |
} | |
public static void drawBorderRectNoCorners(double d, double e, double x2, double y2, int bord, int color) { | |
GL11.glScaled((double)0.5, (double)0.5, (double)0.5); | |
GuiApi.drawRect((d *= 2) + 1, (e *= 2) + 1, x2 *= 2, y2 *= 2, color); | |
GuiApi.drawVerticalLine(d, e + 1, y2, bord); | |
GuiApi.drawVerticalLine(x2, e + 1, y2, bord); | |
GuiApi.drawHorizontalLine(d + 1, e, x2, bord); | |
GuiApi.drawHorizontalLine(d + 1, y2, x2, bord); | |
GL11.glScaled((double)2.0, (double)2.0, (double)2.0); | |
} | |
public static void drawBorderedGradient(int x, int y, int x1, int y1, int bord, int gradTop, int gradBot) { | |
GL11.glScaled((double)0.5, (double)0.5, (double)0.5); | |
float f = (float)(gradTop >> 24 & 255) / 255.0f; | |
float f1 = (float)(gradTop >> 16 & 255) / 255.0f; | |
float f2 = (float)(gradTop >> 8 & 255) / 255.0f; | |
float f3 = (float)(gradTop & 255) / 255.0f; | |
float f4 = (float)(gradBot >> 24 & 255) / 255.0f; | |
float f5 = (float)(gradBot >> 16 & 255) / 255.0f; | |
float f6 = (float)(gradBot >> 8 & 255) / 255.0f; | |
float f7 = (float)(gradBot & 255) / 255.0f; | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glShadeModel((int)7425); | |
GL11.glPushMatrix(); | |
GL11.glBegin((int)7); | |
GL11.glColor4f((float)f1, (float)f2, (float)f3, (float)f); | |
GL11.glVertex2d((double)(x1 *= 2), (double)((y *= 2) + 1)); | |
GL11.glVertex2d((double)((x *= 2) + 1), (double)(y + 1)); | |
GL11.glColor4f((float)f5, (float)f6, (float)f7, (float)f4); | |
GL11.glVertex2d((double)(x + 1), (double)(y1 *= 2)); | |
GL11.glVertex2d((double)x1, (double)y1); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
GL11.glShadeModel((int)7424); | |
GuiApi.drawVLine(x, y, y1 - 1, bord); | |
GuiApi.drawVLine(x1 - 1, y, y1 - 1, bord); | |
GuiApi.drawHLine(x, x1 - 1, y, bord); | |
GuiApi.drawHLine(x, x1 - 1, y1 - 1, bord); | |
GL11.glScaled((double)2.0, (double)2.0, (double)2.0); | |
} | |
public static void drawHLine(float par1, float par2, float par3, int par4) { | |
if (par2 < par1) { | |
float var5 = par1; | |
par1 = par2; | |
par2 = var5; | |
} | |
GuiApi.drawRect(par1, par3, par2 + 1.0f, par3 + 1.0f, par4); | |
} | |
private static void enableDefaults() { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glEnable(GL11.GL_LINE_SMOOTH); | |
GL11.glDisable(GL11.GL_DEPTH_TEST); | |
GL11.glDisable(GL11.GL_TEXTURE_2D); | |
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); | |
} | |
private static void setColor(int color) { | |
GL11.glColor4f((color >> 16 & 0xFF) / 255.0F, (color >> 8 & 0xFF) / 255.0F, (color & 0xFF) / 255.0F, (color >> 24 & 0xFF) / 255.0F); | |
} | |
private static void disableDefaults() { | |
GL11.glDisable(GL11.GL_BLEND); | |
GL11.glDisable(GL11.GL_LINE_SMOOTH); | |
GL11.glEnable(GL11.GL_DEPTH_TEST); | |
GL11.glEnable(GL11.GL_TEXTURE_2D); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glPopMatrix(); | |
} | |
public static void drawCircle(float x, float y, float radius, int color) { | |
GL11.glPushMatrix(); | |
enableDefaults(); | |
setColor(color); | |
GL11.glBegin(GL11.GL_POLYGON); | |
double i = 0; | |
while(i <= 360.0D) { | |
GL11.glVertex2d(x + Math.sin(i * Math.PI / 180.0F) * radius, y + Math.cos(i * Math.PI / 180.0F) * radius); | |
i += 1.0D; | |
} | |
GL11.glEnd(); | |
disableDefaults(); | |
GL11.glPopMatrix(); | |
} | |
public static void preRender(float[] rgba) { | |
GlStateManager.alphaFunc(516, 0.001F); | |
GlStateManager.color(rgba[0], rgba[1], rgba[2], rgba[3]); | |
GlStateManager.enableAlpha(); | |
GlStateManager.enableBlend(); | |
GlStateManager.func_179090_x(); | |
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); | |
} | |
public static void postRender() { | |
GlStateManager.alphaFunc(516, 0.1F); | |
GlStateManager.color(1f, 1f, 1f, 1f); | |
GlStateManager.disableBlend(); | |
GlStateManager.func_179098_w(); | |
GL11.glLineWidth(1); | |
} | |
public static void drawDonut(float x, float y, float radius,float thickness, int color) { | |
float[] rgba = ColorUtil.getRGBA(color); | |
preRender(rgba); | |
Tessellator tess = Tessellator.getInstance(); | |
WorldRenderer render = tess.getWorldRenderer(); | |
for(double i = 0; i < 360; i++) { | |
double cs = i*Math.PI/180D; | |
double ps = (i-1)*Math.PI/180D; | |
double[] outer = new double[] { Math.cos(cs) * radius, -Math.sin(cs) * radius, Math.cos(ps) * radius, -Math.sin(ps) * radius }; | |
double[] inner = new double[] { Math.cos(cs) * thickness, -Math.sin(cs) * thickness, Math.cos(ps) * thickness, -Math.sin(ps) * thickness }; | |
render.startDrawing(7); | |
render.addVertex(x + inner[0], y + inner[1], 0); | |
render.addVertex(x + inner[2], y + inner[3], 0); | |
render.addVertex(x + outer[2], y + outer[3], 0); | |
render.addVertex(x + outer[0], y + outer[1], 0); | |
tess.draw(); | |
} | |
postRender(); | |
} | |
public static void drawDonutPart(float x, float y, float radius,float thickness, int color,float offset, int width) { | |
float[] rgba = ColorUtil.getRGBA(color); | |
preRender(rgba); | |
Tessellator tess = Tessellator.getInstance(); | |
WorldRenderer render = tess.getWorldRenderer(); | |
for(double i = offset; i < width+offset; i+=1) { | |
double cs = i*Math.PI/180D; | |
double ps = (i-1)*Math.PI/180D; | |
double[] outer = new double[] { Math.cos(cs) * radius, -Math.sin(cs) * radius, Math.cos(ps) * radius, -Math.sin(ps) * radius }; | |
double[] inner = new double[] { Math.cos(cs) * thickness, -Math.sin(cs) * thickness, Math.cos(ps) * thickness, -Math.sin(ps) * thickness }; | |
render.startDrawing(7); | |
render.addVertex(x + inner[0], y + inner[1], 0); | |
render.addVertex(x + inner[2], y + inner[3], 0); | |
render.addVertex(x + outer[2], y + outer[3], 0); | |
render.addVertex(x + outer[0], y + outer[1], 0); | |
tess.draw(); | |
} | |
postRender(); | |
} | |
public static void drawVLine(float par1, float par2, float par3, int par4) { | |
if (par3 < par2) { | |
float var5 = par2; | |
par2 = par3; | |
par3 = var5; | |
} | |
GuiApi.drawRect(par1, par2 + 1.0f, par1 + 1.0f, par3, par4); | |
} | |
public static void drawGradientBorderedRect(double x, double y, double x2, double y2, float l1, int col1, int col2, int col3) { | |
float f = (float)(col1 >> 24 & 255) / 255.0f; | |
float f1 = (float)(col1 >> 16 & 255) / 255.0f; | |
float f2 = (float)(col1 >> 8 & 255) / 255.0f; | |
float f3 = (float)(col1 & 255) / 255.0f; | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glDisable((int)3042); | |
GL11.glPushMatrix(); | |
GL11.glColor4f((float)f1, (float)f2, (float)f3, (float)f); | |
GL11.glLineWidth((float)1.0f); | |
GL11.glBegin((int)1); | |
GL11.glVertex2d((double)x, (double)y); | |
GL11.glVertex2d((double)x, (double)y2); | |
GL11.glVertex2d((double)x2, (double)y2); | |
GL11.glVertex2d((double)x2, (double)y); | |
GL11.glVertex2d((double)x, (double)y); | |
GL11.glVertex2d((double)x2, (double)y); | |
GL11.glVertex2d((double)x, (double)y2); | |
GL11.glVertex2d((double)x2, (double)y2); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GuiApi.drawGradientRect(x, y, x2, y2, col2, col3); | |
GL11.glEnable((int)3042); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawGradientRect(double x, double y, double x2, double y2, int col1, int col2) { | |
float f = (float)(col1 >> 24 & 255) / 255.0f; | |
float f1 = (float)(col1 >> 16 & 255) / 255.0f; | |
float f2 = (float)(col1 >> 8 & 255) / 255.0f; | |
float f3 = (float)(col1 & 255) / 255.0f; | |
float f4 = (float)(col2 >> 24 & 255) / 255.0f; | |
float f5 = (float)(col2 >> 16 & 255) / 255.0f; | |
float f6 = (float)(col2 >> 8 & 255) / 255.0f; | |
float f7 = (float)(col2 & 255) / 255.0f; | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glShadeModel((int)7425); | |
GL11.glPushMatrix(); | |
GL11.glBegin((int)7); | |
GL11.glColor4f((float)f1, (float)f2, (float)f3, (float)f); | |
GL11.glVertex2d((double)x2, (double)y); | |
GL11.glVertex2d((double)x, (double)y); | |
GL11.glColor4f((float)f5, (float)f6, (float)f7, (float)f4); | |
GL11.glVertex2d((double)x, (double)y2); | |
GL11.glVertex2d((double)x2, (double)y2); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
GL11.glShadeModel((int)7424); | |
} | |
public static void drawSidewaysGradientRect(double x, double y, double x2, double y2, int col1, int col2) { | |
float f = (float)(col1 >> 24 & 255) / 255.0f; | |
float f1 = (float)(col1 >> 16 & 255) / 255.0f; | |
float f2 = (float)(col1 >> 8 & 255) / 255.0f; | |
float f3 = (float)(col1 & 255) / 255.0f; | |
float f4 = (float)(col2 >> 24 & 255) / 255.0f; | |
float f5 = (float)(col2 >> 16 & 255) / 255.0f; | |
float f6 = (float)(col2 >> 8 & 255) / 255.0f; | |
float f7 = (float)(col2 & 255) / 255.0f; | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glShadeModel((int)7425); | |
GL11.glPushMatrix(); | |
GL11.glBegin((int)7); | |
GL11.glColor4f((float)f1, (float)f2, (float)f3, (float)f); | |
GL11.glVertex2d((double)x, (double)y); | |
GL11.glVertex2d((double)x, (double)y2); | |
GL11.glColor4f((float)f5, (float)f6, (float)f7, (float)f4); | |
GL11.glVertex2d((double)x2, (double)y2); | |
GL11.glVertex2d((double)x2, (double)y); | |
GL11.glEnd(); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
GL11.glShadeModel((int)7424); | |
} | |
public static void drawBorderedCircle(double x, double y, float radius, int outsideC, int insideC) { | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glPushMatrix(); | |
float scale = 0.1f; | |
GL11.glScalef((float)scale, (float)scale, (float)scale); | |
x = ((float)x * (1.0f / scale)); | |
y = ((float)y * (1.0f / scale)); | |
GuiApi.drawCircle(x, y, radius *= 1.0f / scale, insideC); | |
GuiApi.drawUnfilledCircle(x, y, radius, 1.0f, outsideC); | |
GL11.glScalef((float)(1.0f / scale), (float)(1.0f / scale), (float)(1.0f / scale)); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawrainbowcircle(double x, double y, float radius, int insideC){ | |
GL11.glEnable((int)3042); | |
GL11.glDisable((int)3553); | |
GL11.glBlendFunc((int)770, (int)771); | |
GL11.glEnable((int)2848); | |
GL11.glPushMatrix(); | |
float scale = 0.1f; | |
GL11.glScalef((float)scale, (float)scale, (float)scale); | |
x = (int)((float)x * (1.0f / scale)); | |
y = (int)((float)y * (1.0f / scale)); | |
GuiApi.drawCircle(x, y, radius *= 1.0f / scale, insideC); | |
GuiApi.drawUnfilledCircler(x, y, radius, 5.0f); | |
GL11.glScalef((float)(1.0f / scale), (float)(1.0f / scale), (float)(1.0f / scale)); | |
GL11.glPopMatrix(); | |
GL11.glEnable((int)3553); | |
GL11.glDisable((int)3042); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawUnfilledCircler(double x, double y, float radius, float lineWidth) { | |
GL11.glLineWidth((float)lineWidth); | |
GL11.glEnable((int)2848); | |
GL11.glBegin((int)2); | |
int i = 0; | |
while (i <= 360) { | |
int color = Main.getMain.getPurple((int) (i*800/360.0d),4500000).getRGB(); | |
float red = (float)(color >> 16 & 255) / 255.0f; | |
float alpha = (float)(color >> 24 & 255) / 255.0f; | |
float green = (float)(color >> 8 & 255) / 255.0f; | |
float blue = (float)(color & 255) / 255.0f; | |
GL11.glColor4f((float)red, (float)green, (float)blue, (float)alpha); | |
GL11.glVertex2d((double)((double)x + Math.sin((double)i * 3.141526 / 180.0) * (double)radius), (double)((double)y + Math.cos((double)i * 3.141526 / 180.0) * (double)radius)); | |
++i; | |
} | |
GL11.glEnd(); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawUnfilledCircle(double x, double y, float radius, float lineWidth, int color) { | |
float alpha = (float)(color >> 24 & 255) / 255.0f; | |
float red = (float)(color >> 16 & 255) / 255.0f; | |
float green = (float)(color >> 8 & 255) / 255.0f; | |
float blue = (float)(color & 255) / 255.0f; | |
GL11.glColor4f((float)red, (float)green, (float)blue, (float)alpha); | |
GL11.glLineWidth((float)lineWidth); | |
GL11.glEnable((int)2848); | |
GL11.glBegin((int)2); | |
int i = 0; | |
while (i <= 360) { | |
GL11.glVertex2d((double)((double)x + Math.sin((double)i * 3.141526 / 180.0) * (double)radius), (double)((double)y + Math.cos((double)i * 3.141526 / 180.0) * (double)radius)); | |
++i; | |
} | |
GL11.glEnd(); | |
GL11.glDisable((int)2848); | |
} | |
public static void drawCircle(double x, double y, float radius, int color) { | |
float alpha = (float)(color >> 24 & 255) / 255.0f; | |
float red = (float)(color >> 16 & 255) / 255.0f; | |
float green = (float)(color >> 8 & 255) / 255.0f; | |
float blue = (float)(color & 255) / 255.0f; | |
GL11.glColor4f((float)red, (float)green, (float)blue, (float)alpha); | |
GL11.glBegin((int)9); | |
int i = 0; | |
while (i <= 360) { | |
GL11.glVertex2d((double)((double)x + Math.sin((double)i * 3.141526 / 180.0) * (double)radius), (double)((double)y + Math.cos((double)i * 3.141526 / 180.0) * (double)radius)); | |
++i; | |
} | |
GL11.glEnd(); | |
} | |
public static double getAlphaFromHex(int color) { | |
return (float)(color >> 24 & 255) / 255.0f; | |
} | |
public static double getRedFromHex(int color) { | |
return (float)(color >> 16 & 255) / 255.0f; | |
} | |
public static double getGreenFromHex(int color) { | |
return (float)(color >> 8 & 255) / 255.0f; | |
} | |
public static double getBlueFromHex(int color) { | |
return (float)(color & 255) / 255.0f; | |
} | |
} | |
package de.Client.Render; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.UpdateEvent; | |
import de.Client.Events.IEvent.State; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiChat; | |
import net.minecraft.client.gui.GuiIngame; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.renderer.GlStateManager; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.util.ArrayList; | |
import java.util.Comparator; | |
import java.util.List; | |
public class GuiIngameHook extends GuiIngame { | |
private int animations; | |
public GuiIngameHook(Minecraft mcIn) { | |
super(mcIn); | |
// TODO Auto-generated constructor stub | |
} | |
@Override | |
public void func_175180_a(float p_175180_1_) { | |
try{ | |
super.func_175180_a(p_175180_1_); | |
if(mc.gameSettings.showDebugInfo){ | |
return; | |
} | |
GL11.glPushMatrix(); | |
ScaledResolution sr = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); | |
int x = (int) (mc.thePlayer.posX * 2); | |
int y = (int) (mc.thePlayer.posY * 2); | |
int z = (int) (mc.thePlayer.posZ * 2); | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("X " + (x > 0 ? "+" : "") + (float) x/2,1,sr.getScaledHeight()-30,0xffffffff); | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("Y " + (y> 0 ? "+" : "")+ (float) y/2,1,sr.getScaledHeight()-20,0xffffffff); | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("Z " + (z > 0 ? "+" : "")+ (float) z/2,1,sr.getScaledHeight()-10,0xffffffff); | |
Main.getMain.waterMark.drawWaterMark(sr.getScaledWidth(),sr.getScaledHeight()); | |
Main.getMain.arrayList.draw(sr.getScaledWidth(),sr.getScaledHeight()); | |
try { | |
if (mc.currentScreen instanceof GuiChat) { | |
if (this.animations > 0) { | |
--this.animations; | |
--this.animations; | |
} | |
} else { | |
if (this.animations < (49 + mc.fontRendererObj.getStringWidth(GuiChat.inputField.getText()) * 1.3)) { | |
++this.animations; | |
} else { | |
this.animations = (int) (49 + mc.fontRendererObj.getStringWidth(GuiChat.inputField.getText()) * 1.3); | |
GuiChat.inputField.setText(" "); | |
} | |
} | |
if(mc.currentScreen instanceof GuiChat){ | |
GL11.glTranslated(-animations, 0, 0); | |
GuiApi.drawBorderedRect(-8, sr.getScaledHeight() - 31, | |
(int) (48 + mc.fontRendererObj.getStringWidth(GuiChat.inputField.getText()) * 1.3), | |
sr.getScaledHeight() - 6,GuiChat.inputField.getText().startsWith(".") ? Main.getMain.getClientColor().getRGB() : Color.gray.darker().darker().darker().getRGB(), | |
Color.gray.darker().darker().darker().darker().darker().getRGB()); | |
GuiChat.drawAltFace(mc.thePlayer.getName(), 2, sr.getScaledHeight() - 30, 24, 24, false); | |
this.drawRect(30, sr.getScaledHeight() - 5, 32, sr.getScaledHeight() - 31, | |
new Color(Main.getMain.getClientColor().getRGB()).getRGB()); | |
GL11.glTranslated(30, -4, 0); | |
GuiChat.inputField.drawChatBox(); | |
GL11.glTranslated(-30, 4, 0); | |
GL11.glTranslated(animations, 0, 0); | |
} | |
}catch(Exception ignored){ | |
} | |
GlStateManager.enablePolygonOffset(); | |
GlStateManager.doPolygonOffset(1.0F, -1500000.0F); | |
GL11.glTranslated(0, Main.getMain.waterMark.getHeight()-7, 0); | |
Main.getMain.tabGui.drawTabGui(); | |
GL11.glTranslated(0, -Main.getMain.waterMark.getHeight()-7, 0); | |
GlStateManager.disablePolygonOffset(); | |
GlStateManager.doPolygonOffset(1.0F, 1500000.0F); | |
GL11.glPopMatrix(); | |
}catch(Exception ignored){ | |
} | |
} | |
} |
package de.Client.Render; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.client.renderer.texture.DynamicTexture; | |
import net.minecraft.util.ResourceLocation; | |
import net.minecraft.util.StringUtils; | |
import java.awt.*; | |
import java.awt.geom.Rectangle2D; | |
import java.awt.image.BufferedImage; | |
import java.io.File; | |
import java.io.InputStream; | |
import java.util.Arrays; | |
import java.util.List; | |
import java.util.regex.Pattern; | |
public class NahrFontRenderer { | |
public enum FontType { | |
NORMAL, EMBOSS_TOP, EMBOSS_BOTTOM, OUTLINE_THIN, SHADOW_THICK, SHADOW_THIN | |
} | |
private BufferedImage bufferedImage; | |
private final int endChar; | |
private float extraSpacing = 0.0F; | |
private final float fontSize; | |
private final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OG]"); | |
private final Pattern patternUnsupported = Pattern.compile("(?i)\\u00A7[K-O]"); | |
private ResourceLocation resourceLocation; | |
private final int startChar; | |
private Font theFont; | |
private Graphics2D theGraphics; | |
private FontMetrics theMetrics; | |
private final float[] xPos; | |
private final float[] yPos; | |
public NahrFontRenderer(Object font, float size) { | |
this(font, size, 0.0F); | |
} | |
public NahrFontRenderer(Object font, float size, float spacing) { | |
this.fontSize = size; | |
this.startChar = 32; | |
this.endChar = 255; | |
this.extraSpacing = spacing; | |
this.xPos = new float[this.endChar - this.startChar]; | |
this.yPos = new float[this.endChar - this.startChar]; | |
setupGraphics2D(); | |
createFont(font, size); | |
} | |
private void createFont(Object font, float size) { | |
try { | |
if (font instanceof Font) { | |
this.theFont = (Font) font; | |
} else if (font instanceof File) { | |
this.theFont = Font.createFont(0, (File) font).deriveFont(size); | |
} else if (font instanceof InputStream) { | |
this.theFont = Font.createFont(0, (InputStream) font).deriveFont(size); | |
} else if (font instanceof String) { | |
this.theFont = new Font((String) font, 0, Math.round(size)); | |
} else { | |
this.theFont = new Font("Verdana", 0, Math.round(size)); | |
} | |
this.theGraphics.setFont(this.theFont); | |
} catch (final Exception e) { | |
e.printStackTrace(); | |
Minecraft.getMinecraft().shutdown(); | |
} | |
this.theGraphics.setFont(this.theFont); | |
this.theGraphics.setColor(new Color(255, 255, 255, 0)); | |
this.theGraphics.fillRect(0, 0, 256, 256); | |
this.theGraphics.setColor(Color.white); | |
this.theMetrics = this.theGraphics.getFontMetrics(); | |
float x = 5.0F; | |
float y = 5.0F; | |
for (int i = this.startChar; i < this.endChar; i++) { | |
this.theGraphics.drawString(Character.toString((char) i), x, y + this.theMetrics.getAscent()); | |
this.xPos[i - this.startChar] = x; | |
this.yPos[i - this.startChar] = y - this.theMetrics.getMaxDescent(); | |
x += this.theMetrics.stringWidth(Character.toString((char) i)) + 2.0F; | |
if (x >= 250 - this.theMetrics.getMaxAdvance()) { | |
x = 5.0F; | |
y += this.theMetrics.getMaxAscent() + this.theMetrics.getMaxDescent() + this.fontSize / 2.0F; | |
} | |
} | |
DynamicTexture dynamicTexture; | |
this.resourceLocation = Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("font" + font.toString() + size, dynamicTexture = new DynamicTexture(this.bufferedImage)); | |
} | |
private void drawChar(char character, float x, float y) { | |
final Rectangle2D bounds = this.theMetrics.getStringBounds(Character.toString(character), this.theGraphics); | |
drawTexturedModalRect(x, y, this.xPos[character - this.startChar], this.yPos[character - this.startChar], (float) bounds.getWidth(), (float) bounds.getHeight() + this.theMetrics.getMaxDescent() + 1.0F); | |
} | |
private void drawer(String text, float x, float y, int color) { | |
x *= 2.0F; | |
y *= 2.0F; | |
GlStateManager.func_179098_w(); | |
Minecraft.getMinecraft().getTextureManager().bindTexture(this.resourceLocation); | |
final float alpha = (color >> 24 & 0xFF) / 255.0F; | |
final float red = (color >> 16 & 0xFF) / 255.0F; | |
final float green = (color >> 8 & 0xFF) / 255.0F; | |
final float blue = (color & 0xFF) / 255.0F; | |
GlStateManager.color(red, green, blue, alpha); | |
final float startX = x; | |
for (int i = 0; i < text.length(); i++) | |
if (text.charAt(i) == '\247' && i + 1 < text.length()) { | |
final char oneMore = Character.toLowerCase(text.charAt(i + 1)); | |
if (oneMore == 'n') { | |
y += this.theMetrics.getAscent() + 2; | |
x = startX; | |
} | |
final int colorCode = Minecraft.getMinecraft().fontRendererObj.func_175064_b(oneMore); | |
if (colorCode != 16777215) | |
GlStateManager.color((colorCode >> 16) / 255.0F, (colorCode >> 8 & 0xFF) / 255.0F, (colorCode & 0xFF) / 255.0F, alpha); | |
else if (oneMore == 'r') | |
GlStateManager.color(red, green, blue, alpha); | |
else if (oneMore == 'g') | |
GlStateManager.color(0.3F, 0.7F, 1.0F, alpha); | |
i++; | |
} else { | |
char character = text.charAt(i); | |
try { | |
drawChar(character, x, y); | |
} catch (ArrayIndexOutOfBoundsException exception) { | |
character = '?'; | |
drawChar(character, x, y); | |
} | |
x += getStringWidth(Character.toString(character)) * 2.0F; | |
} | |
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); | |
} | |
public void drawString(String text, float x, float y, int color, int shadowColor) { | |
this.drawString(text, x, y, FontType.SHADOW_THICK, color, shadowColor); | |
} | |
public void drawString(String text, float x, float y, FontType fontType, int color) { | |
this.drawString(text, x, y, fontType, color, (color & 16579836) >> 2 | color & -16777216); | |
} | |
public void drawString(String text, float x, float y, FontType fontType, int color, int color2) { | |
text = stripUnsupported(text); | |
GlStateManager.pushMatrix(); | |
GlStateManager.enableBlend(); | |
GlStateManager.scale(0.5F, 0.5F, 0.5F); | |
final String colorless = stripControlCodes(text); | |
switch (fontType) { | |
case SHADOW_THICK: | |
drawer(colorless, x + 1.0F, y + 1.0F, color2); | |
break; | |
case SHADOW_THIN: | |
drawer(colorless, x + 0.5F, y + 0.5F, color2); | |
break; | |
case OUTLINE_THIN: | |
drawer(colorless, x + 0.5F, y, color2); | |
drawer(colorless, x - 0.5F, y, color2); | |
drawer(colorless, x, y + 0.5F, color2); | |
drawer(colorless, x, y - 0.5F, color2); | |
break; | |
case EMBOSS_BOTTOM: | |
drawer(colorless, x, y + 0.5F, color2); | |
break; | |
case EMBOSS_TOP: | |
drawer(colorless, x, y - 0.5F, color2); | |
break; | |
case NORMAL: | |
default: | |
break; | |
} | |
drawer(text, x, y, color); | |
GlStateManager.scale(2.0F, 2.0F, 2.0F); | |
GlStateManager.popMatrix(); | |
} | |
private void drawTexturedModalRect(float x, float y, float u, float v, float width, float height) { | |
final float scale = 0.0039063F; | |
final WorldRenderer worldRenderer = Tessellator.getInstance().getWorldRenderer(); | |
final Tessellator tessellator = Tessellator.getInstance(); | |
worldRenderer.startDrawingQuads(); | |
worldRenderer.addVertexWithUV(x + 0.0F, y + height, 0.0D, (u + 0.0F) * scale, (v + height) * scale); | |
worldRenderer.addVertexWithUV(x + width, y + height, 0.0D, (u + width) * scale, (v + height) * scale); | |
worldRenderer.addVertexWithUV(x + width, y + 0.0F, 0.0D, (u + width) * scale, (v + 0.0F) * scale); | |
worldRenderer.addVertexWithUV(x + 0.0F, y + 0.0F, 0.0D, (u + 0.0F) * scale, (v + 0.0F) * scale); | |
tessellator.draw(); | |
} | |
private Rectangle2D getBounds(String text) { | |
return this.theMetrics.getStringBounds(text, this.theGraphics); | |
} | |
public Font getFont() { | |
return this.theFont; | |
} | |
private String getFormatFromString(String par0Str) { | |
String var1 = ""; | |
int var2 = -1; | |
final int var3 = par0Str.length(); | |
while ((var2 = par0Str.indexOf('\247', var2 + 1)) != -1) { | |
if (var2 < var3 - 1) { | |
final char var4 = par0Str.charAt(var2 + 1); | |
if (isFormatColor(var4)) { | |
var1 = "\247" + var4; | |
} else if (isFormatSpecial(var4)) { | |
var1 = var1 + "\247" + var4; | |
} | |
} | |
} | |
return var1; | |
} | |
public Graphics2D getGraphics() { | |
return this.theGraphics; | |
} | |
public float getStringHeight(String text) { | |
return (float) getBounds(text).getHeight() / 2.0F; | |
} | |
public float getStringWidth(String text) { | |
text = StringUtils.stripControlCodes(text); | |
return (float) (getBounds(text).getWidth() + this.extraSpacing) / 2.0F; | |
} | |
private boolean isFormatColor(char par0) { | |
return par0 >= '0' && par0 <= '9' || par0 >= 'a' && par0 <= 'f' || par0 >= 'A' && par0 <= 'F'; | |
} | |
private boolean isFormatSpecial(char par0) { | |
return par0 >= 'k' && par0 <= 'o' || par0 >= 'K' && par0 <= 'O' || par0 == 'r' || par0 == 'R'; | |
} | |
public List listFormattedStringToWidth(String s, int width) { | |
return Arrays.asList(wrapFormattedStringToWidth(s, width).split("\n")); | |
} | |
private void setupGraphics2D() { | |
this.bufferedImage = new BufferedImage(256, 256, 2); | |
this.theGraphics = (Graphics2D) this.bufferedImage.getGraphics(); | |
this.theGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); | |
} | |
private int sizeStringToWidth(String par1Str, float par2) { | |
final int var3 = par1Str.length(); | |
float var4 = 0.0F; | |
int var5 = 0; | |
int var6 = -1; | |
for (boolean var7 = false; var5 < var3; var5++) { | |
final char var8 = par1Str.charAt(var5); | |
switch (var8) { | |
case '\n': | |
var5--; | |
break; | |
case '\247': | |
if (var5 < var3 - 1) { | |
var5++; | |
final char var9 = par1Str.charAt(var5); | |
if (var9 != 'l' && var9 != 'L') { | |
if (var9 == 'r' || var9 == 'R' || isFormatColor(var9)) { | |
var7 = false; | |
} | |
} else { | |
var7 = true; | |
} | |
} | |
break; | |
case ' ': | |
case '-': | |
case '_': | |
case ':': | |
var6 = var5; | |
default: | |
final String text = String.valueOf(var8); | |
var4 += getStringWidth(text); | |
if (var7) { | |
var4 += 1.0F; | |
} | |
break; | |
} | |
if (var8 == '\n') { | |
var5++; | |
var6 = var5; | |
} else { | |
if (var4 > par2) { | |
break; | |
} | |
} | |
} | |
return var5 != var3 && var6 != -1 && var6 < var5 ? var6 : var5; | |
} | |
public String stripControlCodes(String s) { | |
return this.patternControlCode.matcher(s).replaceAll(""); | |
} | |
public String stripUnsupported(String s) { | |
return this.patternUnsupported.matcher(s).replaceAll(""); | |
} | |
public String wrapFormattedStringToWidth(String s, float width) { | |
final int wrapWidth = sizeStringToWidth(s, width); | |
if (s.length() <= wrapWidth) | |
return s; | |
final String split = s.substring(0, wrapWidth); | |
final String split2 = getFormatFromString(split) + s.substring(wrapWidth + (s.charAt(wrapWidth) == ' ' || s.charAt(wrapWidth) == '\n' ? 1 : 0)); | |
try { | |
return split + "\n" + wrapFormattedStringToWidth(split2, width); | |
} catch (final Exception e) { | |
System.out.println("Cannot wrap string to width."); | |
} | |
return ""; | |
} | |
} |
package de.Client.Render; | |
import net.minecraft.client.Minecraft; | |
import org.lwjgl.BufferUtils; | |
import org.lwjgl.opengl.ARBShaderObjects; | |
import org.lwjgl.opengl.EXTFramebufferObject; | |
import org.lwjgl.opengl.GL11; | |
import org.lwjgl.opengl.GL13; | |
import java.nio.ByteBuffer; | |
import java.nio.FloatBuffer; | |
import java.nio.IntBuffer; | |
//BY ARAB | |
public class Outline | |
{ | |
private float outlineSize; | |
private int sampleRadius; | |
private final int targetTextureID; | |
private final int textureWidth; | |
private final int textureHeight; | |
private final int renderWidth; | |
private final int renderHeight; | |
private int fboTextureID; | |
private int fboID; | |
private int renderBufferID; | |
private static int vertexShaderID = -1; | |
private static int fragmentShaderID = -1; | |
private static int shaderProgramID = -1; | |
private static int diffuseSamperUniformID = -1; | |
private static int texelSizeUniformID = -1; | |
private static int sampleRadiusUniformID = -1; | |
public Outline(int targetTextureID, int textureWidth, int textureHeight, int dispWidth, int dispHeight, float outlineSize, int sampleRadius) | |
{ | |
this.fboTextureID = -1; | |
this.fboID = -1; | |
this.renderBufferID = -1; | |
shaderProgramID = -1; | |
fragmentShaderID = -1; | |
vertexShaderID = -1; | |
diffuseSamperUniformID = -1; | |
texelSizeUniformID = -1; | |
sampleRadiusUniformID = -1; | |
this.fboTextureID = -1; | |
this.fboID = -1; | |
this.renderBufferID = -1; | |
this.targetTextureID = targetTextureID; | |
this.textureWidth = textureWidth; | |
this.textureHeight = textureHeight; | |
this.renderWidth = dispWidth; | |
this.renderHeight = dispHeight; | |
this.outlineSize = outlineSize; | |
this.sampleRadius = sampleRadius; | |
generateFBO(); | |
initShaders(); | |
} | |
public Outline setOutlineSize(float size) | |
{ | |
this.outlineSize = size; | |
return this; | |
} | |
public Outline setSampleRadius(int radius) | |
{ | |
this.sampleRadius = radius; | |
return this; | |
} | |
public int getTextureID() | |
{ | |
return this.fboTextureID; | |
} | |
public void delete() | |
{ | |
if (this.renderBufferID > -1) { | |
EXTFramebufferObject.glDeleteRenderbuffersEXT(this.renderBufferID); | |
} | |
if (this.fboID > -1) { | |
EXTFramebufferObject.glDeleteFramebuffersEXT(this.fboID); | |
} | |
if (this.fboTextureID > -1) { | |
GL11.glDeleteTextures(this.fboTextureID); | |
} | |
} | |
public Outline update() | |
{ | |
if ((this.fboID == -1) || (this.renderBufferID == -1) || (shaderProgramID == -1)) { | |
throw new RuntimeException("Invalid IDs!"); | |
} | |
EXTFramebufferObject.glBindFramebufferEXT(36160, this.fboID); | |
int var9 = Math.max(Minecraft.func_175610_ah(), 30); | |
GL11.glClear(16640); | |
Minecraft.getMinecraft().entityRenderer | |
.updateFogColor((float)(Minecraft.getMinecraft().entityRenderer.renderEndNanoTime + 1000000000 / var9)); | |
ARBShaderObjects.glUseProgramObjectARB(shaderProgramID); | |
ARBShaderObjects.glUniform1iARB(diffuseSamperUniformID, 0); | |
GL13.glActiveTexture(33984); | |
GL11.glEnable(3553); | |
GL11.glBindTexture(3553, this.targetTextureID); | |
FloatBuffer texelSizeBuffer = BufferUtils.createFloatBuffer(2); | |
texelSizeBuffer.position(0); | |
texelSizeBuffer.put(1.0F / this.textureWidth * this.outlineSize); | |
texelSizeBuffer.put(1.0F / this.textureHeight * this.outlineSize); | |
texelSizeBuffer.flip(); | |
ARBShaderObjects.glUniform2ARB(texelSizeUniformID, texelSizeBuffer); | |
IntBuffer sampleRadiusBuffer = BufferUtils.createIntBuffer(1); | |
sampleRadiusBuffer.position(0); | |
sampleRadiusBuffer.put(this.sampleRadius); | |
sampleRadiusBuffer.flip(); | |
ARBShaderObjects.glUniform1ARB(sampleRadiusUniformID, sampleRadiusBuffer); | |
GL11.glDisable(3553); | |
GL11.glBegin(4); | |
GL11.glTexCoord2d(0.0D, 1.0D); | |
GL11.glVertex2d(0.0D, 0.0D); | |
GL11.glTexCoord2d(0.0D, 0.0D); | |
GL11.glVertex2d(0.0D, this.renderHeight); | |
GL11.glTexCoord2d(1.0D, 0.0D); | |
GL11.glVertex2d(this.renderWidth, this.renderHeight); | |
GL11.glTexCoord2d(1.0D, 0.0D); | |
GL11.glVertex2d(this.renderWidth, this.renderHeight); | |
GL11.glTexCoord2d(1.0D, 1.0D); | |
GL11.glVertex2d(this.renderWidth, 0.0D); | |
GL11.glTexCoord2d(0.0D, 1.0D); | |
GL11.glVertex2d(0.0D, 0.0D); | |
GL11.glEnd(); | |
ARBShaderObjects.glUseProgramObjectARB(0); | |
return this; | |
} | |
private void generateFBO() | |
{ | |
this.fboID = EXTFramebufferObject.glGenFramebuffersEXT(); | |
this.fboTextureID = GL11.glGenTextures(); | |
this.renderBufferID = EXTFramebufferObject.glGenRenderbuffersEXT(); | |
GL11.glBindTexture(3553, this.fboTextureID); | |
GL11.glTexParameterf(3553, 10241, 9729.0F); | |
GL11.glTexParameterf(3553, 10240, 9729.0F); | |
GL11.glTexParameterf(3553, 10242, 10496.0F); | |
GL11.glTexParameterf(3553, 10243, 10496.0F); | |
GL11.glBindTexture(3553, 0); | |
GL11.glBindTexture(3553, this.fboTextureID); | |
GL11.glTexImage2D(3553, 0, 32856, this.textureWidth, this.textureHeight, 0, 6408, 5121, (ByteBuffer)null); | |
EXTFramebufferObject.glBindFramebufferEXT(36160, this.fboID); | |
EXTFramebufferObject.glFramebufferTexture2DEXT(36160, 36064, 3553, this.fboTextureID, 0); | |
EXTFramebufferObject.glBindRenderbufferEXT(36161, this.renderBufferID); | |
EXTFramebufferObject.glRenderbufferStorageEXT(36161, 34041, this.textureWidth, this.textureHeight); | |
EXTFramebufferObject.glFramebufferRenderbufferEXT(36160, 36128, 36161, this.renderBufferID); | |
checkFBO(); | |
} | |
public static String getLogInfo(int obj) | |
{ | |
return ARBShaderObjects.glGetInfoLogARB(obj, ARBShaderObjects.glGetObjectParameteriARB(obj, 35716)); | |
} | |
public static int createShader(String shaderCode, int shaderType) | |
throws Exception | |
{ | |
int shader = 0; | |
try | |
{ | |
shader = ARBShaderObjects.glCreateShaderObjectARB(shaderType); | |
if (shader == 0) { | |
return 0; | |
} | |
ARBShaderObjects.glShaderSourceARB(shader, shaderCode); | |
ARBShaderObjects.glCompileShaderARB(shader); | |
if (ARBShaderObjects.glGetObjectParameteriARB(shader, 35713) == 0) { | |
throw new RuntimeException("Error creating shader: " + getLogInfo(shader)); | |
} | |
return shader; | |
} | |
catch (Exception exc) | |
{ | |
ARBShaderObjects.glDeleteObjectARB(shader); | |
throw exc; | |
} | |
} | |
private void checkFBO() {} | |
public void initShaders() | |
{ | |
if (shaderProgramID == -1) | |
{ | |
shaderProgramID = ARBShaderObjects.glCreateProgramObjectARB(); | |
try | |
{ | |
if (vertexShaderID == -1) | |
{ | |
String vertexShaderCode = "#version 120 \nvoid main() { \ngl_TexCoord[0] = gl_MultiTexCoord0; \ngl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; \n}"; | |
vertexShaderID = this.createShader("#version 120 \nvoid main() { \ngl_TexCoord[0] = gl_MultiTexCoord0; \ngl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; \n}", 35633); | |
} | |
if (fragmentShaderID == -1) | |
{ | |
String fragmentShaderCode = "#version 120 \nuniform sampler2D DiffuseSamper; \nuniform vec2 TexelSize; \nuniform int SampleRadius; \nvoid main(){ \nvec4 centerCol = texture2D(DiffuseSamper, gl_TexCoord[0].st); \nif(centerCol.a != 0.0F) { \ngl_FragColor = vec4(0, 0, 0, 0); \nreturn; \n} \nvec4 colAvg = vec4(0, 0, 0, 0); \nfor(int xo = -SampleRadius; xo <= SampleRadius; xo++) { \nfor(int yo = -SampleRadius; yo <= SampleRadius; yo++) { \nvec4 currCol = texture2D(DiffuseSamper, gl_TexCoord[0].st + vec2(xo * TexelSize.x, yo * TexelSize.y)); \nif(currCol.r != 0.0F || currCol.g != 0.0F || currCol.b != 0.0F || currCol.a != 0.0F) { \ncolAvg += vec4(1, 1, 1, max(0, (SampleRadius*1.0F - sqrt(xo * xo * 0.75f + yo * yo * 0.9f)) / SampleRadius * 1.00F)); \n} \n} \n} \ncolAvg.a /= SampleRadius*SampleRadius * 1.0F / 2.0F; \ngl_FragColor = colAvg; \n}"; | |
fragmentShaderCode = "#version 120 \nuniform sampler2D DiffuseSamper; \nuniform vec2 TexelSize; \nuniform int SampleRadius; \nvoid main(){ \nvec4 centerCol = texture2D(DiffuseSamper, gl_TexCoord[0].st); \nif(centerCol.a != 0.0F) { \ngl_FragColor = vec4(0, 0, 0, 0); \nreturn; \n} \nfloat closest = SampleRadius * 1.0F + 1.0F; \nfor(int xo = -SampleRadius; xo <= SampleRadius; xo++) { \nfor(int yo = -SampleRadius; yo <= SampleRadius; yo++) { \nvec4 currCol = texture2D(DiffuseSamper, gl_TexCoord[0].st + vec2(xo * TexelSize.x, yo * TexelSize.y)); \nif(currCol.r != 0.0F || currCol.g != 0.0F || currCol.b != 0.0F || currCol.a != 0.0F) { \nfloat currentDist = sqrt(xo*xo*1.0f + yo*yo*1.0f); \nif(currentDist < closest) { closest = currentDist; } \n} \n} \n} \ngl_FragColor = vec4(1, 1, 1, max(0, ((SampleRadius*1.0F) - (closest - 1)) / (SampleRadius*1.0F))); \n}"; | |
fragmentShaderID = this.createShader(fragmentShaderCode, 35632); | |
} | |
} | |
catch (Exception ex) | |
{ | |
shaderProgramID = -1; | |
vertexShaderID = -1; | |
fragmentShaderID = -1; | |
ex.printStackTrace(); | |
} | |
if (shaderProgramID != -1) | |
{ | |
ARBShaderObjects.glAttachObjectARB(shaderProgramID, vertexShaderID); | |
ARBShaderObjects.glAttachObjectARB(shaderProgramID, fragmentShaderID); | |
ARBShaderObjects.glLinkProgramARB(shaderProgramID); | |
if (ARBShaderObjects.glGetObjectParameteriARB(shaderProgramID, 35714) == 0) | |
{ | |
System.err.println(this.getLogInfo(shaderProgramID)); | |
return; | |
} | |
ARBShaderObjects.glValidateProgramARB(shaderProgramID); | |
if (ARBShaderObjects.glGetObjectParameteriARB(shaderProgramID, 35715) == 0) | |
{ | |
System.err.println(this.getLogInfo(shaderProgramID)); | |
return; | |
} | |
ARBShaderObjects.glUseProgramObjectARB(0); | |
diffuseSamperUniformID = ARBShaderObjects.glGetUniformLocationARB(shaderProgramID, "DiffuseSamper"); | |
texelSizeUniformID = ARBShaderObjects.glGetUniformLocationARB(shaderProgramID, "TexelSize"); | |
sampleRadiusUniformID = ARBShaderObjects.glGetUniformLocationARB(shaderProgramID, "SampleRadius"); | |
} | |
} | |
} | |
} |
package de.Client.Render.StaticClickGui; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Render.GuiApi; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.ScaledResolution; | |
import java.awt.*; | |
import java.util.ArrayList; | |
/** | |
* Created by Daniel on 09.09.2017. | |
*/ | |
public class MainPanel extends GuiScreen{ | |
public ArrayList<ElementButton> buttons = new ArrayList(); | |
public void initGui() | |
{ | |
buttons.clear(); | |
ScaledResolution sr = new ScaledResolution(); | |
buttons.add(new ElementButton(sr.getScaledWidth() / 2 - 160, sr.getScaledHeight() / 2 - 50, Category.COMBAT, 1)); | |
buttons.add(new ElementButton(sr.getScaledWidth() / 2, sr.getScaledHeight() / 2 - 50, Category.MOVEMENT, 2)); | |
buttons.add(new ElementButton(sr.getScaledWidth() / 2 + 160, sr.getScaledHeight() / 2 - 50, Category.PLAYER, 3)); | |
buttons.add(new ElementButton(sr.getScaledWidth() / 2-80 , sr.getScaledHeight() / 2 + 110, Category.WORLD, 4)); | |
buttons.add(new ElementButton(sr.getScaledWidth() / 2+80, sr.getScaledHeight() / 2 + 110, Category.RENDER, 5)); | |
} | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) { | |
ScaledResolution sr = new ScaledResolution(); | |
// GuiApi.drawRect(sr.getScaledWidth() / 2 - 251, sr.getScaledHeight() / 2 - 141, sr.getScaledWidth() / 2 + 251, sr.getScaledHeight() / 2 + 201, Color.black.darker().getRGB()); | |
GuiApi.drawBorderRectNoCorners(sr.getScaledWidth() / 2 - 250, sr.getScaledHeight() / 2 - 140, sr.getScaledWidth() / 2 + 250, sr.getScaledHeight() / 2 + 200,Main.getMain.getClientColor().getRGB(), Color.darkGray.getRGB()); | |
//GuiApi.drawRect(sr.getScaledWidth() / 2 - 252, sr.getScaledHeight() / 2 - 155, sr.getScaledWidth() / 2 + 252, sr.getScaledHeight() / 2- 140, Main.getMain.getClientColor().getRGB()); | |
for (ElementButton e : buttons) { | |
e.drawButton(Minecraft.getMinecraft(), mouseX, mouseY, e.cat, partialTicks); | |
e.Update(mouseX, mouseY); | |
} | |
} | |
} |
package de.Client.Render.TabGuis; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.ColorUtil; | |
import de.Client.Utils.TabGui; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
public class TabGuiC extends TabGui{ | |
public TabGuiC(){ | |
for(Category c : Category.values()){ | |
animationForCategory.put(c, 0); | |
} | |
} | |
public static void startScissors(int x, int y, int width, int height) { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_SCISSOR_TEST); | |
ScaledResolution sr1 = new ScaledResolution(); | |
int factor = sr1.getScaleFactor(); | |
GL11.glScissor(x * factor, (sr1.getScaledHeight() - height) * factor, Math.abs((width - x) * factor), Math.abs((height - y) * factor)); | |
} | |
public static void stopScissor() { | |
GL11.glDisable(GL11.GL_SCISSOR_TEST); | |
GL11.glPopMatrix(); | |
} | |
public boolean isMainMenu = true; | |
public int mainMenu; | |
public int modMenu; | |
public Category currentcategory; | |
public Module currentmodule; | |
public int longesmodname = 0; | |
public ArrayList<Module> modsforcategory = new ArrayList<Module>(); | |
public float renderY; | |
public float animationY; | |
public float animationmodule; | |
public float rendermodule; | |
public float animation; | |
public HashMap animationForCategory = new HashMap<Category,Integer>(); | |
public void upKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu > 0) { | |
--this.mainMenu; | |
} else { | |
this.mainMenu = categories.length - 1 - 2; | |
} | |
} else { | |
this.modMenu--; | |
} | |
} | |
public void downKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu < categories.length - 1 - 2) { | |
++this.mainMenu; | |
} else { | |
this.mainMenu = 0; | |
} | |
} else { | |
this.modMenu++; | |
} | |
} | |
public void rightKey() { | |
if (this.isMainMenu) { | |
animation = 10f; | |
this.isMainMenu = false; | |
this.rendermodule= this.mainMenu *15+10; | |
} else { | |
if (this.currentcategory != null) { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
} | |
public void leftKey() { | |
this.isMainMenu = true; | |
this.modMenu = 0; | |
} | |
public void returnKey() { | |
if (this.isMainMenu) { | |
this.isMainMenu = false; | |
} else { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
public float getDiffrent(float f1, float f2){ | |
return (float) Math.sqrt((f1-f2)*(f1-f2)); | |
} | |
public void upDateAnimations(){ | |
if(Minecraft.getMinecraft().thePlayer == null){ | |
return; | |
} | |
for(Category c : Category.values()){ | |
int animation = (Integer) this.animationForCategory.get(c); | |
if(this.currentcategory == c){ | |
if(animation < 40){ | |
animation +=getDiffrent(animation,80)/20; | |
} | |
}else{ | |
if(animation > 0){ | |
animation -=2; | |
} | |
if(animation < 0){ | |
animation = 0; | |
} | |
} | |
animationForCategory.put(c, animation); | |
} | |
if(this.renderY > this.animationY){ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY += plusgleich/6f; | |
} | |
if(this.rendermodule > this.animationmodule){ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule += plusgleich/6f; | |
} | |
} | |
public void drawTabGui() { | |
ScaledResolution sr = new ScaledResolution(); | |
if (this.isMainMenu) { | |
longesmodname = 0; | |
} | |
Category categories[] = Category.values(); | |
int y = 0; | |
GuiApi.drawBorderRectNoCorners(1.5, 9, 80, (categories.length - 3) * 12 + 22.5, ColorUtil.transparency(Color.BLACK,0.9), | |
ColorUtil.transparency(Color.BLACK,0.7)); | |
// +((Integer) this.animationForCategory.get(categories[i])) | |
// Gui.drawRect(2, 10 + this.renderY, 80, 25 + this.renderY, Main.getMain.getClientColor().getRGB() ); | |
//GuiApi.drawGradientRect(2, 10 + this.renderY-4, 80, 25 + this.renderY, 0, Integer.MIN_VALUE); | |
for (int i = 0; i < categories.length - 2; ++i) { | |
if (this.mainMenu == i) { | |
this.animationY = y; | |
currentcategory =categories[i]; | |
} | |
String s = String.valueOf(String.valueOf(categories[i].toString().substring(0, 1))) | |
+ categories[i].toString().substring(1, categories[i].toString().length()).toLowerCase(); | |
String replace = s.replace(s.substring(1), ""); | |
startScissors(2,(int) (10 +y + Main.getMain.waterMark.getHeight()-7), 80, (int) (23 + y+ Main.getMain.waterMark.getHeight()-7)); | |
GuiApi.drawBorderedCircle(41,((10 +y ) + 23 + y) / 2,animationForCategory.get(categories[i]).hashCode(), Main.getMain.getClientColor().getRGB(),Main.getMain.getClientColor().getRGB()); | |
// Gui.drawRect(2, 10 + this.renderY, 80, 23 + this.renderY, Main.getMain.getClientColor().getRGB() ); | |
stopScissor(); | |
Main.getMain.verdana.drawCenteredStringWithShadow(s, 40, y + 13f-5.5f, | |
this.mainMenu == i ? 0xffffffff : 0xff95a5a6); | |
y += 12; | |
} | |
float newy = y; | |
int x = 81; | |
int size = 0; | |
if (!this.modsforcategory.isEmpty()) { | |
this.modsforcategory.clear(); | |
} | |
if (!this.isMainMenu) { | |
for (int i = 0; i < Main.getMain.moduleManager.getModules().size(); ++i) { | |
Module mod = Main.getMain.moduleManager.getModules().get(i); | |
if (mod != null) { | |
if (mod.category == this.currentcategory) { | |
this.modsforcategory.add(mod); | |
} else { | |
} | |
} | |
} | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(mod.name) > longesmodname) { | |
longesmodname = (int) ((int) Main.getMain.verdana.getWidth(mod.name)*1.1); | |
} | |
} | |
//this.startScissors((int) ((int)x + 0.5), (int) ((int)newy), (int) ((int)x + 1 + longesmodname + 10), (int) ((int)newy+this.animation-1)); | |
if(this.animation+1 < 22 + this.modsforcategory.size() * 15 - 12+ newy+15){ | |
this.animation *=1.2; | |
} | |
GuiApi.drawFineBorderedRect(x + 0.5, 10 + newy - 0.5, x + 1 + longesmodname + 10, | |
(int) (22 + this.modsforcategory.size() * 15 - 12+ newy), Color.black.getRGB(), | |
ColorUtil.transparency( new Color(0x991D1D1D),0.5)); | |
// Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Main.getMain.verdana.getWidth(mod.name) > longesmodname) { | |
longesmodname = (int) Main.getMain.verdana.getWidth(mod.name); | |
} | |
if (!(i == this.modMenu)) { | |
Main.getMain.verdana.drawCenteredString(mod.name, x+this.longesmodname/2+5, | |
newy + 15-7, (mod.getState()) ? 0xffffffff : 0xff95a5a6); | |
} else { | |
this.animationmodule = 10 + newy; | |
// Gui.drawRect(x + 1, 10 + newy, 0.5f + x + longesmodname + 10, 25 + newy, Main.getMain.getClientColor().getRGB()); | |
// Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
Main.getMain.verdana.drawCenteredStringWithShadow(mod.name, x+this.longesmodname/2+5, | |
newy + 15-7, (mod.getState()) ? 0xffffffff : 0xff95a5a6); | |
} | |
newy += 15; | |
++size; | |
if (i == this.modMenu) { | |
currentmodule = mod; | |
} | |
} | |
if (this.modMenu < 0) { | |
this.modMenu = size - 1; | |
} | |
if (this.modMenu > size - 1) { | |
this.modMenu = 0; | |
} | |
// this.stopScissor(); | |
} | |
} | |
} |
package de.Client.Render.TabGuis; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.TabGui; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
public class TabGuiD extends TabGui{ | |
public TabGuiD(){ | |
for(Category c : Category.values()){ | |
animationForCategory.put(c, 0); | |
} | |
} | |
public static void startScissors(int x, int y, int width, int height) { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_SCISSOR_TEST); | |
ScaledResolution sr1 = new ScaledResolution(); | |
int factor = sr1.getScaleFactor(); | |
GL11.glScissor(x * factor, (sr1.getScaledHeight() - height) * factor, Math.abs((width - x) * factor), Math.abs((height - y) * factor)); | |
} | |
public static void stopScissor() { | |
GL11.glDisable(GL11.GL_SCISSOR_TEST); | |
GL11.glPopMatrix(); | |
} | |
public boolean isMainMenu = true; | |
public int mainMenu; | |
public int modMenu; | |
public Category currentcategory; | |
public Module currentmodule; | |
public float longesmodname = 0; | |
public ArrayList<Module> modsforcategory = new ArrayList<Module>(); | |
public float renderY; | |
public float animationY; | |
public float animationmodule; | |
public float rendermodule; | |
public float animation; | |
public HashMap animationForCategory = new HashMap<Category,Integer>(); | |
public void upKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu > 0) { | |
--this.mainMenu; | |
} else { | |
this.mainMenu = categories.length - 1 - 2; | |
} | |
} else { | |
this.modMenu--; | |
} | |
} | |
public void downKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu < categories.length - 1 - 2) { | |
++this.mainMenu; | |
} else { | |
this.mainMenu = 0; | |
} | |
} else { | |
this.modMenu++; | |
} | |
} | |
public void rightKey() { | |
if (this.isMainMenu) { | |
animation = 10f; | |
this.isMainMenu = false; | |
this.rendermodule= this.mainMenu *15+10; | |
} else { | |
if (this.currentcategory != null) { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
} | |
public void leftKey() { | |
this.isMainMenu = true; | |
this.modMenu = 0; | |
} | |
public void returnKey() { | |
if (this.isMainMenu) { | |
this.isMainMenu = false; | |
} else { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
public float getDiffrent(float f1, float f2){ | |
return (float) Math.sqrt((f1-f2)*(f1-f2)); | |
} | |
public void upDateAnimations(){ | |
if(Minecraft.getMinecraft().thePlayer == null){ | |
return; | |
} | |
for(Category c : Category.values()){ | |
int animation = (Integer) this.animationForCategory.get(c); | |
if(this.currentcategory == c){ | |
if(animation < 10){ | |
animation ++; | |
} | |
}else{ | |
if(animation > 0){ | |
animation --; | |
} | |
} | |
animationForCategory.put(c, animation); | |
} | |
if(this.renderY > this.animationY){ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY += plusgleich/6f; | |
} | |
if(this.rendermodule > this.animationmodule){ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule += plusgleich/6f; | |
} | |
} | |
public void drawTabGui() { | |
ScaledResolution sr = new ScaledResolution(); | |
if (this.isMainMenu) { | |
longesmodname = 0; | |
} | |
Category categories[] = Category.values(); | |
int y = 0; | |
GuiApi.drawBorderRectNoCorners(1.5, 9.5, 80, (categories.length - 3) * 15 + 25, Color.black.getRGB(), | |
0xff2b2b2b); | |
Gui.drawRect(2, 10 + this.renderY, 80, 25 + this.renderY, Main.getMain.getClientColor().getRGB() ); | |
GL11.glPushMatrix(); | |
GuiApi.drawGradientRect(2, 10 + this.renderY-4, 80, 25 + this.renderY,0, Integer.MIN_VALUE); | |
GL11.glPopMatrix(); | |
//GuiApi.drawGradientRect(2, 10 + this.renderY-4, 80, 25 + this.renderY, 0, Integer.MIN_VALUE); | |
for (int i = 0; i < categories.length - 2; ++i) { | |
if (this.mainMenu == i) { | |
this.animationY = y; | |
currentcategory =categories[i]; | |
} | |
String s = String.valueOf(String.valueOf(categories[i].toString().substring(0, 1))) | |
+ categories[i].toString().substring(1, categories[i].toString().length()).toLowerCase(); | |
String replace = s.replace(s.substring(1), ""); | |
Main.getMain.verdanas.drawStringWithShadow(s, 2+((Integer) this.animationForCategory.get(categories[i])), y + 13.5f-4, | |
this.mainMenu == i ? 0xffffffff : 0xff95a5a6); | |
y += 15; | |
} | |
float newy = this.renderY; | |
int x = 81; | |
int size = 0; | |
if (!this.modsforcategory.isEmpty()) { | |
this.modsforcategory.clear(); | |
} | |
if (!this.isMainMenu) { | |
for (int i = 0; i < Main.getMain.moduleManager.getModules().size(); ++i) { | |
Module mod = Main.getMain.moduleManager.getModules().get(i); | |
if (mod != null) { | |
if (mod.category == this.currentcategory) { | |
this.modsforcategory.add(mod); | |
} else { | |
} | |
} | |
} | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(mod.name) > longesmodname) { | |
longesmodname = (float) (Main.getMain.verdanas.getWidth(mod.name)*1.1); | |
} | |
} | |
//this.startScissors((int) ((int)x + 0.5), (int) ((int)newy), (int) ((int)x + 1 + longesmodname + 10), (int) ((int)newy+this.animation-1)); | |
if(this.animation+1 < 22 + this.modsforcategory.size() * 15 - 12+ newy+15){ | |
this.animation *=1.2; | |
} | |
GuiApi.drawFineBorderedRect(x + 0.5, 10 + newy - 0.5, x + 1 + longesmodname + 10-0.5, | |
(int) (22 + this.modsforcategory.size() * 15 - 12+ newy), Color.black.getRGB(), | |
0xff2b2b2b); | |
Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
GL11.glPushMatrix(); | |
GuiApi.drawGradientRect(x + 1, this.rendermodule-4, 0.5f + x + longesmodname + 10, this.rendermodule+15,0, Integer.MIN_VALUE); | |
GL11.glPopMatrix(); | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Main.getMain.verdanas.getWidth(mod.name) > longesmodname) { | |
longesmodname = (int) Main.getMain.verdanas.getWidth(mod.name); | |
} | |
if (!(i == this.modMenu)) { | |
Main.getMain.verdanas.drawCenteredStringWithShadow(mod.name, x+this.longesmodname/2+5, | |
newy + 15-6, (mod.getState()) ? 0xffffffff : 0xff95a5a6); | |
} else { | |
this.animationmodule = 10 + newy; | |
// Gui.drawRect(x + 1, 10 + newy, 0.5f + x + longesmodname + 10, 25 + newy, Main.getMain.getClientColor().getRGB()); | |
// Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
Main.getMain.verdanas.drawCenteredStringWithShadow(mod.name, x+this.longesmodname/2+5, | |
newy + 15-6, (mod.getState()) ? 0xffffffff : 0xff95a5a6); | |
} | |
newy += 15; | |
++size; | |
if (i == this.modMenu) { | |
currentmodule = mod; | |
} | |
} | |
if (this.modMenu < 0) { | |
this.modMenu = size - 1; | |
} | |
if (this.modMenu > size - 1) { | |
this.modMenu = 0; | |
} | |
// this.stopScissor(); | |
} | |
} | |
} |
package de.Client.Render.TabGuis; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Render.GuiApi; | |
import de.Client.Utils.TabGui; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
public class TabGuiS extends TabGui{ | |
public TabGuiS(){ | |
for(Category c : Category.values()){ | |
animationForCategory.put(c, 0); | |
} | |
} | |
public static void startScissors(int x, int y, int width, int height) { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_SCISSOR_TEST); | |
ScaledResolution sr1 = new ScaledResolution(); | |
int factor = sr1.getScaleFactor(); | |
GL11.glScissor(x * factor, (sr1.getScaledHeight() - height) * factor, Math.abs((width - x) * factor), Math.abs((height - y) * factor)); | |
} | |
public static void stopScissor() { | |
GL11.glDisable(GL11.GL_SCISSOR_TEST); | |
GL11.glPopMatrix(); | |
} | |
public boolean isMainMenu = true; | |
public int mainMenu; | |
public int modMenu; | |
public Category currentcategory; | |
public Module currentmodule; | |
public int longesmodname = 0; | |
public ArrayList<Module> modsforcategory = new ArrayList<Module>(); | |
public float renderY; | |
public float animationY; | |
public float animationmodule; | |
public float rendermodule; | |
public float animation; | |
public HashMap animationForCategory = new HashMap<Category,Integer>(); | |
public void upKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu > 0) { | |
--this.mainMenu; | |
} else { | |
this.mainMenu = categories.length - 1 - 2; | |
} | |
} else { | |
this.modMenu--; | |
} | |
} | |
public void downKey() { | |
Category categories[] = Category.values(); | |
if (this.isMainMenu) { | |
if (this.mainMenu < categories.length - 1 - 2) { | |
++this.mainMenu; | |
} else { | |
this.mainMenu = 0; | |
} | |
} else { | |
this.modMenu++; | |
} | |
} | |
public void rightKey() { | |
if (this.isMainMenu) { | |
animation = 10f; | |
this.isMainMenu = false; | |
this.rendermodule= this.mainMenu *15+10; | |
} else { | |
if (this.currentcategory != null) { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
} | |
public void leftKey() { | |
this.isMainMenu = true; | |
this.modMenu = 0; | |
} | |
public void returnKey() { | |
if (this.isMainMenu) { | |
this.isMainMenu = false; | |
} else { | |
this.currentmodule.toggleModule(); | |
} | |
} | |
public float getDiffrent(float f1, float f2){ | |
return (float) Math.sqrt((f1-f2)*(f1-f2)); | |
} | |
public void upDateAnimations(){ | |
if(Minecraft.getMinecraft().thePlayer == null){ | |
return; | |
} | |
for(Category c : Category.values()){ | |
int animation = (Integer) this.animationForCategory.get(c); | |
if(this.currentcategory == c){ | |
if(animation < 10){ | |
animation ++; | |
} | |
}else{ | |
if(animation > 0){ | |
animation --; | |
} | |
} | |
animationForCategory.put(c, animation); | |
} | |
if(this.renderY > this.animationY){ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationY,renderY); | |
renderY += plusgleich/6f; | |
} | |
if(this.rendermodule > this.animationmodule){ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule -= plusgleich/6; | |
}else{ | |
float plusgleich = getDiffrent(animationmodule,rendermodule); | |
rendermodule += plusgleich/6f; | |
} | |
} | |
public void drawShadeRect(double x,double y, double x2,double y2){ | |
Gui.drawRect(x, y-1, x2+1,y2, | |
new Color(0x6F6F6F).getRGB()); | |
Gui.drawRect(x-1, y, x2,y2+1, | |
new Color(0x323232).getRGB()); | |
Gui.drawRect(x, y, x2,y2, | |
new Color(0x505050).getRGB()); | |
} | |
public void drawTabGui() { | |
ScaledResolution sr = new ScaledResolution(); | |
if (this.isMainMenu) { | |
longesmodname = 0; | |
} | |
Category categories[] = Category.values(); | |
int y = 0; | |
Gui.drawRect(2, 9, 80, (categories.length - 3) * 15 + 24, | |
new Color(0x505050).getRGB()); | |
// Gui.drawRect(2, 10 + this.renderY, 80, 25 + this.renderY, Main.getMain.getClientColor().getRGB() ); | |
//GuiApi.drawGradientRect(2, 10 + this.renderY-4, 80, 25 + this.renderY, 0, Integer.MIN_VALUE); | |
for (int i = 0; i < categories.length - 2; ++i) { | |
if (this.mainMenu == i) { | |
this.animationY = y; | |
currentcategory =categories[i]; | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x3E3E3E).getRGB()); | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 4, y + 14+ 13.5f-4.5, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 79, y+1+ 13.5f-5.5, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(3, y + 14+ 13.5f-3.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(78, y+1+ 13.5f-4.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x212121).getRGB()); | |
}else{ | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x3E3E3E).getRGB()); | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 4, y + 14+ 13.5f-4.5, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(3, y+1+ 13.5f-4.5, 79, y+1+ 13.5f-5.5, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(3, y + 14+ 13.5f-3.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(78, y+1+ 13.5f-4.5, 79, y + 14+ 13.5f-4.5, | |
new Color(0x5E5E5E).getRGB()); | |
} | |
String s = String.valueOf(String.valueOf(categories[i].toString().substring(0, 1))) | |
+ categories[i].toString().substring(1, categories[i].toString().length()).toLowerCase(); | |
String replace = s.replace(s.substring(1), ""); | |
Main.getMain.verdanas.drawCenteredStringWithShadow(s, 39, y + 13.5f-5, | |
this.mainMenu == i ? 0xffffffff : 0xff95a5a6); | |
y += 15; | |
} | |
float newy = mainMenu*15; | |
int x = 81; | |
int size = 0; | |
if (!this.modsforcategory.isEmpty()) { | |
this.modsforcategory.clear(); | |
} | |
if (!this.isMainMenu) { | |
for (int i = 0; i < Main.getMain.moduleManager.getModules().size(); ++i) { | |
Module mod = Main.getMain.moduleManager.getModules().get(i); | |
if (mod != null) { | |
if (mod.category == this.currentcategory) { | |
this.modsforcategory.add(mod); | |
} else { | |
} | |
} | |
} | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(mod.name) > longesmodname) { | |
longesmodname = (int) ((int) Main.getMain.verdana.getWidth(mod.name)*1.1); | |
} | |
} | |
//this.startScissors((int) ((int)x + 0.5), (int) ((int)newy), (int) ((int)x + 1 + longesmodname + 10), (int) ((int)newy+this.animation-1)); | |
if(this.animation+1 < 22 + this.modsforcategory.size() * 15 - 12+ newy+15){ | |
this.animation *=1.2; | |
} | |
// GuiApi.drawFineBorderedRect(x + 0.5, 10 + newy - 0.5, x + 1 + longesmodname + 10, | |
// (int) (22 + this.modsforcategory.size() * 15 - 12+ newy), Color.black.getRGB(), | |
// 0xff2b2b2b); | |
GL11.glTranslated(2,0,0); | |
drawShadeRect(x + 0.5, 10 + newy - 0.5, x + 1 + longesmodname + 9.5, | |
(int) (22 + this.modsforcategory.size() * 15 - 12+ newy)); | |
// Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
for (int i = 0; i < this.modsforcategory.size(); ++i) { | |
Module mod = modsforcategory.get(i); | |
if (Main.getMain.verdana.getWidth(mod.name) > longesmodname) { | |
longesmodname = (int) Main.getMain.verdana.getWidth(mod.name); | |
} | |
double x1 = x+1; | |
double y1 = newy+9; | |
double x2 = x + this.longesmodname+10; | |
double y2 = newy + 10+14; | |
if (!(i == this.modMenu)) { | |
Gui.drawRect(x1, y1, x2, y2, | |
new Color(0x3E3E3E).getRGB()); | |
Gui.drawRect(x1, y2, x2, y2 - 1, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(x2, y1, x2 - 1, y2, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(x1, y1, x2, y1 + 1, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(x1+1, y1, x1 , y2, | |
new Color(0x212121).getRGB()); | |
} else { | |
Gui.drawRect(x1, y1, x2, y2, | |
new Color(0x3E3E3E).getRGB()); | |
Gui.drawRect(x1, y2, x2, y2 - 1, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(x2, y1, x2 - 1, y2, | |
new Color(0x212121).getRGB()); | |
Gui.drawRect(x1, y1, x2, y1 + 1, | |
new Color(0x5E5E5E).getRGB()); | |
Gui.drawRect(x1+1, y1, x1 , y2, | |
new Color(0x5E5E5E).getRGB()); | |
this.animationmodule = 10 + newy; | |
// Gui.drawRect(x + 1, 10 + newy, 0.5f + x + longesmodname + 10, 25 + newy, Main.getMain.getClientColor().getRGB()); | |
// Gui.drawRect(x + 1, this.rendermodule, 0.5f + x + longesmodname + 10, this.rendermodule+15, Main.getMain.getClientColor().getRGB()); | |
} | |
Main.getMain.verdanas.drawCenteredStringWithShadow(mod.name, x+this.longesmodname/2+5, | |
newy + 15-7, (mod.getState()) ? 0xffffffff : 0xff95a5a6); | |
newy += 15; | |
++size; | |
if (i == this.modMenu) { | |
currentmodule = mod; | |
} | |
} | |
GL11.glTranslated(-2,0,0); | |
if (this.modMenu < 0) { | |
this.modMenu = size - 1; | |
} | |
if (this.modMenu > size - 1) { | |
this.modMenu = 0; | |
} | |
// this.stopScissor(); | |
} | |
} | |
} |
package de.Client.Render; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.ChatLine; | |
import net.minecraft.client.gui.GuiNewChat; | |
import net.minecraft.client.gui.GuiUtilRenderComponents; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.potion.Potion; | |
import net.minecraft.util.ChatComponentText; | |
import net.minecraft.util.IChatComponent; | |
import net.minecraft.util.MathHelper; | |
import java.util.Iterator; | |
public class TTFChat extends GuiNewChat { | |
private int x, y, dragX, dragY; | |
private NahrFontRenderer font; | |
public TTFChat(Minecraft mcIn) { | |
super(mcIn); | |
} | |
@Override | |
public void resetScroll() { | |
super.resetScroll(); | |
boolean dragging = false; | |
} | |
@Override | |
public void drawChat(int p_146230_1_) { | |
if (font == null) { | |
font = new NahrFontRenderer("Verdana", 18); | |
} | |
if (this.mc.gameSettings.chatVisibility != EntityPlayer.EnumChatVisibility.HIDDEN) { | |
int var2 = this.getLineCount(); | |
boolean var3 = false; | |
int var4 = 0; | |
int var5 = this.field_146253_i.size(); | |
float var6 = this.mc.gameSettings.chatOpacity * 0.9F + 0.1F; | |
if (var5 > 0) { | |
if (this.getChatOpen()) { | |
var3 = true; | |
} | |
float var7 = this.getChatScale(); | |
GlStateManager.pushMatrix(); | |
float yOffset = 20.0F; | |
if (!mc.thePlayer.capabilities.isCreativeMode) { | |
yOffset = 6.0F; | |
if (mc.thePlayer.getTotalArmorValue() > 0) | |
yOffset -= 10; | |
if (mc.thePlayer.getActivePotionEffect(Potion.absorption) != null) | |
yOffset -= 10; | |
} | |
GlStateManager.translate(2.0F, yOffset, 0.0F); | |
GlStateManager.scale(var7, var7, 1.0F); | |
int var9; | |
int var11; | |
int var14; | |
for (var9 = 0; var9 + this.scrollPos < this.field_146253_i.size() && var9 < var2; ++var9) { | |
ChatLine var10 = (ChatLine) this.field_146253_i.get(var9 + this.scrollPos); | |
if (var10 != null) { | |
var11 = p_146230_1_ - var10.getUpdatedCounter(); | |
if (var11 < 200 || var3) { | |
++var4; | |
} | |
} | |
} | |
GlStateManager.translate(0, -8, 0); | |
int height = -1; | |
if (!getChatOpen()) { | |
if (var4 > 0) { | |
height = -var4 * 9; | |
} | |
} else if (getChatOpen()) { | |
height = -var2 * 9; | |
GuiApi.drawBorderedRect(0.0F + x, height - 8 + y, getChatWidth() + 3.0F + x, height + 4.5 + y, 0x60000000, 0x80000000); | |
font.drawString("Chat", 1 + x, height - 10 + y, NahrFontRenderer.FontType.NORMAL, 0xFFFFFFFF); | |
} | |
if (height != -1) { | |
GuiApi.drawBorderedRect(0.0F + x, height + 5 + y, getChatWidth() + 3.0F + x, 9.0F + y, 0x60000000, 0x80000000); | |
} | |
GlStateManager.translate(1, 8, 0); | |
for (var9 = 0; var9 + this.scrollPos < this.field_146253_i.size() && var9 < var2; ++var9) { | |
ChatLine var10 = (ChatLine) this.field_146253_i.get(var9 + this.scrollPos); | |
if (var10 != null) { | |
var11 = p_146230_1_ - var10.getUpdatedCounter(); | |
if (var11 < 200 || var3) { | |
double var12 = (double) var11 / 200.0D; | |
var12 = 1.0D - var12; | |
var12 *= 10.0D; | |
var12 = MathHelper.clamp_double(var12, 0.0D, 1.0D); | |
var12 *= var12; | |
var14 = (int) (255.0D * var12); | |
if (var3) { | |
var14 = 255; | |
} | |
var14 = (int) ((float) var14 * var6); | |
byte var15 = 0; | |
int var16 = -var9 * 9; | |
String var17 = var10.getChatComponent().getFormattedText().replace("�", ">"); | |
GlStateManager.enableBlend(); | |
font.drawString(var17, (float) var15 + x, (float) (var16 - 14) + y, NahrFontRenderer.FontType.SHADOW_THIN, 16777215 + (var14 << 24), (var14 << 24)); | |
GlStateManager.disableAlpha(); | |
GlStateManager.disableBlend(); | |
} | |
} | |
} | |
if (var3) { | |
var9 = this.mc.fontRendererObj.FONT_HEIGHT; | |
GlStateManager.translate(-3.0F, 0.0F, 0.0F); | |
int var18 = var5 * var9 + var5; | |
var11 = var4 * var9 + var4; | |
int var19 = this.scrollPos * var11 / var5; | |
int var13 = var11 * var11 / var18; | |
if (var18 != var11) { | |
var14 = var19 > 0 ? 170 : 96; | |
int var20 = this.isScrolled ? 13382451 : 3355562; | |
drawRect(0, -var19, 2, -var19 - var13, var20 + (var14 << 24)); | |
drawRect(2, -var19, 1, -var19 - var13, 13421772 + (var14 << 24)); | |
} | |
} | |
GlStateManager.popMatrix(); | |
} | |
} | |
} | |
@Override | |
public IChatComponent getChatComponent(int p_146236_1_, int p_146236_2_) { | |
if (!this.getChatOpen()) { | |
return null; | |
} else { | |
ScaledResolution var3 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); | |
int var4 = var3.getScaleFactor(); | |
float var5 = this.getChatScale(); | |
int var6 = p_146236_1_ / var4 - 3; | |
int var7 = p_146236_2_ / var4 - 27; | |
var6 = MathHelper.floor_float((float) var6 / var5) + x; | |
var7 = MathHelper.floor_float((float) var7 / var5) + y; | |
if (var6 >= 0 && var7 >= 0) { | |
int var8 = Math.min(this.getLineCount(), this.field_146253_i.size()); | |
if (var6 <= MathHelper.floor_float((float) this.getChatWidth() / this.getChatScale()) && var7 < this.mc.fontRendererObj.FONT_HEIGHT * var8 + var8) { | |
int yOffset = 0; | |
if (!mc.thePlayer.capabilities.isCreativeMode) { | |
yOffset = 2; | |
if (mc.thePlayer.getTotalArmorValue() > 0) | |
yOffset += 1; | |
if (mc.thePlayer.getActivePotionEffect(Potion.absorption) != null) | |
yOffset += 1; | |
} | |
int var9 = var7 / this.mc.fontRendererObj.FONT_HEIGHT + this.scrollPos - yOffset; | |
if (var9 >= 0 && var9 < this.field_146253_i.size()) { | |
ChatLine var10 = (ChatLine) this.field_146253_i.get(var9); | |
int var11 = 0; | |
Iterator var12 = var10.getChatComponent().iterator(); | |
while (var12.hasNext()) { | |
IChatComponent var13 = (IChatComponent) var12.next(); | |
if (var13 instanceof ChatComponentText) { | |
var11 += this.mc.fontRendererObj.getStringWidth(GuiUtilRenderComponents.func_178909_a(((ChatComponentText) var13).getChatComponentText_TextValue(), false)); | |
if (var11 > var6) { | |
return var13; | |
} | |
} | |
} | |
} | |
return null; | |
} else { | |
return null; | |
} | |
} else { | |
return null; | |
} | |
} | |
} | |
} |
package de.Client.Render; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.util.StringUtils; | |
import org.lwjgl.opengl.GL11; | |
import org.newdawn.slick.UnicodeFont; | |
import org.newdawn.slick.font.effects.ColorEffect; | |
import java.awt.*; | |
import java.util.Random; | |
public class TTFManager | |
{ | |
private Minecraft mc = Minecraft.getMinecraft(); | |
private final UnicodeFont unicodeFont; | |
private final int[] colorCodes = new int[32]; | |
public String fontName; | |
private float kerning; | |
public TTFManager(String fontName, int fontType, int size) | |
{ | |
this(fontName, fontType, size, 0.0F); | |
} | |
public TTFManager(String fontName, int fontType, int size, float kerning) | |
{ | |
this.fontName = fontName; | |
this.unicodeFont = new UnicodeFont(new Font(fontName, fontType, size)); | |
this.kerning = kerning; | |
this.unicodeFont.addAsciiGlyphs(); | |
this.unicodeFont.getEffects().add(new ColorEffect(java.awt.Color.WHITE)); | |
try | |
{ | |
this.unicodeFont.loadGlyphs(); | |
} | |
catch (Exception e) | |
{ | |
e.printStackTrace(); | |
} | |
for (int i = 0; i < 32; i++) | |
{ | |
int shadow = (i >> 3 & 0x1) * 85; | |
int red = (i >> 2 & 0x1) * 170 + shadow; | |
int green = (i >> 1 & 0x1) * 170 + shadow; | |
int blue = (i & 0x1) * 170 + shadow; | |
if (i == 6) { | |
red += 85; | |
} | |
if (i >= 16) | |
{ | |
red /= 4; | |
green /= 4; | |
blue /= 4; | |
} | |
this.colorCodes[i] = ((red & 0xFF) << 16 | (green & 0xFF) << 8 | blue & 0xFF); | |
} | |
} | |
public int drawGlitchString(String text, float x, float y, int color) | |
{ | |
x *= 2.0F; | |
y *= 2.0F; | |
float originalX = x; | |
GL11.glPushMatrix(); | |
GL11.glScaled(0.5D, 0.5D, 0.5D); | |
boolean blend = GL11.glIsEnabled(3042); | |
boolean lighting = GL11.glIsEnabled(2896); | |
boolean texture = GL11.glIsEnabled(3553); | |
if (!blend) { | |
GL11.glEnable(3042); | |
} | |
if (lighting) { | |
GL11.glDisable(2896); | |
} | |
if (texture) { | |
GL11.glDisable(3553); | |
} | |
int currentColor = color; | |
char[] characters = text.toCharArray(); | |
int index = 0; | |
char[] arrayOfChar1; | |
int j = (arrayOfChar1 = characters).length; | |
for (int i = 0; i < j; i++) | |
{ | |
int xo = 0; | |
int yo = 0; | |
if(new Random().nextInt(30) == 1){ | |
xo += new Random().nextInt(10)-5; | |
yo += new Random().nextInt(10)-5; | |
} | |
if(new Random().nextInt(2000) == 1){ | |
xo += new Random().nextInt(50)-25; | |
yo += new Random().nextInt(50)-25; | |
} | |
char c = arrayOfChar1[i]; | |
if (c == '\r') { | |
x = originalX; | |
} | |
if (c == '\n') { | |
y += getHeight(Character.toString(c)) * 2.0F; | |
} | |
if ((c != '§') && ((index == 0) || (index == characters.length - 1) || (characters[(index - 1)] != '§'))) | |
{ | |
if(new Random().nextInt(120) == 1){ | |
c = '?'; | |
} | |
if(new Random().nextInt(120) == 1){ | |
this.unicodeFont.drawString(x+xo+5, y+yo+5, Character.toString(c), new org.newdawn.slick.Color(new Color(0xFF2835).getRGB())); | |
this.unicodeFont.drawString(x+xo-5, y+yo-5, Character.toString(c), new org.newdawn.slick.Color(new Color(0x169476).getRGB())); | |
} | |
this.unicodeFont.drawString(x+xo, y+yo, Character.toString(c), new org.newdawn.slick.Color(currentColor)); | |
x += getWidth(Character.toString(c)) * 2.0F; | |
} | |
else if (c == ' ') | |
{ | |
x += this.unicodeFont.getSpaceWidth(); | |
} | |
else if ((c == '§') && (index != characters.length - 1)) | |
{ | |
int codeIndex = "0123456789abcdefg".indexOf(text.charAt(index + 1)); | |
if (codeIndex < 0) { | |
continue; | |
} | |
currentColor = this.colorCodes[codeIndex]; | |
} | |
index++; | |
} | |
GL11.glScaled(2.0D, 2.0D, 2.0D); | |
if (texture) { | |
GL11.glEnable(3553); | |
} | |
if (lighting) { | |
GL11.glEnable(2896); | |
} | |
if (!blend) { | |
GL11.glDisable(3042); | |
} | |
GL11.glPopMatrix(); | |
Minecraft.getMinecraft().fontRendererObj.drawString("", -88, -88, 0); | |
return (int)x; | |
} | |
public int drawString(String text, float x, float y, int color) | |
{ | |
x *= 2.0F; | |
y *= 2.0F; | |
float originalX = x; | |
GL11.glPushMatrix(); | |
GL11.glScaled(0.5D, 0.5D, 0.5D); | |
boolean blend = GL11.glIsEnabled(3042); | |
boolean lighting = GL11.glIsEnabled(2896); | |
boolean texture = GL11.glIsEnabled(3553); | |
if (!blend) { | |
GL11.glEnable(3042); | |
} | |
if (lighting) { | |
GL11.glDisable(2896); | |
} | |
if (texture) { | |
GL11.glDisable(3553); | |
} | |
int currentColor = color; | |
char[] characters = text.toCharArray(); | |
int index = 0; | |
char[] arrayOfChar1; | |
int j = (arrayOfChar1 = characters).length; | |
for (int i = 0; i < j; i++) | |
{ | |
char c = arrayOfChar1[i]; | |
if (c == '\r') { | |
x = originalX; | |
} | |
if (c == '\n') { | |
y += getHeight(Character.toString(c)) * 2.0F; | |
} | |
if ((c != '§') && ((index == 0) || (index == characters.length - 1) || (characters[(index - 1)] != '§'))) | |
{ | |
this.unicodeFont.drawString(x, y, Character.toString(c), new org.newdawn.slick.Color(currentColor)); | |
x += getWidth(Character.toString(c)) * 2.0F; | |
} | |
else if (c == ' ') | |
{ | |
x += this.unicodeFont.getSpaceWidth(); | |
} | |
else if ((c == '§') && (index != characters.length - 1)) | |
{ | |
int codeIndex = "0123456789abcdefg".indexOf(text.charAt(index + 1)); | |
if (codeIndex < 0) { | |
continue; | |
} | |
currentColor = this.colorCodes[codeIndex]; | |
} | |
index++; | |
} | |
GL11.glScaled(2.0D, 2.0D, 2.0D); | |
if (texture) { | |
GL11.glEnable(3553); | |
} | |
if (lighting) { | |
GL11.glEnable(2896); | |
} | |
if (!blend) { | |
GL11.glDisable(3042); | |
} | |
GL11.glPopMatrix(); | |
Minecraft.getMinecraft().fontRendererObj.drawString("", -88, -88, 0); | |
return (int)x; | |
} | |
public int drawStringWithShadow(String text, float x, float y, int color) | |
{ | |
drawString(StringUtils.stripControlCodes(text), x + 0.5F, y + 0.5F, 0); | |
return drawString(text, x, y, color); | |
} | |
public int drawfixedStringWithShadow(String text, float x, float y, int color) | |
{ | |
drawString(StringUtils.stripControlCodes(text), x + 0.5F, y + 0.5F, 0); | |
Minecraft.getMinecraft().fontRendererObj.drawString("f", -88, -878, 4); | |
return drawString(text, x, y, color); | |
} | |
public void drawCenteredString(String text, float x, float y, int color) | |
{ | |
drawString(text, x - (int)getWidth(text) / 2, y, color); | |
} | |
public void drawCenteredStringWithShadow(String text, float x, float y, int color) | |
{ | |
drawCenteredString(StringUtils.stripControlCodes(text), x + 0.5F, y + 0.5F, 0); | |
drawCenteredString(text, x, y, color); | |
} | |
public float getWidth(String s) | |
{ | |
float width = 0.0F; | |
String str = StringUtils.stripControlCodes(s); | |
char[] arrayOfChar; | |
int j = (arrayOfChar = str.toCharArray()).length; | |
for (int i = 0; i < j; i++) | |
{ | |
char c = arrayOfChar[i]; | |
width += this.unicodeFont.getWidth(Character.toString(c)) + this.kerning; | |
} | |
return width / 2.0F; | |
} | |
public float getCharWidth(char c) | |
{ | |
return this.unicodeFont.getWidth(String.valueOf(c)); | |
} | |
public float getHeight(String s) | |
{ | |
return this.unicodeFont.getHeight(s) / 2.0F; | |
} | |
public UnicodeFont getFont() | |
{ | |
return this.unicodeFont; | |
} | |
public String trimStringToWidth(String par1Str, int par2) | |
{ | |
StringBuilder var4 = new StringBuilder(); | |
float var5 = 0.0F; | |
int var6 = 0; | |
int var7 = 1; | |
boolean var8 = false; | |
boolean var9 = false; | |
for (int var10 = var6; (var10 >= 0) && (var10 < par1Str.length()) && (var5 < par2); var10 += var7) | |
{ | |
char var11 = par1Str.charAt(var10); | |
float var12 = getCharWidth(var11); | |
if (var8) | |
{ | |
var8 = false; | |
if ((var11 != 'l') && (var11 != 'L')) | |
{ | |
if ((var11 == 'r') || (var11 == 'R')) { | |
var9 = false; | |
} | |
} | |
else { | |
var9 = true; | |
} | |
} | |
else if (var12 < 0.0F) | |
{ | |
var8 = true; | |
} | |
else | |
{ | |
var5 += var12; | |
if (var9) { | |
var5 += 1.0F; | |
} | |
} | |
if (var5 > par2) { | |
break; | |
} | |
var4.append(var11); | |
} | |
return var4.toString(); | |
} | |
} |
package de.Client.Render.Watermarks; | |
import de.Client.Main.Main; | |
import de.Client.Utils.ColorUtil; | |
import de.Client.Utils.Watermark; | |
import net.minecraft.client.Minecraft; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class WatermarkC extends Watermark{ | |
@Override | |
public void drawWaterMark(double scaledX, double scaledY){ | |
GL11.glScaled(1.2,1.2,1.2); | |
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("§oNight 1.0",2,1, ColorUtil.transparency(new Color(0x848484),0.8)); | |
GL11.glScaled(1/1.2,1/1.2,1/1.2); | |
} | |
@Override | |
public double getHeight(){ | |
return 10; | |
} | |
} |
package de.Client.Render.Watermarks; | |
import de.Client.Main.Main; | |
import de.Client.Utils.Watermark; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class WatermarkD extends Watermark{ | |
@Override | |
public void drawWaterMark(double scaledX, double scaledY){ | |
Main.getMain.watermark.drawfixedStringWithShadow("nigHT", 4, 0, Main.getMain.getClientColor().getRGB()); | |
} | |
@Override | |
public double getHeight(){ | |
return 27; | |
} | |
} |
package de.Client.Render.Watermarks; | |
import de.Client.Main.Main; | |
import de.Client.Utils.Watermark; | |
import net.minecraft.client.Minecraft; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class WatermarkS extends Watermark{ | |
@Override | |
public void drawWaterMark(double scaledX, double scaledY){ | |
Minecraft mc = Minecraft.getMinecraft(); | |
GL11.glScaled(2,2,2); | |
mc.fontRendererObj.drawStringWithShadow("N",1,1,Main.getMain.getClientColor().getRGB()); | |
GL11.glScaled(0.5,0.5,0.5); | |
mc.fontRendererObj.drawStringWithShadow("v2",15,2,new Color(0x8B8B8B).getRGB()); | |
mc.fontRendererObj.drawStringWithShadow("ight",15,10,Main.getMain.getClientColor().getRGB()); | |
} | |
@Override | |
public double getHeight(){ | |
return 18; | |
} | |
} |
package de.Client.Render.Watermarks; | |
import de.Client.Main.Main; | |
import de.Client.Render.TTFManager; | |
import de.Client.Utils.ColorUtil; | |
import de.Client.Utils.Watermark; | |
import net.minecraft.client.Minecraft; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
/** | |
* Created by Daniel on 14.08.2017. | |
*/ | |
public class WatermarkSky extends Watermark { | |
TTFManager elFont = new TTFManager("el&font gohtic!", Font.PLAIN,37); | |
@Override | |
public void drawWaterMark(double scaledX, double scaledY){ | |
elFont.drawCenteredStringWithShadow("( )", (float) (scaledX/2),5,new Color(0x3B3C3F).getRGB()); | |
elFont.drawCenteredStringWithShadow(" niGHt", (float) (scaledX/2),5, Main.getMain.getClientColor().getRGB()); | |
} | |
@Override | |
public double getHeight(){ | |
return 0; | |
} | |
} |
package de.Client.Utils; | |
import com.mojang.authlib.Agent; | |
import com.mojang.authlib.exceptions.AuthenticationException; | |
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; | |
import com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication; | |
import de.Client.Main.Screens.AltManager; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiMainMenu; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.util.Session; | |
import java.io.IOException; | |
import java.net.Proxy; | |
public class AccountLoginThread extends Thread { | |
private final Minecraft mc = Minecraft.getMinecraft(); | |
private final String password; | |
private String status; | |
private final String username; | |
public String logUsername = ""; | |
public Alt alt = null; | |
public AccountLoginThread(String username, String password) { | |
super("Alt Login Thread"); | |
this.username = username; | |
this.password = password; | |
this.setStatus( "§7Waiting"); | |
} | |
public AccountLoginThread(String username, String password,Alt alt) { | |
super("Alt Login Thread"); | |
this.username = username; | |
this.password = password; | |
this.alt = alt; | |
this.setStatus( "§7Waiting"); | |
} | |
private final Session createSession(String username, String password) { | |
YggdrasilAuthenticationService service = new YggdrasilAuthenticationService(Proxy.NO_PROXY, ""); | |
YggdrasilUserAuthentication auth = (YggdrasilUserAuthentication) service | |
.createUserAuthentication(Agent.MINECRAFT); | |
auth.setUsername(username); | |
auth.setPassword(password); | |
try { | |
auth.logIn(); | |
return new Session(auth.getSelectedProfile().getName(), auth.getSelectedProfile().getId().toString(), | |
auth.getAuthenticatedToken(), "mojang"); | |
} catch (AuthenticationException ignored) { | |
} | |
return null; | |
} | |
public String getStatus() { | |
return this.status; | |
} | |
public void run() { | |
if (this.username.equals("")) { | |
this.setStatus( "§cUsername/E-Mail wurde nicht gefunden"); | |
return; | |
} | |
if (this.password.equals("")) { | |
this.mc.session = new Session(this.username, "", "", "mojang"); | |
this.setStatus( "§aEingeloggt in§8: §7" + this.username + " §§8 - §aOffline Modus"); | |
return; | |
} | |
this.setStatus( "§eLogging in..."); | |
Session auth = createSession(this.username, this.password); | |
if (auth == null) { | |
this.setStatus( "§cEinloggen Fehlgeschlagen"); | |
if(alt != null) { | |
alt.name = "§4NOT WORKING ANYMORE"; | |
} | |
} else { | |
this.setStatus( "§aEingeloggt in§8: §7" + auth.getUsername()); | |
this.logUsername = auth.getUsername(); | |
this.mc.session = auth; | |
if(alt != null){ | |
if(!alt.name.startsWith("§c")){ | |
if(alt.name != mc.session.getUsername()){ | |
this.setStatus( "§aEingeloggt in§8: §6" + auth.getUsername() +" | " + alt.name + "Changed his name to" + mc.session.getUsername()); | |
} | |
} | |
alt.name = mc.session.getUsername(); | |
} | |
} | |
} | |
public String getUsername() { | |
return this.logUsername; | |
} | |
public void setStatus(String status) { | |
this.status =status; | |
AltManager.time.reset(); | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Screens.AltManager; | |
import de.Client.Render.GuiApi; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.entity.AbstractClientPlayer; | |
import net.minecraft.client.gui.FontRenderer; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.ScaledResolution; | |
import org.lwjgl.input.Mouse; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
public class Alt { | |
private String email; | |
private String password; | |
public static int scrollpos; | |
public int id; | |
public boolean selected; | |
public Minecraft mc = Minecraft.getMinecraft(); | |
public FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; | |
public String name = "§cUnknown"; | |
public Alt(String email ,String password ,int id){ | |
this.email = email; | |
this.password = password; | |
this.id = id; | |
} | |
public Alt(String email ,String password ,String name,int id){ | |
this.email = email; | |
this.password = password; | |
this.id = id; | |
this.name = name; | |
} | |
public String getPassword(){ | |
return password; | |
} | |
public String getEmail(){ | |
return email; | |
} | |
public String getPasswordCencored(){ | |
return password.replaceAll(".", "*"); | |
} | |
public boolean isSelected(){ | |
return selected; | |
} | |
public void unSelectAll(){ | |
for(Alt alt : AltManager.AltListArray){ | |
if(alt != this){ | |
alt.selected = false; | |
} | |
} | |
} | |
public void onMouse(int mouseX, int mouseY){ | |
ScaledResolution sr = new ScaledResolution(mc,mc.displayWidth,mc.displayHeight); | |
if(mouse(mouseX,mouseY, sr.getScaledWidth()/2-180, scrollpos+ (id*42), sr.getScaledWidth()/2+180, 40+scrollpos + (id*42)) && Mouse.isButtonDown(0)){ | |
float y = 40+scrollpos + (id*42); | |
if(y < sr.getScaledHeight()-25){ | |
unSelectAll(); | |
this.selected =!this.selected ; | |
} | |
} | |
} | |
public static void drawAltFace(String name, int x, int y, int w, int h, boolean selected) { | |
try { | |
AbstractClientPlayer.getDownloadImageSkin(AbstractClientPlayer.getLocationSkin(name), name) | |
.loadTexture(Minecraft.getMinecraft().getResourceManager()); | |
Minecraft.getMinecraft().getTextureManager().bindTexture(AbstractClientPlayer.getLocationSkin(name)); | |
GL11.glEnable(3042); | |
if (selected) { | |
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); | |
} else { | |
GL11.glColor4f(2F, 2F, 2F, 1.0F); | |
} | |
float fw = 192.0F; | |
float fh = 192.0F; | |
float u = 24.0F; | |
float v = 24.0F; | |
Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, w, h, fw, fh); | |
fw = 192.0F; | |
fh = 192.0F; | |
u = 120.0F; | |
v = 24.0F; | |
Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, w, h, fw, fh); | |
GL11.glDisable(3042); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
public void drawAltEntry(int mouseX, int mouseY){ | |
if(scrollpos > 20){ | |
scrollpos =20; | |
} | |
if(scrollpos < -AltManager.AltListArray.size() * 42+ mc.displayHeight/2-70){ | |
scrollpos = -AltManager.AltListArray.size() * 42 + mc.displayHeight/2-70; | |
} | |
ScaledResolution sr = new ScaledResolution(mc,mc.displayWidth,mc.displayHeight); | |
if(40+scrollpos + (id*42) > sr.getScaledHeight()){ | |
return; | |
} | |
if(scrollpos + (id*42) + 40 < 0){ | |
return; | |
} | |
GuiApi.drawBorderedRect(sr.getScaledWidth()/2-180, scrollpos + (id * 42), sr.getScaledWidth()/2+180, 40+scrollpos + (id*42),ColorUtil.transparency(Color.black, 0.5),ColorUtil.transparency(Color.black, 0.3)); | |
Gui.drawCenteredString(fr, this.email, sr.getScaledWidth()/2, scrollpos + (id * 42) + 5, Color.gray.getRGB()); | |
Gui.drawCenteredString(fr, this.getPasswordCencored(), sr.getScaledWidth()/2, scrollpos + (id * 42) + 15, Color.gray.darker().getRGB()); | |
if(!name.startsWith("§4")) { | |
Gui.drawCenteredString(fr, "name : §e" + this.name, sr.getScaledWidth() / 2, scrollpos + (id * 42) + 30, Color.white.darker().getRGB()); | |
}else{ | |
Gui.drawCenteredString(fr, "Most likely doesnt work" , sr.getScaledWidth() / 2, scrollpos + (id * 42) + 30, Color.red.darker().getRGB()); | |
} | |
if(this.selected){ | |
GuiApi.drawBorderedRect(sr.getScaledWidth()/2-180, scrollpos + (id * 42), sr.getScaledWidth()/2+180, 40+scrollpos + (id*42),ColorUtil.transparency(Color.black, 0.5),ColorUtil.transparency(Color.white, 0.5)); | |
Gui.drawCenteredString(fr, "§f" + this.email, sr.getScaledWidth()/2, scrollpos + (id * 42) + 5, Color.white.getRGB()); | |
Gui.drawCenteredString(fr, this.getPasswordCencored(), sr.getScaledWidth()/2, scrollpos + (id * 42) + 15, Color.white.darker().getRGB()); | |
if(!name.startsWith("§4")) { | |
Gui.drawCenteredString(fr, "name : §e" + this.name, sr.getScaledWidth() / 2, scrollpos + (id * 42) + 30, Color.white.darker().getRGB()); | |
}else{ | |
Gui.drawCenteredString(fr, "Most likely doesnt work" , sr.getScaledWidth() / 2, scrollpos + (id * 42) + 30, Color.red.darker().getRGB()); | |
} | |
} | |
if(!name.startsWith("§")) { | |
double scale = 1.34; | |
GL11.glScaled(scale,scale,scale); | |
this.drawAltFace(name, (int) ((sr.getScaledWidth()/2-175)/scale), (int) ((scrollpos + (id * 42)+4.8)/scale),24,24,this.isSelected()); | |
GL11.glScaled(1/scale,1/scale,1); | |
} | |
} | |
public void login(){ | |
AltManager.thread = new AccountLoginThread(email, password,this); | |
AltManager.thread.start(); | |
} | |
private boolean mouse(int mouseX, int mouseY, int minX, int minY, int maxX, int maxY) { | |
return (mouseX >= minX && mouseX <= maxX) && (mouseY >= minY && mouseY <= maxY); | |
} | |
} |
package de.Client.Utils; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class ArrayList { | |
public ArrayList(){ | |
} | |
public void draw(double scaledX, double scaledY){ | |
} | |
} |
package de.Client.Utils; | |
import com.google.common.collect.Maps; | |
import org.apache.commons.lang3.Validate; | |
import java.util.Map; | |
import java.util.regex.Pattern; | |
public enum ChatColorUtils { | |
BLACK('0', 0), | |
DARK_BLUE('1', 1), | |
DARK_GREEN('2', 2), | |
DARK_AQUA('3', 3), | |
DARK_RED('4', 4), | |
DARK_PURPLE('5', 5), | |
GOLD('6', 6), | |
GRAY('7', 7), | |
DARK_GRAY('8', 8), | |
BLUE('9', 9), | |
GREEN('a', 10), | |
AQUA('b', 11), | |
RED('c', 12), | |
LIGHT_PURPLE('d', 13), | |
YELLOW('e', 14), | |
WHITE('f', 15), | |
MAGIC('k', 16, true), | |
BOLD('l', 17, true), | |
STRIKETHROUGH('m', 18, true), | |
UNDERLINE('n', 19, true), | |
ITALIC('o', 20, true), | |
RESET('r', 21); | |
public static final char COLOR_CHAR = '�'; | |
private static final Pattern STRIP_COLOR_PATTERN; | |
private final int intCode; | |
private final char code; | |
private final boolean isFormat; | |
private final String toString; | |
private static final Map<Integer, ChatColorUtils> BY_ID; | |
private static final Map<Character, ChatColorUtils> BY_CHAR; | |
ChatColorUtils(char code, int intCode) { | |
this(code, intCode, false); | |
} | |
ChatColorUtils(char code, int intCode, boolean isFormat) { | |
this.code = code; | |
this.intCode = intCode; | |
this.isFormat = isFormat; | |
this.toString = new String(new char[] { '§', code }); | |
} | |
public char getChar() { | |
return this.code; | |
} | |
public String toString() { | |
return this.toString; | |
} | |
public boolean isFormat() { | |
return this.isFormat; | |
} | |
public boolean isColor() { | |
return (!this.isFormat) && (this != RESET); | |
} | |
public static ChatColorUtils getByChar(char code) { | |
return (ChatColorUtils) BY_CHAR.get(Character.valueOf(code)); | |
} | |
public static ChatColorUtils getByChar(String code) { | |
Validate.notNull(code, "Code cannot be null", new Object[0]); | |
Validate.isTrue(code.length() > 0, "Code must have at least one char", new Object[0]); | |
return (ChatColorUtils) BY_CHAR.get(Character.valueOf(code.charAt(0))); | |
} | |
public static String stripColor(String input) { | |
if (input == null) { | |
return null; | |
} | |
return STRIP_COLOR_PATTERN.matcher(input).replaceAll(""); | |
} | |
public static String translateAlternateColorCodes(char altColorChar, String textToTranslate) { | |
char[] b = textToTranslate.toCharArray(); | |
for (int i = 0; i < b.length - 1; i++) { | |
if ((b[i] == altColorChar) && ("0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[(i + 1)]) > -1)) { | |
b[i] = '?'; | |
b[(i + 1)] = Character.toLowerCase(b[(i + 1)]); | |
} | |
} | |
return new String(b); | |
} | |
public static String getLastColors(String input) { | |
String result = ""; | |
int length = input.length(); | |
for (int index = length - 1; index > -1; index--) { | |
char section = input.charAt(index); | |
if ((section == '§') && (index < length - 1)) { | |
char c = input.charAt(index + 1); | |
ChatColorUtils color = getByChar(c); | |
if (color != null) { | |
result = color.toString() + result; | |
if ((color.isColor()) || (color.equals(RESET))) { | |
break; | |
} | |
} | |
} | |
} | |
return result; | |
} | |
static { | |
STRIP_COLOR_PATTERN = Pattern.compile("(§i)" + String.valueOf('§') + "[0-9A-FK-OR]"); | |
BY_ID = Maps.newHashMap(); | |
BY_CHAR = Maps.newHashMap(); | |
ChatColorUtils[] arrayOfChatColor; | |
int j = (arrayOfChatColor = values()).length; | |
for (int i = 0; i < j; i++) { | |
ChatColorUtils color = arrayOfChatColor[i]; | |
BY_ID.put(Integer.valueOf(color.intCode), color); | |
BY_CHAR.put(Character.valueOf(color.code), color); | |
} | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
/** | |
* Created by Daniel on 27.07.2017. | |
*/ | |
public class ClientUpdateThread { | |
public void run(){ | |
new Thread(){ | |
@Override | |
public void run(){ | |
while(true){ | |
if(Main.getMain.ircManager.newMessages()) { | |
for(IRCChatLine ircChat : Main.getMain.ircManager.getUnreadLines()) { | |
Main.getMain.cmdManager.handleReceiveIRC(ircChat); | |
ircChat.setRead(true); | |
} | |
} | |
try{ | |
sleep(500); | |
}catch (Exception e){ | |
} | |
} | |
} | |
}.start(); | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.Entity; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.util.HashMap; | |
import java.util.Map; | |
public class ColorUtil { | |
public static Map<String, ChatColorUtils> colors = new HashMap(); | |
public static int transparency(Color c, double alpha) { | |
float r = 0.003921569F * c.getRed(); | |
float g = 0.003921569F * c.getGreen(); | |
float b = 0.003921569F * c.getBlue(); | |
return new Color(r, g, b, (float) alpha).getRGB(); | |
} | |
public static Color rainbow(double offset, float fade) { | |
float hue = (float) (System.nanoTime() *fade+( offset*System.currentTimeMillis())) / 1.0E10F % 1.0F; | |
long color = Long.parseLong(Integer.toHexString(Integer.valueOf(Color.HSBtoRGB(hue, 1.0F, 1.0F)).intValue()), | |
16); | |
Color c = new Color((int) color); | |
return new Color(c.getRed() / 255.0F, c.getGreen() / 255.0F, c.getBlue() / 255.0F, | |
c.getAlpha() / 255.0F); | |
} | |
public static Color rainbow2(double offset, float fade) { | |
float hue = (float) (System.nanoTime() *fade+( offset)) / 1.0E10F % 1.0F; | |
long color = Long.parseLong(Integer.toHexString(Integer.valueOf(Color.HSBtoRGB(hue, 1.0F, 1.0F)).intValue()), | |
16); | |
Color c = new Color((int) color); | |
return new Color(c.getRed() / 255.0F, c.getGreen() / 255.0F, c.getBlue() / 255.0F, | |
c.getAlpha() / 255.0F); | |
} | |
public static float fade(long offset, float fade) { | |
float hue = (float) (System.nanoTime() + offset) / 1.0E10F % 1.0F; | |
long color = Long.parseLong(Integer.toHexString(Integer.valueOf(Color.HSBtoRGB(hue, 1.0F, 1.0F)).intValue()), 16); | |
Color c = new Color((int) color); | |
return c.getAlpha() / 255.0F; | |
} | |
public static float[] getRGBA(int color) { | |
float a = (color >> 24 & 0xFF) / 255.0F; | |
float r = (color >> 16 & 0xFF) / 255.0F; | |
float g = (color >> 8 & 0xFF) / 255.0F; | |
float b = (color & 0xFF) / 255.0F; | |
return new float[] { r, g, b, a }; | |
} | |
public static int intFromHex(String hex) { | |
try { | |
if (hex.equalsIgnoreCase("rainbow")) { | |
return rainbow(0L, 1.0F).getRGB(); | |
} | |
return Integer.parseInt(hex, 16); | |
} catch (NumberFormatException ignored) { | |
} | |
return -1; | |
} | |
public static Color getTeamColor(Entity entity) { | |
if(FriendManager.friends.containsKey(entity.getName())){ | |
return new Color(0.101960786f, 0.7372549f, 0.6117647f, 0.0f); | |
} | |
if (!entity.isInvisible() && entity != Minecraft.getMinecraft().thePlayer) { | |
String display = entity.getDisplayName().getFormattedText(); | |
// Dark Blue | |
if (display.startsWith("§1")) { | |
return new Color(0.0F, 0.2F, 1.0F, 1.0F); | |
} else | |
// Blue | |
if (display.startsWith("§2")) { | |
return new Color(0.05F, 1.0F, 0.1F, 1.0F); // JA | |
} else | |
// Cyan | |
if (display.startsWith("§3") || display.startsWith("§b")) { | |
return new Color(0.0F, 0.8F, 1.0F, 1.0F); | |
} else | |
// Dark Red | |
if (display.startsWith("§4")) { | |
return new Color(0.8F, 0.0F, 0.0F, 0.0f); | |
} else | |
// Red | |
if (display.startsWith("§c")) { | |
return new Color(1.0F, 0.0F, 0.0F, 1.0F); | |
} else | |
// Yellow | |
if (display.startsWith("§e")) { | |
return new Color(1.0F, 1.0F, 0.0F, 1.0F); | |
} else | |
// Orange | |
if (display.startsWith("§6")) { | |
return new Color(1.0F, 0.5529412f, 0.02745098f, 0.0f); | |
} else | |
// Dark Green | |
if (display.startsWith("§2")) { | |
return new Color(0.0F, 0.0F, 1.0F, 1.0F); | |
} else | |
// Green | |
if (display.startsWith("§a")) { | |
return new Color(0.1F, 0.8F, 0.0F, 1.0F); | |
} else | |
// Dark Purple | |
if (display.startsWith("§5")) { | |
return new Color(0.5F, 0.0F, 0.5F, 1.0F); | |
} else | |
// Pink | |
if (display.startsWith("§d")) { | |
return new Color(1.0F, 0.0F, 1.0F, 1.0F); | |
} else | |
// White | |
if (display.startsWith("§f")) { | |
return new Color(1.0F, 1.0F, 1.0F, 1.0F); | |
} else | |
// Grey | |
if (display.startsWith("§7")) { | |
return new Color(0.5F, 0.5F, 0.5F, 1.0F); | |
} else | |
// Dark Grey | |
if (display.startsWith("§8")) { | |
return new Color(0.3F, 0.3F, 0.3F, 1.0F); | |
} else | |
// Blue | |
if (display.startsWith("§9")) { | |
return new Color(0.0F, 0.1F, 1.0F, 1.0F); | |
} else | |
// Black | |
if (display.startsWith("§0")) { | |
return new Color(0.0F, 0.0F, 0.0F, 1.0F); | |
} else { | |
return new Color(1.0F, 1.0F, 1.0F, 1.0F); | |
} | |
} | |
return new Color(1,1,1); | |
} | |
public static String hexFromInt(int color) { | |
return hexFromInt(new Color(color)); | |
} | |
public static String hexFromInt(Color color) { | |
return Integer.toHexString(color.getRGB()).substring(2); | |
} | |
public static Color blend(Color color1, Color color2) { | |
return blend(color1, color2); | |
} | |
public static Color darker(Color color, double fraction) { | |
int red = (int) Math.round(color.getRed() * (1.0D - fraction)); | |
int green = (int) Math.round(color.getGreen() * (1.0D - fraction)); | |
int blue = (int) Math.round(color.getBlue() * (1.0D - fraction)); | |
if (red < 0) { | |
red = 0; | |
} else if (red > 255) { | |
red = 255; | |
} | |
if (green < 0) { | |
green = 0; | |
} else if (green > 255) { | |
green = 255; | |
} | |
if (blue < 0) { | |
blue = 0; | |
} else if (blue > 255) { | |
blue = 255; | |
} | |
int alpha = color.getAlpha(); | |
return new Color(red, green, blue, alpha); | |
} | |
public static Color lighter(Color color, double fraction) { | |
int red = (int) Math.round(color.getRed() * (1.0D + fraction)); | |
int green = (int) Math.round(color.getGreen() * (1.0D + fraction)); | |
int blue = (int) Math.round(color.getBlue() * (1.0D + fraction)); | |
if (red < 0) { | |
red = 0; | |
} else if (red > 255) { | |
red = 255; | |
} | |
if (green < 0) { | |
green = 0; | |
} else if (green > 255) { | |
green = 255; | |
} | |
if (blue < 0) { | |
blue = 0; | |
} else if (blue > 255) { | |
blue = 255; | |
} | |
int alpha = color.getAlpha(); | |
return new Color(red, green, blue, alpha); | |
} | |
public static String getHexName(Color color) { | |
int r = color.getRed(); | |
int g = color.getGreen(); | |
int b = color.getBlue(); | |
String rHex = Integer.toString(r, 16); | |
String gHex = Integer.toString(g, 16); | |
String bHex = Integer.toString(b, 16); | |
return (rHex.length() == 2 ? rHex : "0" + rHex) | |
+ (gHex.length() == 2 ? gHex : "0" + gHex) | |
+ (bHex.length() == 2 ? bHex : "0" + bHex); | |
} | |
public static double colorDistance(double r1, double g1, double b1, double r2, double g2, double b2) { | |
double a = r2 - r1; | |
double b = g2 - g1; | |
double c = b2 - b1; | |
return Math.sqrt(a + b + c * c); | |
} | |
public static double colorDistance(double[] color1, double[] color2) { | |
return colorDistance(color1[0], color1[1], color1[2], color2[0], color2[1], color2[2]); | |
} | |
public static double colorDistance(Color color1, Color color2) { | |
float[] rgb1 = new float[3]; | |
float[] rgb2 = new float[3]; | |
color1.getColorComponents(rgb1); | |
color2.getColorComponents(rgb2); | |
return colorDistance(rgb1[0], rgb1[1], rgb1[2], rgb2[0], rgb2[1], rgb2[2]); | |
} | |
public static boolean isDark(double r, double g, double b) { | |
double dWhite = colorDistance(r, g, b, 1.0D, 1.0D, 1.0D); | |
double dBlack = colorDistance(r, g, b, 0.0D, 0.0D, 0.0D); | |
return dBlack < dWhite; | |
} | |
public static boolean isDark(Color color) { | |
float r = color.getRed() / 255.0F; | |
float g = color.getGreen() / 255.0F; | |
float b = color.getBlue() / 255.0F; | |
return isDark(r, g, b); | |
} | |
public static void setColor(Color c) { | |
GL11.glColor4f(c.getRed() / 255.0F, c.getGreen() / 255.0F, c.getBlue() / 255.0F, c.getAlpha() / 255.0F); | |
} | |
} |
package de.Client.Utils; | |
import org.lwjgl.LWJGLException; | |
import org.lwjgl.input.Controller; | |
import org.lwjgl.input.Controllers; | |
import org.newdawn.slick.command.Control; | |
public class ControllerAPI { | |
public Controller gameController; | |
public void init(){ | |
try { | |
Controllers.create(); | |
} catch (LWJGLException e) { | |
e.printStackTrace(); | |
} | |
Controllers.poll(); | |
for(int i = 0; i < Controllers.getControllerCount(); ++i){ | |
System.out.println("FOUND CONTROLLER" + Controllers.getController(i).getName()); | |
gameController = Controllers.getController(i); | |
} | |
} | |
} |
package de.Client.Utils; | |
import net.minecraft.client.gui.FontRenderer; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.util.ChatAllowedCharacters; | |
import org.lwjgl.opengl.GL11; | |
public final class DarkPasswordField extends Gui { | |
private final int field_146209_f; | |
private final int field_146210_g; | |
private final FontRenderer field_146211_a; | |
private boolean field_146212_n = true; | |
private boolean field_146213_o; | |
private int field_146214_l; | |
private boolean field_146215_m = true; | |
private String field_146216_j = ""; | |
private int field_146217_k = 32; | |
private final int field_146218_h; | |
private final int field_146219_i; | |
private boolean field_146220_v = true; | |
private int field_146221_u = 7368816; | |
private int field_146222_t = 14737632; | |
private int field_146223_s; | |
private int field_146224_r; | |
private int field_146225_q; | |
private boolean field_146226_p = true; | |
public DarkPasswordField(FontRenderer p_i1032_1_, int p_i1032_2_, int p_i1032_3_, int p_i1032_4_, int p_i1032_5_) { | |
this.field_146211_a = p_i1032_1_; | |
this.field_146209_f = p_i1032_2_; | |
this.field_146210_g = p_i1032_3_; | |
this.field_146218_h = p_i1032_4_; | |
this.field_146219_i = p_i1032_5_; | |
} | |
public void drawTextBox() { | |
if (func_146176_q()) { | |
if (func_146181_i()) { | |
Gui.drawRect(this.field_146209_f - 1, this.field_146210_g - 1, this.field_146209_f + this.field_146218_h + 1, this.field_146210_g + this.field_146219_i + 1, 0x80000000); | |
Gui.drawRect(this.field_146209_f, this.field_146210_g, this.field_146209_f + this.field_146218_h, this.field_146210_g + this.field_146219_i, 0x80000000); | |
} | |
int var1 = this.field_146226_p ? this.field_146222_t : this.field_146221_u; | |
int var2 = this.field_146224_r - this.field_146225_q; | |
int var3 = this.field_146223_s - this.field_146225_q; | |
String var4 = this.field_146211_a.trimStringToWidth(this.field_146216_j.substring(this.field_146225_q), | |
func_146200_o()); | |
boolean var5 = (var2 >= 0) && (var2 <= var4.length()); | |
boolean var6 = (this.field_146213_o) && (this.field_146214_l / 6 % 2 == 0) && (var5); | |
int var7 = this.field_146215_m ? this.field_146209_f + 4 : this.field_146209_f; | |
int var8 = this.field_146215_m ? this.field_146210_g + (this.field_146219_i - 8) / 2 : this.field_146210_g; | |
int var9 = var7; | |
if (var3 > var4.length()) { | |
var3 = var4.length(); | |
} | |
if (var4.length() > 0) { | |
String var10 = var5 ? var4.substring(0, var2) : var4; | |
var9 = this.field_146211_a.drawString(var10.replaceAll(".", "*"), var7, var8, var1); | |
} | |
boolean var13 = (this.field_146224_r < this.field_146216_j.length()) | |
|| (this.field_146216_j.length() >= func_146208_g()); | |
int var11 = var9; | |
if (!var5) { | |
var11 = var2 > 0 ? var7 + this.field_146218_h : var7; | |
} else if (var13) { | |
var11 = var9 - 1; | |
var9--; | |
} | |
if ((var4.length() > 0) && (var5) && (var2 < var4.length())) { | |
this.field_146211_a.drawString(var4.substring(var2).replaceAll(".", "*"), var9, var8, var1); | |
} | |
if (var6) { | |
if (var13) { | |
Gui.drawRect(var11, var8 - 1, var11 + 1, var8 + 1 + this.field_146211_a.FONT_HEIGHT, -3092272); | |
} else { | |
this.field_146211_a.drawString("_", var11, var8, var1); | |
} | |
} | |
if (var3 != var2) { | |
int var12 = var7 + this.field_146211_a.getStringWidth(var4.substring(0, var3).replaceAll(".", "*")); | |
func_146188_c(var11, var8 - 1, var12 - 1, var8 + 1 + this.field_146211_a.FONT_HEIGHT); | |
} | |
} | |
} | |
public void func_146175_b(int p_146175_1_) { | |
if (this.field_146216_j.length() != 0) { | |
if (this.field_146223_s != this.field_146224_r) { | |
func_146191_b(""); | |
} else { | |
boolean var2 = p_146175_1_ < 0; | |
int var3 = var2 ? this.field_146224_r + p_146175_1_ : this.field_146224_r; | |
int var4 = var2 ? this.field_146224_r : this.field_146224_r + p_146175_1_; | |
String var5 = ""; | |
if (var3 >= 0) { | |
var5 = this.field_146216_j.substring(0, var3); | |
} | |
if (var4 < this.field_146216_j.length()) { | |
var5 = var5 + this.field_146216_j.substring(var4); | |
} | |
this.field_146216_j = var5; | |
if (var2) { | |
func_146182_d(p_146175_1_); | |
} | |
} | |
} | |
} | |
public boolean func_146176_q() { | |
return this.field_146220_v; | |
} | |
public void func_146177_a(int p_146177_1_) { | |
if (this.field_146216_j.length() != 0) { | |
if (this.field_146223_s != this.field_146224_r) { | |
func_146191_b(""); | |
} else { | |
func_146175_b(func_146187_c(p_146177_1_) - this.field_146224_r); | |
} | |
} | |
} | |
public boolean func_146181_i() { | |
return this.field_146215_m; | |
} | |
public void func_146182_d(int p_146182_1_) { | |
func_146190_e(this.field_146223_s + p_146182_1_); | |
} | |
public int func_146183_a(int p_146183_1_, int p_146183_2_) { | |
return func_146197_a(p_146183_1_, func_146198_h(), true); | |
} | |
public void func_146184_c(boolean p_146184_1_) { | |
this.field_146226_p = p_146184_1_; | |
} | |
public void func_146185_a(boolean p_146185_1_) { | |
this.field_146215_m = p_146185_1_; | |
} | |
public int func_146186_n() { | |
return this.field_146223_s; | |
} | |
public int func_146187_c(int p_146187_1_) { | |
return func_146183_a(p_146187_1_, func_146198_h()); | |
} | |
private void func_146188_c(int p_146188_1_, int p_146188_2_, int p_146188_3_, int p_146188_4_) { | |
if (p_146188_1_ < p_146188_3_) { | |
int var5 = p_146188_1_; | |
p_146188_1_ = p_146188_3_; | |
p_146188_3_ = var5; | |
} | |
if (p_146188_2_ < p_146188_4_) { | |
int var5 = p_146188_2_; | |
p_146188_2_ = p_146188_4_; | |
p_146188_4_ = var5; | |
} | |
if (p_146188_3_ > this.field_146209_f + this.field_146218_h) { | |
p_146188_3_ = this.field_146209_f + this.field_146218_h; | |
} | |
if (p_146188_1_ > this.field_146209_f + this.field_146218_h) { | |
p_146188_1_ = this.field_146209_f + this.field_146218_h; | |
} | |
// WorldRenderer var2 = Tessellator.instance.getWorldRenderer(); | |
GL11.glColor4f(0.0F, 0.0F, 255.0F, 255.0F); | |
GL11.glDisable(3553); | |
GL11.glEnable(3058); | |
GL11.glLogicOp(5387); | |
// var2.startDrawingQuads(); | |
// var2.addVertex(p_146188_1_, p_146188_4_, 0.0D); | |
// var2.addVertex(p_146188_3_, p_146188_4_, 0.0D); | |
// var2.addVertex(p_146188_3_, p_146188_2_, 0.0D); | |
// var2.addVertex(p_146188_1_, p_146188_2_, 0.0D); | |
// var2.draw(); | |
GL11.glDisable(3058); | |
GL11.glEnable(3553); | |
} | |
public void func_146189_e(boolean p_146189_1_) { | |
this.field_146220_v = p_146189_1_; | |
} | |
public void func_146190_e(int p_146190_1_) { | |
this.field_146224_r = p_146190_1_; | |
int var2 = this.field_146216_j.length(); | |
if (this.field_146224_r < 0) { | |
this.field_146224_r = 0; | |
} | |
if (this.field_146224_r > var2) { | |
this.field_146224_r = var2; | |
} | |
func_146199_i(this.field_146224_r); | |
} | |
public void func_146191_b(String p_146191_1_) { | |
String var2 = ""; | |
String var3 = ChatAllowedCharacters.filterAllowedCharacters(p_146191_1_); | |
int var4 = this.field_146224_r < this.field_146223_s ? this.field_146224_r : this.field_146223_s; | |
int var5 = this.field_146224_r < this.field_146223_s ? this.field_146223_s : this.field_146224_r; | |
int var6 = this.field_146217_k - this.field_146216_j.length() - (var4 - this.field_146223_s); | |
if (this.field_146216_j.length() > 0) { | |
var2 = var2 + this.field_146216_j.substring(0, var4); | |
} | |
int var8; | |
if (var6 < var3.length()) { | |
var2 = var2 + var3.substring(0, var6); | |
var8 = var6; | |
} else { | |
var2 = var2 + var3; | |
var8 = var3.length(); | |
} | |
if ((this.field_146216_j.length() > 0) && (var5 < this.field_146216_j.length())) { | |
var2 = var2 + this.field_146216_j.substring(var5); | |
} | |
this.field_146216_j = var2; | |
func_146182_d(var4 - this.field_146223_s + var8); | |
} | |
public void func_146193_g(int p_146193_1_) { | |
this.field_146222_t = p_146193_1_; | |
} | |
public void func_146196_d() { | |
func_146190_e(0); | |
} | |
public int func_146197_a(int p_146197_1_, int p_146197_2_, boolean p_146197_3_) { | |
int var4 = p_146197_2_; | |
boolean var5 = p_146197_1_ < 0; | |
int var6 = Math.abs(p_146197_1_); | |
for (int var7 = 0; var7 < var6; var7++) { | |
if (var5) { | |
for (;;) { | |
var4--; | |
if ((p_146197_3_) && (var4 > 0)) { | |
if (this.field_146216_j.charAt(var4 - 1) != ' ') { | |
break; | |
} | |
} | |
} | |
do { | |
var4--; | |
if (var4 <= 0) { | |
break; | |
} | |
} while (this.field_146216_j.charAt(var4 - 1) != ' '); | |
} else { | |
int var8 = this.field_146216_j.length(); | |
var4 = this.field_146216_j.indexOf(' ', var4); | |
if (var4 == -1) { | |
var4 = var8; | |
} else { | |
while ((p_146197_3_) && (var4 < var8) && (this.field_146216_j.charAt(var4) == ' ')) { | |
var4++; | |
} | |
} | |
} | |
} | |
return var4; | |
} | |
public int func_146198_h() { | |
return this.field_146224_r; | |
} | |
public void func_146199_i(int p_146199_1_) { | |
int var2 = this.field_146216_j.length(); | |
if (p_146199_1_ > var2) { | |
p_146199_1_ = var2; | |
} | |
if (p_146199_1_ < 0) { | |
p_146199_1_ = 0; | |
} | |
this.field_146223_s = p_146199_1_; | |
if (this.field_146211_a != null) { | |
if (this.field_146225_q > var2) { | |
this.field_146225_q = var2; | |
} | |
int var3 = func_146200_o(); | |
String var4 = this.field_146211_a.trimStringToWidth(this.field_146216_j.substring(this.field_146225_q), | |
var3); | |
int var5 = var4.length() + this.field_146225_q; | |
if (p_146199_1_ == this.field_146225_q) { | |
this.field_146225_q = (this.field_146225_q | |
- this.field_146211_a.trimStringToWidth(this.field_146216_j, var3, true).length()); | |
} | |
if (p_146199_1_ > var5) { | |
this.field_146225_q += p_146199_1_ - var5; | |
} else if (p_146199_1_ <= this.field_146225_q) { | |
this.field_146225_q -= this.field_146225_q - p_146199_1_; | |
} | |
if (this.field_146225_q < 0) { | |
this.field_146225_q = 0; | |
} | |
if (this.field_146225_q > var2) { | |
this.field_146225_q = var2; | |
} | |
} | |
} | |
public int func_146200_o() { | |
return func_146181_i() ? this.field_146218_h - 8 : this.field_146218_h; | |
} | |
public void func_146202_e() { | |
func_146190_e(this.field_146216_j.length()); | |
} | |
public void func_146203_f(int p_146203_1_) { | |
this.field_146217_k = p_146203_1_; | |
if (this.field_146216_j.length() > p_146203_1_) { | |
this.field_146216_j = this.field_146216_j.substring(0, p_146203_1_); | |
} | |
} | |
public void func_146204_h(int p_146204_1_) { | |
this.field_146221_u = p_146204_1_; | |
} | |
public void func_146205_d(boolean p_146205_1_) { | |
this.field_146212_n = p_146205_1_; | |
} | |
public String func_146207_c() { | |
int var1 = this.field_146224_r < this.field_146223_s ? this.field_146224_r : this.field_146223_s; | |
int var2 = this.field_146224_r < this.field_146223_s ? this.field_146223_s : this.field_146224_r; | |
return this.field_146216_j.substring(var1, var2); | |
} | |
public int func_146208_g() { | |
return this.field_146217_k; | |
} | |
public String getText() { | |
return this.field_146216_j; | |
} | |
public boolean isFocused() { | |
return this.field_146213_o; | |
} | |
public void mouseClicked(int p_146192_1_, int p_146192_2_, int p_146192_3_) { | |
boolean var4 = (p_146192_1_ >= this.field_146209_f) && (p_146192_1_ < this.field_146209_f + this.field_146218_h) | |
&& (p_146192_2_ >= this.field_146210_g) && (p_146192_2_ < this.field_146210_g + this.field_146219_i); | |
if (this.field_146212_n) { | |
setFocused(var4); | |
} | |
if ((this.field_146213_o) && (p_146192_3_ == 0)) { | |
int var5 = p_146192_1_ - this.field_146209_f; | |
if (this.field_146215_m) { | |
var5 -= 4; | |
} | |
String var6 = this.field_146211_a.trimStringToWidth(this.field_146216_j.substring(this.field_146225_q), | |
func_146200_o()); | |
func_146190_e(this.field_146211_a.trimStringToWidth(var6, var5).length() + this.field_146225_q); | |
} | |
} | |
public void setFocused(boolean p_146195_1_) { | |
if ((p_146195_1_) && (!this.field_146213_o)) { | |
this.field_146214_l = 0; | |
} | |
this.field_146213_o = p_146195_1_; | |
} | |
public void setText(String p_146180_1_) { | |
if (p_146180_1_.length() > this.field_146217_k) { | |
this.field_146216_j = p_146180_1_.substring(0, this.field_146217_k); | |
} else { | |
this.field_146216_j = p_146180_1_; | |
} | |
func_146202_e(); | |
} | |
public boolean textboxKeyTyped(char p_146201_1_, int p_146201_2_) { | |
if (!this.field_146213_o) { | |
return false; | |
} | |
switch (p_146201_1_) { | |
case '\001': | |
func_146202_e(); | |
func_146199_i(0); | |
return true; | |
case '\003': | |
GuiScreen.setClipboardString(func_146207_c()); | |
return true; | |
case '\026': | |
if (this.field_146226_p) { | |
func_146191_b(GuiScreen.getClipboardString()); | |
} | |
return true; | |
case '\030': | |
GuiScreen.setClipboardString(func_146207_c()); | |
if (this.field_146226_p) { | |
func_146191_b(""); | |
} | |
return true; | |
} | |
switch (p_146201_2_) { | |
case 14: | |
if (GuiScreen.isCtrlKeyDown()) { | |
if (this.field_146226_p) { | |
func_146177_a(-1); | |
} | |
} else if (this.field_146226_p) { | |
func_146175_b(-1); | |
} | |
return true; | |
case 199: | |
if (GuiScreen.isShiftKeyDown()) { | |
func_146199_i(0); | |
} else { | |
func_146196_d(); | |
} | |
return true; | |
case 203: | |
if (GuiScreen.isShiftKeyDown()) { | |
if (GuiScreen.isCtrlKeyDown()) { | |
func_146199_i(func_146183_a(-1, func_146186_n())); | |
} else { | |
func_146199_i(func_146186_n() - 1); | |
} | |
} else if (GuiScreen.isCtrlKeyDown()) { | |
func_146190_e(func_146187_c(-1)); | |
} else { | |
func_146182_d(-1); | |
} | |
return true; | |
case 205: | |
if (GuiScreen.isShiftKeyDown()) { | |
if (GuiScreen.isCtrlKeyDown()) { | |
func_146199_i(func_146183_a(1, func_146186_n())); | |
} else { | |
func_146199_i(func_146186_n() + 1); | |
} | |
} else if (GuiScreen.isCtrlKeyDown()) { | |
func_146190_e(func_146187_c(1)); | |
} else { | |
func_146182_d(1); | |
} | |
return true; | |
case 207: | |
if (GuiScreen.isShiftKeyDown()) { | |
func_146199_i(this.field_146216_j.length()); | |
} else { | |
func_146202_e(); | |
} | |
return true; | |
case 211: | |
if (GuiScreen.isCtrlKeyDown()) { | |
if (this.field_146226_p) { | |
func_146177_a(1); | |
} | |
} else if (this.field_146226_p) { | |
func_146175_b(1); | |
} | |
return true; | |
} | |
if (ChatAllowedCharacters.isAllowedCharacter(p_146201_1_)) { | |
if (this.field_146226_p) { | |
func_146191_b(Character.toString(p_146201_1_)); | |
} | |
return true; | |
} | |
return false; | |
} | |
public void updateCursorCounter() { | |
this.field_146214_l += 1; | |
} | |
} |
package de.Client.Utils; | |
import com.google.common.base.Predicate; | |
import com.google.common.base.Predicates; | |
import net.minecraft.client.gui.FontRenderer; | |
import net.minecraft.client.gui.Gui; | |
import net.minecraft.client.gui.GuiPageButtonList; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.WorldRenderer; | |
import net.minecraft.util.ChatAllowedCharacters; | |
import net.minecraft.util.MathHelper; | |
public class DarkTextField extends Gui { | |
private final int id; | |
private final FontRenderer fontRendererInstance; | |
public int xPosition; | |
public int yPosition; | |
/** The width of this text field. */ | |
private final int width; | |
private final int height; | |
/** Has the current text being edited on the textbox. */ | |
private String text = ""; | |
private int maxStringLength = 32; | |
private int cursorCounter; | |
private boolean enableBackgroundDrawing = true; | |
/** | |
* if true the textbox can lose focus by clicking elsewhere on the screen | |
*/ | |
private boolean canLoseFocus = true; | |
/** | |
* If this value is true along with isEnabled, keyTyped will process the | |
* keys. | |
*/ | |
private boolean isFocused; | |
/** | |
* If this value is true along with isFocused, keyTyped will process the | |
* keys. | |
*/ | |
private boolean isEnabled = true; | |
/** | |
* The current character index that should be used as start of the rendered | |
* text. | |
*/ | |
private int lineScrollOffset; | |
private int cursorPosition; | |
/** other selection position, maybe the same as the cursor */ | |
private int selectionEnd; | |
private int enabledColor = 14737632; | |
private int disabledColor = 7368816; | |
/** True if this textbox is visible */ | |
private boolean visible = true; | |
private GuiPageButtonList.GuiResponder field_175210_x; | |
private Predicate<String> validator = Predicates.<String> alwaysTrue(); | |
public DarkTextField(int componentId, FontRenderer fontrendererObj, int x, int y, int width, int height) { | |
this.id = componentId; | |
this.fontRendererInstance = fontrendererObj; | |
this.xPosition = x; | |
this.yPosition = y; | |
this.width = width; | |
this.height = height; | |
} | |
public void func_175207_a(GuiPageButtonList.GuiResponder p_175207_1_) { | |
this.field_175210_x = p_175207_1_; | |
} | |
/** | |
* Increments the cursor counter | |
*/ | |
public void updateCursorCounter() { | |
++this.cursorCounter; | |
} | |
/** | |
* Sets the text of the textbox | |
*/ | |
public void setText(String p_146180_1_) { | |
if (this.validator.apply(p_146180_1_)) { | |
if (p_146180_1_.length() > this.maxStringLength) { | |
this.text = p_146180_1_.substring(0, this.maxStringLength); | |
} else { | |
this.text = p_146180_1_; | |
} | |
this.setCursorPositionEnd(); | |
} | |
} | |
/** | |
* Returns the contents of the textbox | |
*/ | |
public String getText() { | |
return this.text; | |
} | |
/** | |
* returns the text between the cursor and selectionEnd | |
*/ | |
public String getSelectedText() { | |
int i = this.cursorPosition < this.selectionEnd ? this.cursorPosition : this.selectionEnd; | |
int j = this.cursorPosition < this.selectionEnd ? this.selectionEnd : this.cursorPosition; | |
return this.text.substring(i, j); | |
} | |
public void setValidator(Predicate<String> theValidator) { | |
this.validator = theValidator; | |
} | |
/** | |
* replaces selected text, or inserts text at the position on the cursor | |
*/ | |
public void writeText(String p_146191_1_) { | |
String s = ""; | |
String s1 = ChatAllowedCharacters.filterAllowedCharacters(p_146191_1_); | |
int i = this.cursorPosition < this.selectionEnd ? this.cursorPosition : this.selectionEnd; | |
int j = this.cursorPosition < this.selectionEnd ? this.selectionEnd : this.cursorPosition; | |
int k = this.maxStringLength - this.text.length() - (i - j); | |
int l = 0; | |
if (!this.text.isEmpty()) { | |
s = s + this.text.substring(0, i); | |
} | |
if (k < s1.length()) { | |
s = s + s1.substring(0, k); | |
l = k; | |
} else { | |
s = s + s1; | |
l = s1.length(); | |
} | |
if (!this.text.isEmpty() && j < this.text.length()) { | |
s = s + this.text.substring(j); | |
} | |
if (this.validator.apply(s)) { | |
this.text = s; | |
this.moveCursorBy(i - this.selectionEnd + l); | |
if (this.field_175210_x != null) { | |
this.field_175210_x.func_175319_a(this.id, this.text); | |
} | |
} | |
} | |
/** | |
* Deletes the specified number of words starting at the cursor position. | |
* Negative numbers will delete words left of the cursor. | |
*/ | |
public void deleteWords(int p_146177_1_) { | |
if (!this.text.isEmpty()) { | |
if (this.selectionEnd != this.cursorPosition) { | |
this.writeText(""); | |
} else { | |
this.deleteFromCursor(this.getNthWordFromCursor(p_146177_1_) - this.cursorPosition); | |
} | |
} | |
} | |
/** | |
* delete the selected text, otherwsie deletes characters from either side | |
* of the cursor. params: delete num | |
*/ | |
public void deleteFromCursor(int p_146175_1_) { | |
if (!this.text.isEmpty()) { | |
if (this.selectionEnd != this.cursorPosition) { | |
this.writeText(""); | |
} else { | |
boolean flag = p_146175_1_ < 0; | |
int i = flag ? this.cursorPosition + p_146175_1_ : this.cursorPosition; | |
int j = flag ? this.cursorPosition : this.cursorPosition + p_146175_1_; | |
String s = ""; | |
if (i >= 0) { | |
s = this.text.substring(0, i); | |
} | |
if (j < this.text.length()) { | |
s = s + this.text.substring(j); | |
} | |
if (this.validator.apply(s)) { | |
this.text = s; | |
if (flag) { | |
this.moveCursorBy(p_146175_1_); | |
} | |
if (this.field_175210_x != null) { | |
this.field_175210_x.func_175319_a(this.id, this.text); | |
} | |
} | |
} | |
} | |
} | |
public int getId() { | |
return this.id; | |
} | |
/** | |
* see @getNthNextWordFromPos() params: N, position | |
*/ | |
public int getNthWordFromCursor(int p_146187_1_) { | |
return this.getNthWordFromPos(p_146187_1_, this.getCursorPosition()); | |
} | |
/** | |
* gets the position of the nth word. N may be negative, then it looks | |
* backwards. params: N, position | |
*/ | |
public int getNthWordFromPos(int p_146183_1_, int p_146183_2_) { | |
return this.func_146197_a(p_146183_1_, p_146183_2_, true); | |
} | |
public int func_146197_a(int p_146197_1_, int p_146197_2_, boolean p_146197_3_) { | |
int i = p_146197_2_; | |
boolean flag = p_146197_1_ < 0; | |
int j = Math.abs(p_146197_1_); | |
for (int k = 0; k < j; ++k) { | |
if (!flag) { | |
int l = this.text.length(); | |
i = this.text.indexOf(32, i); | |
if (i == -1) { | |
i = l; | |
} else { | |
while (p_146197_3_ && i < l && this.text.charAt(i) == 32) { | |
++i; | |
} | |
} | |
} else { | |
while (p_146197_3_ && i > 0 && this.text.charAt(i - 1) == 32) { | |
--i; | |
} | |
while (i > 0 && this.text.charAt(i - 1) != 32) { | |
--i; | |
} | |
} | |
} | |
return i; | |
} | |
/** | |
* Moves the text cursor by a specified number of characters and clears the | |
* selection | |
*/ | |
public void moveCursorBy(int p_146182_1_) { | |
this.setCursorPosition(this.selectionEnd + p_146182_1_); | |
} | |
/** | |
* sets the position of the cursor to the provided index | |
*/ | |
public void setCursorPosition(int p_146190_1_) { | |
this.cursorPosition = p_146190_1_; | |
int i = this.text.length(); | |
this.cursorPosition = MathHelper.clamp_int(this.cursorPosition, 0, i); | |
this.setSelectionPos(this.cursorPosition); | |
} | |
/** | |
* sets the cursors position to the beginning | |
*/ | |
public void setCursorPositionZero() { | |
this.setCursorPosition(0); | |
} | |
/** | |
* sets the cursors position to after the text | |
*/ | |
public void setCursorPositionEnd() { | |
this.setCursorPosition(this.text.length()); | |
} | |
/** | |
* Call this method from your GuiScreen to process the keys into the textbox | |
*/ | |
public boolean textboxKeyTyped(char p_146201_1_, int p_146201_2_) { | |
if (!this.isFocused) | |
{ | |
return false; | |
} | |
else if (GuiScreen.func_175278_g(p_146201_2_)) | |
{ | |
this.setCursorPositionEnd(); | |
this.setSelectionPos(0); | |
return true; | |
} | |
else if (GuiScreen.func_175280_f(p_146201_2_)) | |
{ | |
GuiScreen.setClipboardString(this.getSelectedText()); | |
return true; | |
} | |
else if (GuiScreen.func_175279_e(p_146201_2_)) | |
{ | |
if (this.isEnabled) | |
{ | |
this.writeText(GuiScreen.getClipboardString()); | |
} | |
return true; | |
} | |
else if (GuiScreen.func_175277_d(p_146201_2_)) | |
{ | |
GuiScreen.setClipboardString(this.getSelectedText()); | |
if (this.isEnabled) | |
{ | |
this.writeText(""); | |
} | |
return true; | |
} | |
else | |
{ | |
switch (p_146201_2_) | |
{ | |
case 14: | |
if (GuiScreen.isCtrlKeyDown()) | |
{ | |
if (this.isEnabled) | |
{ | |
this.deleteWords(-1); | |
} | |
} | |
else if (this.isEnabled) | |
{ | |
this.deleteFromCursor(-1); | |
} | |
return true; | |
case 199: | |
if (GuiScreen.isShiftKeyDown()) | |
{ | |
this.setSelectionPos(0); | |
} | |
else | |
{ | |
this.setCursorPositionZero(); | |
} | |
return true; | |
case 203: | |
if (GuiScreen.isShiftKeyDown()) | |
{ | |
if (GuiScreen.isCtrlKeyDown()) | |
{ | |
this.setSelectionPos(this.getNthWordFromPos(-1, this.getSelectionEnd())); | |
} | |
else | |
{ | |
this.setSelectionPos(this.getSelectionEnd() - 1); | |
} | |
} | |
else if (GuiScreen.isCtrlKeyDown()) | |
{ | |
this.setCursorPosition(this.getNthWordFromCursor(-1)); | |
} | |
else | |
{ | |
this.moveCursorBy(-1); | |
} | |
return true; | |
case 205: | |
if (GuiScreen.isShiftKeyDown()) | |
{ | |
if (GuiScreen.isCtrlKeyDown()) | |
{ | |
this.setSelectionPos(this.getNthWordFromPos(1, this.getSelectionEnd())); | |
} | |
else | |
{ | |
this.setSelectionPos(this.getSelectionEnd() + 1); | |
} | |
} | |
else if (GuiScreen.isCtrlKeyDown()) | |
{ | |
this.setCursorPosition(this.getNthWordFromCursor(1)); | |
} | |
else | |
{ | |
this.moveCursorBy(1); | |
} | |
return true; | |
case 207: | |
if (GuiScreen.isShiftKeyDown()) | |
{ | |
this.setSelectionPos(this.text.length()); | |
} | |
else | |
{ | |
this.setCursorPositionEnd(); | |
} | |
return true; | |
case 211: | |
if (GuiScreen.isCtrlKeyDown()) | |
{ | |
if (this.isEnabled) | |
{ | |
this.deleteWords(1); | |
} | |
} | |
else if (this.isEnabled) | |
{ | |
this.deleteFromCursor(1); | |
} | |
return true; | |
default: | |
if (ChatAllowedCharacters.isAllowedCharacter(p_146201_1_)) | |
{ | |
if (this.isEnabled) | |
{ | |
this.writeText(Character.toString(p_146201_1_)); | |
} | |
return true; | |
} | |
else | |
{ | |
return false; | |
} | |
} | |
} | |
} | |
/** | |
* Args: x, y, buttonClicked | |
*/ | |
public void mouseClicked(int p_146192_1_, int p_146192_2_, int p_146192_3_) { | |
boolean flag = p_146192_1_ >= this.xPosition && p_146192_1_ < this.xPosition + this.width | |
&& p_146192_2_ >= this.yPosition && p_146192_2_ < this.yPosition + this.height; | |
if (this.canLoseFocus) { | |
this.setFocused(flag); | |
} | |
if (this.isFocused && flag && p_146192_3_ == 0) { | |
int i = p_146192_1_ - this.xPosition; | |
if (this.enableBackgroundDrawing) { | |
i -= 4; | |
} | |
String s = this.fontRendererInstance.trimStringToWidth(this.text.substring(this.lineScrollOffset), | |
this.getWidth()); | |
this.setCursorPosition(this.fontRendererInstance.trimStringToWidth(s, i).length() + this.lineScrollOffset); | |
} | |
} | |
/** | |
* Draws the textbox | |
*/ | |
public void drawTextBox() { | |
if (this.getVisible()) { | |
if (this.getEnableBackgroundDrawing()) { | |
Gui.drawRect(this.xPosition - 1, this.yPosition - 1, this.xPosition + this.width + 1, this.yPosition + this.height + 1, 0x80000000); | |
Gui.drawRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 0x80000000); | |
} | |
int i = this.isEnabled ? this.enabledColor : this.disabledColor; | |
int j = this.cursorPosition - this.lineScrollOffset; | |
int k = this.selectionEnd - this.lineScrollOffset; | |
String s = this.fontRendererInstance.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); | |
boolean flag = j >= 0 && j <= s.length(); | |
boolean flag1 = this.isFocused && this.cursorCounter / 6 % 2 == 0 && flag; | |
int l = this.enableBackgroundDrawing ? this.xPosition + 4 : this.xPosition; | |
int i1 = this.enableBackgroundDrawing ? this.yPosition + (this.height - 8) / 2 : this.yPosition; | |
int j1 = l; | |
if (k > s.length()) { | |
k = s.length(); | |
} | |
if (!s.isEmpty()) { | |
String s1 = flag ? s.substring(0, j) : s; | |
j1 = this.fontRendererInstance.drawStringWithShadow(s1, (float) l, (float) i1, i); | |
} | |
boolean flag2 = this.cursorPosition < this.text.length() || this.text.length() >= this.getMaxStringLength(); | |
int k1 = j1; | |
if (!flag) { | |
k1 = j > 0 ? l + this.width : l; | |
} else if (flag2) { | |
k1 = j1 - 1; | |
--j1; | |
} | |
if (!s.isEmpty() && flag && j < s.length()) { | |
j1 = this.fontRendererInstance.drawStringWithShadow(s.substring(j), (float) j1, (float) i1, i); | |
} | |
if (flag1) { | |
if (flag2) { | |
Gui.drawRect(k1, i1 - 1, k1 + 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT, -3092272); | |
} else { | |
this.fontRendererInstance.drawStringWithShadow("_", (float) k1, (float) i1, i); | |
} | |
} | |
if (k != j) { | |
int l1 = l + this.fontRendererInstance.getStringWidth(s.substring(0, k)); | |
this.drawCursorVertical(k1, i1 - 1, l1 - 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT); | |
} | |
} | |
} | |
/** | |
* draws the vertical line cursor in the textbox | |
*/ | |
private void drawCursorVertical(int p_146188_1_, int p_146188_2_, int p_146188_3_, int p_146188_4_) | |
{ | |
int var5; | |
if (p_146188_1_ < p_146188_3_) | |
{ | |
var5 = p_146188_1_; | |
p_146188_1_ = p_146188_3_; | |
p_146188_3_ = var5; | |
} | |
if (p_146188_2_ < p_146188_4_) | |
{ | |
var5 = p_146188_2_; | |
p_146188_2_ = p_146188_4_; | |
p_146188_4_ = var5; | |
} | |
if (p_146188_3_ > this.xPosition + this.width) | |
{ | |
p_146188_3_ = this.xPosition + this.width; | |
} | |
if (p_146188_1_ > this.xPosition + this.width) | |
{ | |
p_146188_1_ = this.xPosition + this.width; | |
} | |
Tessellator var7 = Tessellator.getInstance(); | |
WorldRenderer var6 = var7.getWorldRenderer(); | |
GlStateManager.color(0.0F, 0.0F, 255.0F, 255.0F); | |
GlStateManager.func_179090_x(); | |
GlStateManager.enableColorLogic(); | |
GlStateManager.colorLogicOp(5387); | |
var6.startDrawingQuads(); | |
var6.addVertex((double)p_146188_1_, (double)p_146188_4_, 0.0D); | |
var6.addVertex((double)p_146188_3_, (double)p_146188_4_, 0.0D); | |
var6.addVertex((double)p_146188_3_, (double)p_146188_2_, 0.0D); | |
var6.addVertex((double)p_146188_1_, (double)p_146188_2_, 0.0D); | |
var7.draw(); | |
GlStateManager.disableColorLogic(); | |
GlStateManager.func_179098_w(); | |
} | |
public void setMaxStringLength(int p_146203_1_) { | |
this.maxStringLength = p_146203_1_; | |
if (this.text.length() > p_146203_1_) { | |
this.text = this.text.substring(0, p_146203_1_); | |
} | |
} | |
/** | |
* returns the maximum number of character that can be contained in this | |
* textbox | |
*/ | |
public int getMaxStringLength() { | |
return this.maxStringLength; | |
} | |
/** | |
* returns the current position of the cursor | |
*/ | |
public int getCursorPosition() { | |
return this.cursorPosition; | |
} | |
/** | |
* get enable drawing background and outline | |
*/ | |
public boolean getEnableBackgroundDrawing() { | |
return this.enableBackgroundDrawing; | |
} | |
/** | |
* enable drawing background and outline | |
*/ | |
public void setEnableBackgroundDrawing(boolean p_146185_1_) { | |
this.enableBackgroundDrawing = p_146185_1_; | |
} | |
/** | |
* Sets the text colour for this textbox (disabled text will not use this | |
* colour) | |
*/ | |
public void setTextColor(int p_146193_1_) { | |
this.enabledColor = p_146193_1_; | |
} | |
public void setDisabledTextColour(int p_146204_1_) { | |
this.disabledColor = p_146204_1_; | |
} | |
/** | |
* Sets focus to this gui element | |
*/ | |
public void setFocused(boolean p_146195_1_) { | |
if (p_146195_1_ && !this.isFocused) { | |
this.cursorCounter = 0; | |
} | |
this.isFocused = p_146195_1_; | |
} | |
/** | |
* Getter for the focused field | |
*/ | |
public boolean isFocused() { | |
return this.isFocused; | |
} | |
public void setEnabled(boolean p_146184_1_) { | |
this.isEnabled = p_146184_1_; | |
} | |
/** | |
* the side of the selection that is not the cursor, may be the same as the | |
* cursor | |
*/ | |
public int getSelectionEnd() { | |
return this.selectionEnd; | |
} | |
/** | |
* returns the width of the textbox depending on if background drawing is | |
* enabled | |
*/ | |
public int getWidth() { | |
return this.getEnableBackgroundDrawing() ? this.width - 8 : this.width; | |
} | |
/** | |
* Sets the position of the selection anchor (i.e. position the selection | |
* was started at) | |
*/ | |
public void setSelectionPos(int p_146199_1_) { | |
int i = this.text.length(); | |
if (p_146199_1_ > i) { | |
p_146199_1_ = i; | |
} | |
if (p_146199_1_ < 0) { | |
p_146199_1_ = 0; | |
} | |
this.selectionEnd = p_146199_1_; | |
if (this.fontRendererInstance != null) { | |
if (this.lineScrollOffset > i) { | |
this.lineScrollOffset = i; | |
} | |
int j = this.getWidth(); | |
String s = this.fontRendererInstance.trimStringToWidth(this.text.substring(this.lineScrollOffset), j); | |
int k = s.length() + this.lineScrollOffset; | |
if (p_146199_1_ == this.lineScrollOffset) { | |
this.lineScrollOffset -= this.fontRendererInstance.trimStringToWidth(this.text, j, true).length(); | |
} | |
if (p_146199_1_ > k) { | |
this.lineScrollOffset += p_146199_1_ - k; | |
} else if (p_146199_1_ <= this.lineScrollOffset) { | |
this.lineScrollOffset -= this.lineScrollOffset - p_146199_1_; | |
} | |
this.lineScrollOffset = MathHelper.clamp_int(this.lineScrollOffset, 0, i); | |
} | |
} | |
/** | |
* if true the textbox can lose focus by clicking elsewhere on the screen | |
*/ | |
public void setCanLoseFocus(boolean p_146205_1_) { | |
this.canLoseFocus = p_146205_1_; | |
} | |
/** | |
* returns true if this textbox is visible | |
*/ | |
public boolean getVisible() { | |
return this.visible; | |
} | |
/** | |
* Sets whether or not this textbox is visible | |
*/ | |
public void setVisible(boolean p_146189_1_) { | |
this.visible = p_146189_1_; | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import sun.security.provider.Sun; | |
import java.io.*; | |
import java.util.HashMap; | |
import java.util.List; | |
/** | |
* Created by Daniel on 15.07.2017. | |
*/ | |
public class FriendManager { | |
public FriendManager(){ | |
FriendManager.setFriends(Main.getMain.friend); | |
} | |
public static HashMap<String,String[]> friends = new HashMap<>(); | |
public static void saveFriendrs(File file) { | |
try { | |
if (file.exists()) { | |
file.delete(); | |
} | |
file.createNewFile(); | |
PrintWriter output = new PrintWriter(new FileWriter(file, true)); | |
for (String m : friends.keySet()) { | |
output.println(m+ "%%" + friends.get(m)[0]); | |
} | |
output.close(); | |
} catch (Exception localException) { | |
} | |
} | |
public static String[] readFriends(File file) { | |
try { | |
if (!file.exists()) { | |
file.createNewFile(); | |
} | |
FileReader fileReader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(fileReader); | |
java.util.ArrayList<String> lines = new java.util.ArrayList<String>(); | |
String line = null; | |
while ((line = bufferedReader.readLine()) != null) { | |
lines.add(line); | |
} | |
bufferedReader.close(); | |
return lines.toArray(new String[lines.size()]); | |
} catch (Exception f) { | |
return new String[] { "" }; | |
} | |
} | |
public static void setFriends(final File file) { | |
try { | |
new Thread("Friend Toggle Thread (StartUp)") { | |
@Override | |
public void run() { | |
for (String s : readFriends(file)) { | |
String[] splitString = s.split("%%"); | |
friends.put(splitString[0],new String[]{splitString[1]}); | |
} | |
} | |
}.start(); | |
} catch (Exception var1_1) { | |
} | |
} | |
} |
package de.Client.Utils; | |
import java.io.IOException; | |
import de.Client.Main.Main; | |
import org.jibble.pircbot.IrcException; | |
import org.jibble.pircbot.NickAlreadyInUseException; | |
import org.jibble.pircbot.PircBot; | |
public class IRC extends PircBot { | |
public static String CHANNEL_MAIN = "#Sun/Sky-Channel_Main"; | |
public static String CHANNEL_PRIVATE_1 = "#Sun/Sky-Channel_Private_1"; | |
public static String CHANNEL_PRIVATE_2 = "#Sun/Sky-Channel_Private_2"; | |
public static String CHANNEL_GAME = "#Sun/Sky-Channel_Game"; | |
public static String CURRENT_CHANNEL; | |
private static String HOST = "irc.freenode.net"; | |
private static int PORT = 6667; | |
public static String IRC_USERNAME;; | |
public IRC(String username) { | |
IRC.IRC_USERNAME = username; | |
} | |
public void connect() { | |
new Thread() { | |
@Override | |
public void run() { | |
System.out.println("IRC - Versuche zu connecten..."); | |
Main.getMain.ircManager. setAutoNickChange(true); | |
Main.getMain.ircManager.setName(IRC.IRC_USERNAME); | |
Main.getMain.ircManager.changeNick(IRC.IRC_USERNAME); | |
try | |
{ | |
connect(IRC.HOST, IRC.PORT); | |
if (IRC.CURRENT_CHANNEL == null || IRC.CURRENT_CHANNEL.equalsIgnoreCase("")) { | |
IRC.CURRENT_CHANNEL = IRC.CHANNEL_MAIN; | |
} | |
Main.getMain.ircManager.joinChannel(IRC.CURRENT_CHANNEL); | |
Main.getMain.cmdManager.sendChatMessage("§aIRC §fbeigetreten."); | |
} catch ( | |
NickAlreadyInUseException e) | |
{ | |
Main.getMain.cmdManager.sendChatMessage("§cDein IRC-Name wird bereits verwendet!"); | |
e.printStackTrace(); | |
} catch ( | |
IOException e) | |
{ | |
Main.getMain.cmdManager.sendChatMessage("§cFehler beim Verbinden mit dem IRC!"); | |
e.printStackTrace(); | |
} catch ( | |
IrcException e) | |
{ | |
Main.getMain.cmdManager.sendChatMessage("§cFehler mit dem IRC!"); | |
e.printStackTrace(); | |
} | |
} | |
}.start(); | |
} | |
} |
package de.Client.Utils; | |
public class IRCChatLine { | |
private String sender; | |
private String line; | |
private int index; | |
private boolean hasRead; | |
public IRCChatLine(String sender, String line, int index, boolean hasRead) { | |
this.sender = sender; | |
this.line = line; | |
this.index = index; | |
this.hasRead = hasRead; | |
} | |
public String getSender() { | |
return sender; | |
} | |
public void setSender(String sender) { | |
this.sender = sender; | |
} | |
public String getLine() { | |
return line; | |
} | |
public void setLine(String line) { | |
this.line = line; | |
} | |
public int getIndex() { | |
return index; | |
} | |
public void setIndex(int index) { | |
this.index = index; | |
} | |
public boolean isRead() { | |
return hasRead; | |
} | |
public void setRead(boolean hasRead) { | |
this.hasRead = hasRead; | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Values.Value; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Main.Values.ValueDouble; | |
import java.util.ArrayList; | |
public class Macro { | |
public String key; | |
public Macro(String keys) { | |
key = keys; | |
} | |
public Macro(String keys,int keyBind,String name) { | |
key = keyBind + "@@" + name + "%%" +keys ; | |
} | |
public Macro(int keyBind,String name){ | |
key = keyBind + "@@" + name + "%%"; | |
} | |
public String[] splitKey(){ | |
return key.split("%%"); | |
} | |
public String[] getKey(){ | |
return this.splitKey()[1].split("::"); | |
} | |
public String[] getInfo(){ | |
return this.splitKey()[0].split("@@"); | |
} | |
public String getKeybind(){ | |
return this.getInfo()[0]; | |
} | |
public String getName(){ | |
return this.getInfo()[1]; | |
} | |
public int getKeyBindI(){ | |
return Integer.parseInt(this.getKeybind()); | |
} | |
public enum enumMode{ | |
DisableAllValuesBoolean, | |
EnableAllValuesBoolean, | |
EnableValueBoolean, | |
DisableValueBoolean, | |
ToggleValueBoolean, | |
SetValueDouble, | |
} | |
public enumMode decryptKeyAction(String key){ | |
if(key.startsWith("DAVB")){ | |
return enumMode.DisableAllValuesBoolean; | |
}if(key.startsWith("EAVB")){ | |
return enumMode.EnableAllValuesBoolean; | |
}if(key.startsWith("DVB")){ | |
return enumMode.DisableValueBoolean; | |
}if(key.startsWith("EVB")){ | |
return enumMode.EnableValueBoolean; | |
}if(key.startsWith("TVB")){ | |
return enumMode.ToggleValueBoolean; | |
}if(key.startsWith("SVD")){ | |
return enumMode.SetValueDouble; | |
} | |
return null; | |
} | |
public void actionPerformed() { | |
for (String key : this.getKey()) { | |
for (Module m : Main.getMain.moduleManager.getModules()) { | |
if (m.name.equalsIgnoreCase(this.getName())) { | |
enumMode mode = this.decryptKeyAction(key); | |
if (mode == enumMode.DisableAllValuesBoolean) { | |
for (Value v : m.values) { | |
if (v instanceof ValueBoolean) { | |
ValueBoolean vb = (ValueBoolean) v; | |
vb.setValue(false); | |
} | |
} | |
} | |
if (mode == enumMode.EnableAllValuesBoolean) { | |
for (Value v : m.values) { | |
if (v instanceof ValueBoolean) { | |
ValueBoolean vb = (ValueBoolean) v; | |
vb.setValue(true); | |
} | |
} | |
}if (mode == enumMode.DisableValueBoolean) { | |
String valuename = key.split("__")[1]; | |
for (Value v : m.values) { | |
if (v instanceof ValueBoolean && v.getName().equalsIgnoreCase(valuename)) { | |
ValueBoolean vb = (ValueBoolean) v; | |
vb.setValue(false); | |
} | |
} | |
}if (mode == enumMode.EnableValueBoolean) { | |
String valuename = key.split("__")[1]; | |
for (Value v : m.values) { | |
if (v instanceof ValueBoolean && v.getName().equalsIgnoreCase(valuename)) { | |
ValueBoolean vb = (ValueBoolean) v; | |
vb.setValue(true); | |
} | |
} | |
}if (mode == enumMode.ToggleValueBoolean) { | |
String valuename = key.split("__")[1]; | |
for (Value v : m.values) { | |
if (v instanceof ValueBoolean && v.getName().equalsIgnoreCase(valuename)) { | |
ValueBoolean vb = (ValueBoolean) v; | |
vb.setValue(!vb.getValue()); | |
} | |
} | |
}if (mode == enumMode.SetValueDouble) { | |
String valuename = key.split("__")[1]; | |
for (Value v : m.values) { | |
if (v instanceof ValueDouble && v.getName().equalsIgnoreCase(valuename)) { | |
ValueDouble vd = (ValueDouble) v; | |
vd.setValue(Double.parseDouble(key.split("__")[2])); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Module; | |
import de.Client.Main.Modules.ModuleManager; | |
import de.Client.Main.Values.Value; | |
import java.lang.reflect.Array; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
public class MacroManager { | |
public void init(){ | |
for(Module mods : Main.getMain.moduleManager.modules){ | |
for(Value v : mods.values){ | |
values.add(v); | |
} | |
} | |
} | |
public ArrayList<Macro> macroArrayList = new ArrayList<>(); | |
public ArrayList<Value> values = new ArrayList<>(); | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import de.Client.Main.Values.ValueBoolean; | |
import de.Client.Render.GuiApi; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.Gui; | |
import org.lwjgl.opengl.GL11; | |
import java.awt.*; | |
import java.sql.Wrapper; | |
import java.util.*; | |
/** | |
* Created by Daniel on 15.08.2017. | |
*/ | |
public class MiniValueBooleanArray{ | |
public boolean isExtended = false; | |
public String name = ""; | |
public java.util.ArrayList<ValueBoolean> valueBooleanArrayList; | |
public MiniValueBooleanArray(java.util.ArrayList<ValueBoolean> valueArray, String name){ | |
valueBooleanArrayList = valueArray; | |
this.name = name; | |
} | |
public void drawMini(float x, float y){ | |
float height = y+1; | |
for(ValueBoolean v : this.valueBooleanArrayList){ | |
height -=20; | |
if(!v.getValue()) { | |
GuiApi.drawRect(((int) x - 55), (int) height - 9, (int) x + 55, (int) height + 9, new Color(0x292929).getRGB()); | |
}else{ | |
GuiApi.drawRect(((int) x - 55), (int) height - 9, (int) x + 55, (int) height + 9, Main.getMain.getClientColor().getRGB()); | |
} | |
GL11.glPushMatrix(); | |
GuiApi.drawGradientRect(x - 55,height - 12,x + 55, height + 9,0, Integer.MIN_VALUE); | |
GL11.glPopMatrix(); | |
Main.getMain.verdanas.drawStringWithShadow(v.getName(),x-55,height-8,0xffffffff); | |
} | |
} | |
} |
package de.Client.Utils; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.util.BlockPos; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.Vec3; | |
public class RayTraceUtils | |
{ | |
private BlockPos blockPos; | |
/** | |
* The type of hit that occured, see {@link RayTraceUtils#Type} for possibilities. | |
*/ | |
public RayTraceUtils.Type typeOfHit; | |
public EnumFacing sideHit; | |
/** The vector position of the hit */ | |
public Vec3 hitVec; | |
/** The hit entity */ | |
public Entity entityHit; | |
public RayTraceUtils(Vec3 hitVecIn, EnumFacing sideHitIn, BlockPos blockPosIn) | |
{ | |
this(RayTraceUtils.Type.BLOCK, hitVecIn, sideHitIn, blockPosIn); | |
} | |
public RayTraceUtils(Vec3 hitVecIn, EnumFacing sideHitIn) | |
{ | |
this(RayTraceUtils.Type.BLOCK, hitVecIn, sideHitIn, BlockPos.ORIGIN); | |
} | |
public RayTraceUtils(Entity entityIn) | |
{ | |
this(entityIn, new Vec3(entityIn.posX, entityIn.posY, entityIn.posZ)); | |
} | |
public RayTraceUtils(RayTraceUtils.Type typeIn, Vec3 hitVecIn, EnumFacing sideHitIn, BlockPos blockPosIn) | |
{ | |
this.typeOfHit = typeIn; | |
this.blockPos = blockPosIn; | |
this.sideHit = sideHitIn; | |
this.hitVec = new Vec3(hitVecIn.xCoord, hitVecIn.yCoord, hitVecIn.zCoord); | |
} | |
public RayTraceUtils(Entity entityHitIn, Vec3 hitVecIn) | |
{ | |
this.typeOfHit = RayTraceUtils.Type.ENTITY; | |
this.entityHit = entityHitIn; | |
this.hitVec = hitVecIn; | |
} | |
public BlockPos getBlockPos() | |
{ | |
return this.blockPos; | |
} | |
public String toString() | |
{ | |
return "HitResult{type=" + this.typeOfHit + ", blockpos=" + this.blockPos + ", f=" + this.sideHit + ", pos=" + this.hitVec + ", entity=" + this.entityHit + '}'; | |
} | |
public static enum Type | |
{ | |
MISS, | |
BLOCK, | |
ENTITY; | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import de.Client.Render.GuiApi; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.util.MathHelper; | |
import java.awt.*; | |
import java.lang.reflect.Array; | |
import java.util.ArrayList; | |
import java.util.Random; | |
public class Rect { | |
public int color; | |
public double Speed; | |
public double y; | |
public double x; | |
public double height; | |
public double widht; | |
public double timeExisted; | |
public boolean dirty; | |
public double abstand; | |
public ArrayList<Rect> connectedRechts= new ArrayList(); | |
public float getDistanceToRect(Rect rect){ | |
float var2 = (float)(this.x - rect.x); | |
float var3 = (float)(this.y - rect.y); | |
return MathHelper.sqrt_float(var2 * var2 + var3 * var3); | |
} | |
public double xPos(){ | |
return abstand + x; | |
} | |
public void draw(){ | |
GuiApi.drawBorderRectNoCorners(abstand + x-2,y+5,abstand+x+widht-2,y-this.height+5,new Color(0x000000).getRGB(),new Color(0x000000).getRGB()); | |
GuiApi.drawBorderRectNoCorners(abstand + x,y,abstand+x+widht,y-this.height,new Color(0x191B29).getRGB(),new Color(0x121B29).getRGB()); | |
x += Speed; | |
ScaledResolution sr = new ScaledResolution(); | |
if(sr.getScaledWidth() < x+abstand-widht){ | |
dirty = true; | |
System.out.println("test"); | |
} | |
} | |
public Rect(double abstand){ | |
this.abstand = abstand; | |
this.Speed =0.5; | |
ScaledResolution sr = new ScaledResolution(); | |
widht = 20 + new Random().nextInt(20); | |
this.height = (new Random().nextInt(3)+1) * widht; | |
this.height /= sr.getScaleFactor(); | |
this.widht /= sr.getScaleFactor(); | |
this.height *= 2; | |
this.widht *= 2; | |
this.timeExisted = new Random().nextInt(); | |
y = sr.getScaledHeight(); | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Events.EventTarget; | |
import de.Client.Events.Events.Render3DEvent; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.Category; | |
import io.netty.channel.ChannelHandler; | |
import io.netty.channel.ChannelOutboundBuffer; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.ScaledResolution; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.entity.RenderManager; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import org.lwjgl.BufferUtils; | |
import org.lwjgl.opengl.GL11; | |
import org.lwjgl.util.glu.GLU; | |
import org.newdawn.slick.opengl.Texture; | |
import org.newdawn.slick.opengl.TextureImpl; | |
import org.newdawn.slick.opengl.TextureLoader; | |
import java.io.IOException; | |
import java.nio.FloatBuffer; | |
import java.nio.IntBuffer; | |
import java.nio.channels.Channel; | |
import java.util.HashMap; | |
import java.util.logging.Handler; | |
import java.util.logging.LogRecord; | |
public class RenderAPI2d { | |
public RenderAPI2d() { | |
maps.add(upperPos1); | |
maps.add(lowerPos1); | |
maps.add(lowerPos2); | |
maps.add(upperPos2); | |
maps.add(lowerPos3); | |
maps.add(upperPos4); | |
maps.add(lowerPos4); | |
} | |
public HashMap<Entity, float[]> upperPos1 = new HashMap<>(); | |
public HashMap<Entity, float[]> lowerPos1 = new HashMap<>(); | |
public HashMap<Entity, float[]> upperPos2 = new HashMap<>(); | |
public HashMap<Entity, float[]> lowerPos2 = new HashMap<>(); | |
public HashMap<Entity, float[]> upperPos3 = new HashMap<>(); | |
public HashMap<Entity, float[]> lowerPos3 = new HashMap<>(); | |
public HashMap<Entity, float[]> upperPos4 = new HashMap<>(); | |
public HashMap<Entity, float[]> lowerPos4 = new HashMap<>(); | |
public java.util.ArrayList<HashMap<Entity, float[]>> maps = new java.util.ArrayList<>(); | |
public boolean shouldConvert2d; | |
public void on3dRender() { | |
if(!this.shouldConvert2d){ | |
return; | |
}else{ | |
this.shouldConvert2d = false; | |
} | |
for(HashMap m : this.maps){ | |
m.clear(); | |
} | |
for (Object objectEntity : Minecraft.getMinecraft().theWorld.loadedEntityList) { | |
Entity entity = (Entity) objectEntity; | |
if (entity instanceof EntityPlayer && entity != Minecraft.getMinecraft().thePlayer) { | |
double pX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double) Minecraft.getMinecraft().timer.renderPartialTicks - RenderManager.renderPosX; | |
double pY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double) Minecraft.getMinecraft().timer.renderPartialTicks - RenderManager.renderPosY; | |
double pZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double) Minecraft.getMinecraft().timer.renderPartialTicks - RenderManager.renderPosZ; | |
convert2d(entity, pX, pY, pZ, 0.1F, 1.0F, 0.1F, 0.7F); | |
} | |
} | |
} | |
public float[] getBoundingBoxes(Entity e) { | |
if (this.upperPos1.containsKey(e) && (upperPos1.get(e)[2] >= 0 && upperPos1.get(e)[2] < 1) ) { | |
float xu1 = upperPos1.get(e)[0]; | |
float yu1 = upperPos1.get(e)[1]; | |
float xu2 = upperPos2.get(e)[0]; | |
float yu2 = upperPos2.get(e)[1]; | |
float xu3 = upperPos3.get(e)[0]; | |
float yu3 = upperPos3.get(e)[1]; | |
float xu4 = upperPos4.get(e)[0]; | |
float yu4 = upperPos4.get(e)[1]; | |
float xl1 = lowerPos1.get(e)[0]; | |
float yl1 = lowerPos1.get(e)[1]; | |
float xl2 = lowerPos2.get(e)[0]; | |
float yl2 = lowerPos2.get(e)[1]; | |
float xl3 = lowerPos3.get(e)[0]; | |
float yl3 = lowerPos3.get(e)[1]; | |
float xl4 = lowerPos4.get(e)[0]; | |
float yl4 = lowerPos4.get(e)[1]; | |
float highestY = -Integer.MAX_VALUE; | |
float lowestY = Integer.MAX_VALUE; | |
float highestX = -Integer.MAX_VALUE; | |
float lowestX = Integer.MAX_VALUE; | |
//HIGHESTX; | |
if (xu1 > highestX) { | |
highestX = xu1; | |
} | |
if (xu2 > highestX) { | |
highestX = xu2; | |
} | |
if (xu3 > highestX) { | |
highestX = xu3; | |
} | |
if (xu4 > highestX) { | |
highestX = xu4; | |
} | |
if (xl1 > highestX) { | |
highestX = xl1; | |
} | |
if (xl2 > highestX) { | |
highestX = xl2; | |
} | |
if (xl3 > highestX) { | |
highestX = xl3; | |
} | |
if (xl4 > highestX) { | |
highestX = xl4; | |
} | |
//LOWESTX | |
if (xu1 < lowestX) { | |
lowestX = xu1; | |
} | |
if (xu2 < lowestX) { | |
lowestX = xu2; | |
} | |
if (xu3 < lowestX) { | |
lowestX = xu3; | |
} | |
if (xu4 < lowestX) { | |
lowestX = xu4; | |
} | |
if (xl1 < lowestX) { | |
lowestX = xl1; | |
} | |
if (xl2 < lowestX) { | |
lowestX = xl2; | |
} | |
if (xl3 < lowestX) { | |
lowestX = xl3; | |
} | |
if (xl4 < lowestX) { | |
lowestX = xl4; | |
} | |
//HIGHESTY; | |
if (yu1 > highestY) { | |
highestY = yu1; | |
} | |
if (yu2 > highestY) { | |
highestY = yu2; | |
} | |
if (yu3 > highestY) { | |
highestY = yu3; | |
} | |
if (yu4 > highestY) { | |
highestY = yu4; | |
} | |
if (yl1 > highestY) { | |
highestY = yl1; | |
} | |
if (yl2 > highestY) { | |
highestY = yl2; | |
} | |
if (yl3 > highestY) { | |
highestY = yl3; | |
} | |
if (yl4 > highestY) { | |
highestY = yl4; | |
} | |
//LOWESTY | |
if (yu1 < lowestY) { | |
lowestY = yu1; | |
} | |
if (yu2 < lowestY) { | |
lowestY = yu2; | |
} | |
if (yu3 < lowestY) { | |
lowestY = yu3; | |
} | |
if (yu4 < lowestY) { | |
lowestY = yu4; | |
} | |
if (yl1 < lowestY) { | |
lowestY = yl1; | |
} | |
if (yl2 < lowestY) { | |
lowestY = yl2; | |
} | |
if (yl3 < lowestY) { | |
lowestY = yl3; | |
} | |
if (yl4 < lowestY) { | |
lowestY = yl4; | |
} | |
return new float[]{highestX, highestY, lowestX, lowestY}; | |
} | |
return new float[]{0, 0, 0, 0}; | |
} | |
public float getHighestX(Entity entity) { | |
return this.getBoundingBoxes(entity)[0]; | |
} | |
public float getLowestX(Entity entity) { | |
return this.getBoundingBoxes(entity)[2]; | |
} | |
public float getHighestY(Entity entity) { | |
return this.getBoundingBoxes(entity)[1]; | |
} | |
public float getLowestY(Entity entity) { | |
return this.getBoundingBoxes(entity)[3]; | |
} | |
public void rectTexture(float x, float y, float w, float h, Texture texture, int color) { | |
if (texture == null) { | |
return; | |
} | |
GlStateManager.color(0, 0, 0); | |
GL11.glColor4f(0, 0, 0, 0); | |
x = Math.round(x); | |
w = Math.round(w); | |
y = Math.round(y); | |
h = Math.round(h); | |
float var11 = (float) (color >> 24 & 255) / 255.0F; | |
float var6 = (float) (color >> 16 & 255) / 255.0F; | |
float var7 = (float) (color >> 8 & 255) / 255.0F; | |
float var8 = (float) (color & 255) / 255.0F; | |
GlStateManager.enableBlend(); | |
GlStateManager.func_179090_x(); | |
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); | |
GlStateManager.color(var6, var7, var8, var11); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glEnable(GL11.GL_TEXTURE_2D); | |
texture.bind(); | |
float tw = (w / texture.getTextureWidth()) / (w / texture.getImageWidth()); | |
float th = (h / texture.getTextureHeight()) / (h / texture.getImageHeight()); | |
GL11.glBegin(GL11.GL_QUADS); | |
GL11.glTexCoord2f(0, 0); | |
GL11.glVertex2f(x, y); | |
GL11.glTexCoord2f(0, th); | |
GL11.glVertex2f(x, y + h); | |
GL11.glTexCoord2f(tw, th); | |
GL11.glVertex2f(x + w, y + h); | |
GL11.glTexCoord2f(tw, 0); | |
GL11.glVertex2f(x + w, y); | |
GL11.glEnd(); | |
GL11.glDisable(GL11.GL_TEXTURE_2D); | |
GL11.glDisable(GL11.GL_BLEND); | |
GlStateManager.func_179098_w(); | |
GlStateManager.disableBlend(); | |
} | |
public void convert2d(Entity e, double posX, double posY, double posZ, float alpha, float red, float green, float blue) { | |
if (e == Minecraft.getMinecraft().thePlayer) { | |
return; | |
} | |
//TODO UPPER POSITIONS | |
float[] upcoords1 = this.getScreenCoords(posX + e.width / 1.9, posY + e.height + 0.1, posZ - e.width / 1.9); | |
float[] upcoords2 = this.getScreenCoords(posX + e.width / 1.9, posY + e.height + 0.1, posZ + e.width / 1.9); | |
float[] upcoords3 = this.getScreenCoords(posX - e.width / 1.9, posY + e.height + 0.1, posZ - e.width / 1.9); | |
float[] upcoords4 = this.getScreenCoords(posX - e.width / 1.9, posY + e.height + 0.1, posZ + e.width / 1.9); | |
upperPos1.put(e, upcoords1); | |
upperPos2.put(e, upcoords2); | |
upperPos3.put(e, upcoords3); | |
upperPos4.put(e, upcoords4); | |
//TODO LOWER POSITIONS | |
float[] lowcoords1 = this.getScreenCoords(posX + e.width / 1.9, posY, posZ - e.width / 1.9); | |
float[] lowcoords2 = this.getScreenCoords(posX + e.width / 1.9, posY, posZ + e.width / 1.9); | |
float[] lowcoords3 = this.getScreenCoords(posX - e.width / 1.9, posY, posZ - e.width / 1.9); | |
float[] lowcoords4 = this.getScreenCoords(posX - e.width / 1.9, posY, posZ + e.width / 1.9); | |
lowerPos1.put(e, lowcoords1); | |
lowerPos2.put(e, lowcoords2); | |
lowerPos3.put(e, lowcoords3); | |
lowerPos4.put(e, lowcoords4); | |
// } | |
} | |
public float[] getScreenCoords(double x, double y, double z) { | |
FloatBuffer screenCoords = BufferUtils.createFloatBuffer(3); | |
IntBuffer viewport = BufferUtils.createIntBuffer(16); | |
FloatBuffer modelView = BufferUtils.createFloatBuffer(16); | |
FloatBuffer projection = BufferUtils.createFloatBuffer(16); | |
GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, modelView); | |
GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, projection); | |
GL11.glGetInteger(GL11.GL_VIEWPORT, viewport); | |
boolean result = GLU.gluProject((float) x, (float) y, (float) z, modelView, projection, viewport, screenCoords); | |
ScaledResolution sr = new ScaledResolution(); | |
if (result) { | |
return new float[]{screenCoords.get(0) / sr.getScaleFactor(), sr.getScaledHeight() - screenCoords.get(1) / sr.getScaleFactor(), screenCoords.get(2)}; | |
} | |
return null; | |
} | |
public static HashMap<Category,Texture> getTextureForCategory = new HashMap<Category,Texture>(); | |
public static void loadTextures() { | |
try { | |
Texture iconPlayer = TextureLoader.getTexture("PNG", Main.getMain.getClass().getClassLoader().getResourceAsStream("assets/night/clickgui/hacks/player.png")); | |
textureShutDown= TextureLoader.getTexture("PNG", Main.getMain.getClass().getClassLoader().getResourceAsStream("assets/night/clickgui/hacks/exit.png")); | |
getTextureForCategory.put(Category.PLAYER,iconPlayer); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
public static Texture textureShutDown; | |
public static void drawTexture(Texture texture, float x, float y, float width, float height) { | |
GL11.glPushMatrix(); | |
GL11.glEnable(GL11.GL_BLEND); | |
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); | |
// GL11.glScalef(0.25F, 0.25F, 0.25F); | |
// Minecraft.getMinecraft().getTextureManager().bindTexture(Minecraft.getMinecraft().fontRendererObj.locationFontTextureBase); | |
// TextureImpl.bindNone(); | |
float tw = (width / texture.getTextureWidth()) / (width / texture.getImageWidth()); | |
float th = (height/texture.getTextureHeight()) / (height / texture.getImageHeight()); | |
texture.bind(); | |
GL11.glBegin(GL11.GL_QUADS); | |
GL11.glTexCoord2f(0, 0); | |
GL11.glVertex2f(x, y); | |
GL11.glTexCoord2f(0, th); | |
GL11.glVertex2f(x, y + height); | |
GL11.glTexCoord2f(tw, th); | |
GL11.glVertex2f(x + width, y + height); | |
GL11.glTexCoord2f(tw, 0); | |
GL11.glVertex2f(x + width, y); | |
GL11.glEnd(); | |
GL11.glDisable(GL11.GL_BLEND); | |
GL11.glPopMatrix(); | |
} | |
} |
package de.Client.Utils; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.entity.projectile.EntitySnowball; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.MathHelper; | |
public class RotationUtil { | |
private static Minecraft mc = Minecraft.getMinecraft(); | |
public static float[] getYawAndPitch(Entity entity) { | |
double posX = entity.posX; | |
double n = posX - mc.thePlayer.posX; | |
double posZ = entity.posZ; | |
double n2 = posZ - mc.thePlayer.posZ; | |
return new float[] { (float) (Math.atan2(n2, n) * 180.0D / 3.141592653589793D) - 90.0F, | |
(float) (Math.atan2(mc.thePlayer.posY + 0.12D - (entity.posY + 1.82D), MathHelper.sqrt_double(n + n2)) | |
* 180.0D / 3.141592653589793D) }; | |
} | |
public static float getDistanceBetweenAngles(float paramFloat) { | |
float n = Math.abs(paramFloat - mc.thePlayer.rotationYaw) % 360.0F; | |
if (n > 180.0F) { | |
n = 360.0F - n; | |
} | |
return n; | |
} | |
public static float[] getEntityRotations(EntityPlayer player, Entity target) { | |
double posX = target.posX - player.posX; | |
double posY = target.posY + target.getEyeHeight() - (player.posY + player.getEyeHeight()); | |
double posZ = target.posZ - player.posZ; | |
double var14 = MathHelper.sqrt_double(posX * posX + posZ * posZ); | |
float yaw = (float) (Math.atan2(posZ, posX) * 180.0D / 3.141592653589793D) - 90.0F; | |
float pitch = (float) -(Math.atan2(posY, var14) * 180.0D / 3.141592653589793D); | |
return new float[] { yaw, pitch }; | |
} | |
public static float getPitchChangeToEntity(Entity entity) { | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double deltaY = entity.posY - 1.6D + entity.getEyeHeight() - mc.thePlayer.posY; | |
double distanceXZ = MathHelper.sqrt_double(deltaX * deltaX + deltaZ * deltaZ); | |
double pitchToEntity = -Math.toDegrees(Math.atan(deltaY / distanceXZ)); | |
return -MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationPitch - (float) pitchToEntity); | |
} | |
public static float[] getAngles(Entity e) { | |
return new float[] { getYawChangeToEntity(e) + mc.thePlayer.rotationYaw, | |
getPitchChangeToEntity(e) + mc.thePlayer.rotationPitch }; | |
} | |
public static float getYawChangeToEntity(Entity entity) { | |
double deltaX = entity.posX - mc.thePlayer.posX; | |
double deltaZ = entity.posZ - mc.thePlayer.posZ; | |
double yawToEntity; | |
if ((deltaZ < 0.0D) && (deltaX < 0.0D)) { | |
yawToEntity = 90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} else { | |
if ((deltaZ < 0.0D) && (deltaX > 0.0D)) { | |
yawToEntity = -90.0D + Math.toDegrees(Math.atan(deltaZ / deltaX)); | |
} else { | |
yawToEntity = Math.toDegrees(-Math.atan(deltaX / deltaZ)); | |
} | |
} | |
return MathHelper.wrapAngleTo180_float(-(mc.thePlayer.rotationYaw - (float) yawToEntity)); | |
} | |
public static float[] getFacingRotations(int x, int y, int z, EnumFacing facing) { | |
Entity temp = new EntitySnowball(mc.theWorld); | |
temp.posX = (x + 0.5D); | |
temp.posY = (y + 0.5D); | |
temp.posZ = (z + 0.5D); | |
temp.posX += facing.getDirectionVec().getX() * 0.25D; | |
temp.posY += facing.getDirectionVec().getY() * 0.25D; | |
temp.posZ += facing.getDirectionVec().getZ() * 0.25D; | |
return getAngles(temp); | |
} | |
public static float[] getRotationFromPosition(double x, double z, double y) { | |
Minecraft.getMinecraft(); | |
double xDiff = x - Minecraft.getMinecraft().thePlayer.posX; | |
Minecraft.getMinecraft(); | |
double zDiff = z - Minecraft.getMinecraft().thePlayer.posZ; | |
Minecraft.getMinecraft(); | |
Minecraft.getMinecraft(); | |
double yDiff = y - Minecraft.getMinecraft().thePlayer.posY + Minecraft.getMinecraft().thePlayer.getEyeHeight(); | |
double dist = MathHelper.sqrt_double(xDiff * xDiff + zDiff * zDiff); | |
float yaw = (float) (Math.atan2(zDiff, xDiff) * 180.0D / 3.141592653589793D) - 90.0F; | |
float pitch = (float) -(Math.atan2(yDiff, dist) * 180.0D / 3.141592653589793D); | |
return new float[] { yaw, pitch }; | |
} | |
public static float[] getRotations(Entity ent) { | |
double x = ent.posX; | |
double z = ent.posZ; | |
double y = ent.boundingBox.maxY - 4.5D; | |
return getRotationFromPosition(x, z, y); | |
} | |
public static float getDistanceBetweenAngles(float angle1, float angle2) { | |
float angle = Math.abs(angle1 - angle2) % 360.0F; | |
if (angle > 180.0F) { | |
angle = 360.0F - angle; | |
} | |
return angle; | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Main; | |
import de.Client.Main.Modules.mods.Render.BetterOverlay; | |
import net.minecraft.client.resources.IResourceManager; | |
import net.minecraft.util.ResourceLocation; | |
import java.io.ByteArrayInputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.util.HashMap; | |
import java.util.Map; | |
import java.util.Scanner; | |
public class ShaderResourcepack{ | |
private final Map<ResourceLocation, String> loadedData; | |
public ShaderResourcepack() { | |
this.loadedData = new HashMap<ResourceLocation, String>(); | |
} | |
public void func_110549_a(final IResourceManager resourceManager) { | |
this.loadedData.clear(); | |
} | |
public InputStream func_110590_a(final ResourceLocation location) throws IOException { | |
// final InputStream in; | |
final String s = this.loadedData.computeIfAbsent(location, loc -> { | |
final InputStream in = BetterOverlay.class.getResourceAsStream("/" + location.getResourceDomain()); | |
final StringBuilder data = new StringBuilder(); | |
final Scanner scan = new Scanner(in); | |
try { | |
while (scan.hasNextLine()) { | |
BetterOverlay b = (BetterOverlay) Main.getMain.moduleManager.getModule(BetterOverlay.class); | |
data.append(scan.nextLine().replaceAll("@radius@", Integer.toString(b.radius))).append('\n'); | |
} | |
} | |
finally { | |
scan.close(); | |
} | |
return data.toString(); | |
}); | |
return new ByteArrayInputStream(s.getBytes()); | |
} | |
} |
package de.Client.Utils; | |
import de.Client.Main.Modules.Category; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class TabGui { | |
public TabGui(){ | |
} | |
public TabGui getTabGui() { | |
return this; | |
} | |
public void upKey() { | |
} | |
public void downKey() { | |
} | |
public void rightKey() { | |
} | |
public void leftKey() { | |
} | |
public void returnKey() { | |
} | |
public void drawTabGui() { | |
} | |
public void upDateAnimations(){ | |
} | |
} |
package de.Client.Utils; | |
public class TimeHelper { | |
private long lastMS = 0L; | |
public boolean isDelayComplete(long delay) { | |
return System.currentTimeMillis() - this.lastMS >= delay; | |
} | |
public void setLastMS(long lastMS) { | |
this.lastMS = lastMS; | |
} | |
public void setLastMS() { | |
this.lastMS = System.currentTimeMillis(); | |
} | |
public int convertToMS(int perSecond) { | |
return 1000 / perSecond; | |
} | |
public long getCurrentMS() { | |
return System.nanoTime() / 1000000L; | |
} | |
public double hasreachednow(){ | |
return getCurrentMS() - this.lastMS; | |
} | |
public boolean hasReached(long milliseconds) { | |
return getCurrentMS() - this.lastMS >= milliseconds; | |
} | |
public void reset() { | |
this.lastMS = getCurrentMS(); | |
} | |
// NEU | |
public long getTime() { | |
return System.nanoTime() / 1000000L; | |
} | |
public boolean delay(double d) { | |
if (getTime() - getLastMS() >= d) { | |
reset(); | |
return true; | |
} | |
return false; | |
} | |
public long getLastMS() { | |
return this.lastMS; | |
} | |
public final void updateLastMS() { | |
this.lastMS = System.currentTimeMillis(); | |
} | |
} |
package de.Client.Utils; | |
/** | |
* Created by Daniel on 13.07.2017. | |
*/ | |
public class Watermark { | |
public Watermark(){ | |
} | |
public double getHeight(){ | |
return 0; | |
} | |
public void drawWaterMark(double scaledX,double scaledY){ | |
} | |
} |
Manifest-Version: 1.0 | |
Main-Class: net.minecraft.client.main; | |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "black_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "black_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "black_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "black_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "black_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "black_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "black_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "black_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "black_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "black_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "black_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "black_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "black_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "black_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "black_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "black_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "blue_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "blue_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "blue_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "blue_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "blue_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "blue_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "blue_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "blue_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "blue_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "blue_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "blue_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "blue_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "blue_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "blue_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "blue_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "blue_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "brown_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "brown_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "brown_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "brown_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "brown_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "brown_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "brown_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "brown_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "brown_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "brown_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "brown_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "brown_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "brown_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "brown_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "brown_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "brown_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "cyan_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "cyan_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "cyan_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "cyan_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "cyan_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "cyan_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "cyan_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "cyan_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "cyan_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "cyan_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "cyan_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "cyan_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "cyan_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "cyan_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "cyan_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "cyan_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "gray_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "gray_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "gray_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "gray_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "gray_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "gray_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "gray_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "gray_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "gray_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "gray_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "gray_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "gray_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "gray_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "gray_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "gray_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "gray_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "green_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "green_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "green_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "green_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "green_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "green_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "green_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "green_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "green_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "green_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "green_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "green_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "green_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "green_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "green_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "green_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "light_blue_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "light_blue_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "light_blue_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "light_blue_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "light_blue_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "light_blue_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "light_blue_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "light_blue_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "light_blue_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "light_blue_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "light_blue_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "light_blue_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "light_blue_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "light_blue_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "light_blue_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "light_blue_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "lime_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "lime_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "lime_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "lime_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "lime_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "lime_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "lime_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "lime_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "lime_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "lime_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "lime_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "lime_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "lime_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "lime_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "lime_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "lime_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "magenta_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "magenta_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "magenta_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "magenta_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "magenta_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "magenta_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "magenta_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "magenta_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "magenta_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "magenta_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "magenta_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "magenta_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "magenta_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "magenta_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "magenta_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "magenta_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "orange_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "orange_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "orange_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "orange_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "orange_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "orange_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "orange_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "orange_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "orange_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "orange_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "orange_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "orange_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "orange_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "orange_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "orange_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "orange_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "pink_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "pink_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "pink_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "pink_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "pink_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "pink_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "pink_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "pink_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "pink_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "pink_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "pink_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "pink_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "pink_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "pink_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "pink_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "pink_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "purple_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "purple_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "purple_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "purple_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "purple_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "purple_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "purple_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "purple_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "purple_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "purple_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "purple_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "purple_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "purple_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "purple_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "purple_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "purple_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "red_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "red_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "red_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "red_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "red_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "red_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "red_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "red_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "red_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "red_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "red_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "red_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "red_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "red_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "red_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "red_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "silver_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "silver_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "silver_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "silver_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "silver_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "silver_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "silver_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "silver_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "silver_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "silver_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "silver_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "silver_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "silver_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "silver_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "silver_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "silver_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "white_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "white_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "white_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "white_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "white_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "white_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "white_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "white_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "white_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "white_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "white_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "white_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "white_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "white_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "white_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "white_pane_nsew" } | |
} | |
} |
{ | |
"variants": { | |
"east=false,north=false,south=false,west=false": { "model": "yellow_pane_nsew" }, | |
"east=false,north=true,south=false,west=false": { "model": "yellow_pane_n" }, | |
"east=true,north=false,south=false,west=false": { "model": "yellow_pane_n", "y": 90 }, | |
"east=false,north=false,south=true,west=false": { "model": "yellow_pane_n", "y": 180 }, | |
"east=false,north=false,south=false,west=true": { "model": "yellow_pane_n", "y": 270 }, | |
"east=true,north=true,south=false,west=false": { "model": "yellow_pane_ne" }, | |
"east=true,north=false,south=true,west=false": { "model": "yellow_pane_ne", "y": 90 }, | |
"east=false,north=false,south=true,west=true": { "model": "yellow_pane_ne", "y": 180 }, | |
"east=false,north=true,south=false,west=true": { "model": "yellow_pane_ne", "y": 270 }, | |
"east=false,north=true,south=true,west=false": { "model": "yellow_pane_ns" }, | |
"east=true,north=false,south=false,west=true": { "model": "yellow_pane_ns", "y": 90 }, | |
"east=true,north=true,south=true,west=false": { "model": "yellow_pane_nse" }, | |
"east=true,north=false,south=true,west=true": { "model": "yellow_pane_nse", "y": 90 }, | |
"east=false,north=true,south=true,west=true": { "model": "yellow_pane_nse", "y": 180 }, | |
"east=true,north=true,south=false,west=true": { "model": "yellow_pane_nse", "y": 270 }, | |
"east=true,north=true,south=true,west=true": { "model": "yellow_pane_nsew" } | |
} | |
} |
# Stained glass white | |
matchBlocks=160 | |
metadata=0 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass white | |
matchBlocks=95 | |
metadata=0 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass purple | |
matchBlocks=160 | |
metadata=10 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass purple | |
matchBlocks=95 | |
metadata=10 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass blue | |
matchBlocks=95 | |
metadata=11 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass blue | |
matchBlocks=160 | |
metadata=11 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass brown | |
matchBlocks=95 | |
metadata=12 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass brown | |
matchBlocks=160 | |
metadata=12 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass green | |
matchBlocks=95 | |
metadata=13 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass green | |
matchBlocks=160 | |
metadata=13 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass red | |
matchBlocks=160 | |
metadata=14 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass red | |
matchBlocks=95 | |
metadata=14 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass black | |
matchBlocks=95 | |
metadata=15 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass black | |
matchBlocks=160 | |
metadata=15 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass orange | |
matchBlocks=95 | |
metadata=1 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass orange | |
matchBlocks=160 | |
metadata=1 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass magenta | |
matchBlocks=95 | |
metadata=2 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass magenta | |
matchBlocks=160 | |
metadata=2 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass light_blue | |
matchBlocks=95 | |
metadata=3 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass light_blue | |
matchBlocks=160 | |
metadata=3 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass yellow | |
matchBlocks=160 | |
metadata=4 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass yellow | |
matchBlocks=95 | |
metadata=4 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass lime | |
matchBlocks=95 | |
metadata=5 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass lime | |
matchBlocks=160 | |
metadata=5 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass pink | |
matchBlocks=160 | |
metadata=6 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass pink | |
matchBlocks=95 | |
metadata=6 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass gray | |
matchBlocks=95 | |
metadata=7 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass gray | |
matchBlocks=160 | |
metadata=7 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass silver | |
matchBlocks=160 | |
metadata=8 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass silver | |
matchBlocks=95 | |
metadata=8 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass cyan | |
matchBlocks=95 | |
metadata=9 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Stained glass cyan | |
matchBlocks=160 | |
metadata=9 | |
connect=block | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 |
# Converted from /ctm.png | |
# Individual tiles are in /ctm/default | |
matchBlocks=47 | |
method=horizontal | |
tiles=12-15 | |
connect=block |
# Converted from /ctm.png | |
# Individual tiles are in /ctm/default | |
matchBlocks=20 | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 | |
connect=block |
# Converted from /ctm.png | |
# Individual tiles are in /ctm/default | |
matchBlocks=102 | |
method=ctm | |
tiles=0-11 16-27 32-43 48-58 | |
connect=block |
# Converted from /ctm.png | |
# Individual tiles are in /ctm/default | |
matchTiles=sandstone_normal | |
metadata=0 | |
method=top | |
tiles=66 | |
connect=tile |
{ | |
"ambientocclusion": false, | |
"textures": { | |
"particle": "#pane" | |
}, | |
"elements": [ | |
{ "from": [ 7, 0, 0 ], | |
"to": [ 9, 16, 9 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 0, 9, 9 ], "texture": "#edge" }, | |
"up": { "uv": [ 7, 0, 9, 9 ], "texture": "#edge" }, | |
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" }, | |
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"west": { "uv": [ 0, 0, 9, 16 ], "texture": "#pane" }, | |
"east": { "uv": [ 7, 0, 16, 16 ], "texture": "#pane" } | |
} | |
} | |
] | |
} |
{ | |
"ambientocclusion": false, | |
"textures": { | |
"particle": "#pane" | |
}, | |
"elements": [ | |
{ "from": [ 7, 0, 0 ], | |
"to": [ 9, 16, 9 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 0, 9, 9 ], "texture": "#edge" }, | |
"up": { "uv": [ 7, 0, 9, 9 ], "texture": "#edge" }, | |
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" }, | |
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"west": { "uv": [ 0, 0, 9, 16 ], "texture": "#pane" }, | |
"east": { "uv": [ 7, 0, 16, 16 ], "texture": "#pane" } | |
} | |
}, | |
{ "from": [ 9, 0, 7 ], | |
"to": [ 16, 16, 9 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 9, 9, 16 ], "rotation": 90, "texture": "#edge" }, | |
"up": { "uv": [ 7, 9, 9, 16 ], "rotation": 90, "texture": "#edge" }, | |
"north": { "uv": [ 0, 0, 7, 16 ], "texture": "#pane" }, | |
"south": { "uv": [ 9, 0, 16, 16 ], "texture": "#pane" }, | |
"west": { "uv": [ 7, 0, 9, 16 ], "texture": "#pane" }, | |
"east": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "east" } | |
} | |
} | |
] | |
} |
{ | |
"ambientocclusion": false, | |
"textures": { | |
"particle": "#pane" | |
}, | |
"elements": [ | |
{ "from": [ 7, 0, 0 ], | |
"to": [ 9, 16, 16 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cull": false }, | |
"up": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cull": false }, | |
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#pane", "cull": false }, | |
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#pane", "cull": false } | |
} | |
} | |
] | |
} |
{ | |
"ambientocclusion": false, | |
"textures": { | |
"particle": "#pane" | |
}, | |
"elements": [ | |
{ "from": [ 7, 0, 0 ], | |
"to": [ 9, 16, 16 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"up": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" }, | |
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south" }, | |
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#pane" }, | |
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#pane" } | |
} | |
}, | |
{ "from": [ 9, 0, 7 ], | |
"to": [ 16, 16, 9 ], | |
"shade": false, | |
"faces": { | |
"down": { "uv": [ 7, 9, 9, 16 ], "rotation": 90, "texture": "#edge" }, | |
"up": { "uv": [ 7, 9, 9, 16 ], "rotation": 90, "texture": "#edge" }, | |
"north": { "uv": [ 0, 0, 7, 16 ], "texture": "#pane" }, | |
"south": { "uv": [ 9, 0, 16, 16 ], "texture": "#pane" }, | |
"west": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge" }, | |
"east": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "east" } | |
} | |
} | |
] | |
} |
# Hlavní | |
of.general.ambiguous=dvojznačný | |
of.general.custom=Vlastní | |
of.general.from=Z | |
of.general.id=Id | |
of.general.restart=restart | |
of.general.smart=Chytrá | |
# Klávesy | |
of.key.zoom=Přiblížení | |
# Zprávy | |
of.message.aa.shaders1=Antialiasing není kompatibilní se Stíny. | |
of.message.aa.shaders2=Prosím vypni Stíny pro použití téhle možnosti. | |
of.message.af.shaders1=Anizotropní Filtrování není kompatibilní se Stíny | |
of.message.af.shaders2=Prosím vypni Stíny pro použití téhle možnosti. | |
of.message.fr.shaders1=Rychlý Render není kompatibilní se stíny. | |
of.message.fr.shaders2=Prosím vypni Stíny pro použití téhle možnosti | |
of.message.shaders.aa1=Stíny nejsou kompatibilní s Antialiasingem | |
of.message.shaders.aa2=Jdi do nastavení Kvality -> Antialiasing na vypnuto. | |
of.message.shaders.af1=Stíny nejsou kompatibilní s Anizotropním Filtrováním. | |
of.message.shaders.af2=Jdi do nastavení Kvality -> Anizotropní Filtrování na vypnuto. | |
of.message.shaders.fr1=Stíny nejsou komoatibilní s Rychlým Renderem. | |
of.message.shaders.fr2=Jdi do nastavení Výkonu -> Rychlý Render na vypnuto. | |
of.message.newVersion=Nová verze §eOptiFinu§f je k dispozici: §e%s§f | |
of.message.java64Bit=Můžeš si nainstalovat §e64-bitovou Javu§f pro zvýšení výkonu | |
of.message.openglError=§eChyba OpenGL§f: %s (%s) | |
of.message.shaders.loading=Načítám stíny: %s | |
of.message.other.reset=Vyresetovat všechno nastavení videa (grafiky) na výchozí hodnoty? | |
# Nastavení Grafiky | |
options.graphics.tooltip.1=Vizuální kvality | |
options.graphics.tooltip.2= Rychlá - nižší kvalita, rychlejší | |
options.graphics.tooltip.3= Pěkná - vyšší kvalita, pomalejší | |
options.graphics.tooltip.4=Mění vzhled mraků, listí, vody, | |
options.graphics.tooltip.5=stínů a stran trávníků. | |
of.options.renderDistance.extreme=Extrémní | |
options.renderDistance.tooltip.1=Viditelná vzdálenost | |
options.renderDistance.tooltip.2= 2 Maličká - 32m (nejrychlejší) | |
options.renderDistance.tooltip.3= 4 Malá - 64m (rychlejší) | |
options.renderDistance.tooltip.4= 8 Normální - 128m | |
options.renderDistance.tooltip.5= 16 Velká - 256m (pomalejší) | |
options.renderDistance.tooltip.6= 32 Extrémní - 512m (nejpomalejší!) | |
options.renderDistance.tooltip.7=Extrémní Viditelná vzdálenost je velmi výkonově náročná! | |
options.renderDistance.tooltip.8=Hodnoty nad 16 Velká jsou pouze pro lokální světy. | |
options.ao.tooltip.1=Vyhlazené osvětlení. | |
options.ao.tooltip.2= VYPNUTO - žádné vyhlazené osvětlení (rychlé) | |
options.ao.tooltip.3= Minimální - jednoduché vyhlazené osvětlení (pomalejší) | |
options.ao.tooltip.4= Maximální - kompletně vyhlazené osvětlení (nejpomalejší) | |
options.framerateLimit.tooltip.1=Maximální FPS | |
options.framerateLimit.tooltip.2= VSync - limitované pro max počet FPS pro monitor (60, 30, 20) | |
options.framerateLimit.tooltip.3= 5-255 - nastavitelné | |
options.framerateLimit.tooltip.4= Neomezené - bez limitu (nejrychlejší) | |
options.framerateLimit.tooltip.5=FPS nepřekročí | |
options.framerateLimit.tooltip.6=stanovenou hondotu. | |
of.options.framerateLimit.vsync=VSync | |
of.options.AO_LEVEL=Úroveň Vyhlazeného Osvětlení | |
of.options.AO_LEVEL.tooltip.1=Úroveň vyhlazeného osvětlení | |
of.options.AO_LEVEL.tooltip.2= VYPNUTO - žádné stíny | |
of.options.AO_LEVEL.tooltip.3= 50%% - světlé stíny | |
of.options.AO_LEVEL.tooltip.4= 100%% - tmavé stíny | |
options.viewBobbing.tooltip.1=Více realistický pohyb | |
options.viewBobbing.tooltip.2=Pokud používáš mipmapu, nastav na VYPNUTO pro nejlepší výsledky. | |
options.guiScale.tooltip.1=Velikost GUI | |
options.guiScale.tooltip.2=Menší GUI mohou být rychlejší. | |
options.vbo.tooltip.1=Vertexově Vyrovnávající objekty | |
options.vbo.tooltip.2=Používá alternativní model renderování, který je | |
options.vbo.tooltip.3=rychlejší (5-10%%) oproti výchozímu renderování. | |
options.gamma.tooltip.1=Zvýší jas tmavých objektů | |
options.gamma.tooltip.2= Tmavý - standardní jas | |
options.gamma.tooltip.3= 1-99%% - nastavitelné | |
options.gamma.tooltip.4= Světlé - maximální jas tmavých objektů | |
options.gamma.tooltip.5=Tato možnost nezmění jas | |
options.gamma.tooltip.6=úplně tmavých objektů. | |
options.anaglyph.tooltip.1=3D Zobrazení | |
options.anaglyph.tooltip.2=Zapne stereoskopické 3D, které používá každé barvy | |
options.anaglyph.tooltip.3=pro každé oko. | |
options.anaglyph.tooltip.4=Vyžaduje červeno-modré brýle pro lepší vidění. | |
of.options.ALTERNATE_BLOCKS=Alternativní Bloky | |
options.blockAlternatives.tooltip.1=Alternativní Bloky | |
options.blockAlternatives.tooltip.2=Používá alternativní model bloku pro některé modely. | |
options.blockAlternatives.tooltip.3=Záleží na vybraném balíčku zdrojů. | |
of.options.FOG_FANCY=Mlha | |
of.options.FOG_FANCY.tooltip.1=Typ mlhy | |
of.options.FOG_FANCY.tooltip.2= Rychlá - rychlejší mlha | |
of.options.FOG_FANCY.tooltip.3= Pěkná - pomalejší mlha, vypadá pěkněji | |
of.options.FOG_FANCY.tooltip.4= VYPNUTO - žádná mlha, rychlejší | |
of.options.FOG_FANCY.tooltip.5=Pěkná mlha se aktivuje jen když je podporována | |
of.options.FOG_FANCY.tooltip.6=grafickou kartou. | |
of.options.FOG_START=Začátek Mlhy | |
of.options.FOG_START.tooltip.1=Start Mlhy | |
of.options.FOG_START.tooltip.2= 0.2 - mlha začne přímo u hráče | |
of.options.FOG_START.tooltip.3= 0.8 - mlha začne daleko od hráče | |
of.options.FOG_START.tooltip.4=Tato možnost většinou neovlivňuje výkon. | |
of.options.CHUNK_LOADING=Načítaní Chunků | |
of.options.CHUNK_LOADING.tooltip.1= Načítaní Chunků | |
of.options.CHUNK_LOADING.tooltip.2= Výchozí - nestabilní FPS při načítání chunků | |
of.options.CHUNK_LOADING.tooltip.3= Pllynulé - stabilní FPS | |
of.options.CHUNK_LOADING.tooltip.4= Multi-Jádra - stabilní FPS, 3x rychlejší načítání světa | |
of.options.CHUNK_LOADING.tooltip.5=Plynulé a Multi-Jádra - odstraní sekání a | |
of.options.CHUNK_LOADING.tooltip.6=zmrazování způsobené načítáním chunků. | |
of.options.CHUNK_LOADING.tooltip.7=Multi-Jádro může 3x zrychlit načítání světa a | |
of.options.CHUNK_LOADING.tooltip.8=zvýšit FPS používáním druhého jádra. | |
of.options.chunkLoading.smooth=Plynulé | |
of.options.chunkLoading.multiCore=Multi-Jádro | |
of.options.shaders=Stíny... | |
of.options.shadersTitle=Stíny | |
of.options.shaders.packNone=VYPNUTO | |
of.options.shaders.packDefault=(vložené) | |
of.options.shaders.ANTIALIASING=Antialiasing | |
of.options.shaders.NORMAL_MAP=Normální Mapa | |
of.options.shaders.SPECULAR_MAP=Zrcadlová Mapa | |
of.options.shaders.RENDER_RES_MUL=Kvalita Renderu | |
of.options.shaders.SHADOW_RES_MUL=Kvalita Osvětlení | |
of.options.shaders.HAND_DEPTH_MUL=Ruční Hloubka | |
of.options.shaders.CLOUD_SHADOW=Stíny mraků | |
of.options.shaders.OLD_HAND_LIGHT=Staré Přední Osvětlení | |
of.options.shaders.OLD_LIGHTING=Staré Osvětlení | |
of.options.shaders.SHADER_PACK=Balíček Stínů | |
of.options.shaders.shadersFolder=Složka Stínů | |
of.options.shaders.shaderOptions=Možnosti Stínů... | |
of.options.shaderOptionsTitle=Možnosti Stínů | |
of.options.quality=Kvalita... | |
of.options.qualityTitle=Nastavení Kvality | |
of.options.details=Detaily... | |
of.options.detailsTitle=Nastavení Detailů | |
of.options.performance=Výkon... | |
of.options.performanceTitle=Nastavení Výkonu | |
of.options.animations=Animace... | |
of.options.animationsTitle=Nastavení Animací | |
of.options.other=Ostatní... | |
of.options.otherTitle=Další Nastavení | |
of.options.other.reset=Vyresetovat Nastavení Videa/Grafiky ... | |
of.shaders.profile=Profil | |
# Kvalita | |
of.options.mipmap.bilinear=Bilineání | |
of.options.mipmap.linear=Lineární | |
of.options.mipmap.nearest=Nejbližší | |
of.options.mipmap.trilinear=Trilineární | |
options.mipmapLevels.tooltip.1=Vizuální efekty mohou udělat vzdálenější objekty pěknější | |
options.mipmapLevels.tooltip.2=vyhlazováním a detailními texturami. | |
options.mipmapLevels.tooltip.3= VYPNUTO - žádné vyhlazování | |
options.mipmapLevels.tooltip.4= 1 - minimální vyhlazování | |
options.mipmapLevels.tooltip.5= 4 - maximální vyhlazování | |
options.mipmapLevels.tooltip.6=Tato možnost většinou neovlivňuje výkon. | |
of.options.MIPMAP_TYPE=Typ Mipmapy | |
of.options.MIPMAP_TYPE.tooltip.1= Vizuální efekty mohou udělat vzdálenější objekty pěknější | |
of.options.MIPMAP_TYPE.tooltip.2=vyhlazováním a detailními texturami. | |
of.options.MIPMAP_TYPE.tooltip.3= Nejbližší - hrubé vyhlazování (nejrychlejší) | |
of.options.MIPMAP_TYPE.tooltip.4= Lineární - normální vyhlazování | |
of.options.MIPMAP_TYPE.tooltip.5= Bilineární - dobré vyhlazování | |
of.options.MIPMAP_TYPE.tooltip.6= Trilineární - nejlepší vyhlazování (nejpomalejší) | |
of.options.AA_LEVEL=Antialiasing | |
of.options.AA_LEVEL.tooltip.1=Antialiasing | |
of.options.AA_LEVEL.tooltip.2= VYPNUTO - (výchozí) žádný Antialiasing (rychlé) | |
of.options.AA_LEVEL.tooltip.3= 2-16 - vyhlazované hrany a lajny (pomalé) | |
of.options.AA_LEVEL.tooltip.4=Antialiasing vyhlazuje rozviklané hrany a | |
of.options.AA_LEVEL.tooltip.5=přechody ostrých barev. | |
of.options.AA_LEVEL.tooltip.6=Pokud je zapnuto, výrazně zmenší FPS. | |
of.options.AA_LEVEL.tooltip.7=Ne všechny úrovně jsou podporované všemi grafickými kartami. | |
of.options.AA_LEVEL.tooltip.8=Efektivní po RESTARTU! | |
of.options.AF_LEVEL=Antizotropní Filtrování | |
of.options.AF_LEVEL.tooltip.1= Antizotropní Filtrování | |
of.options.AF_LEVEL.tooltip.2= VYPNUTO - (výchozí) standartní detaily textur (rychlé) | |
of.options.AF_LEVEL.tooltip.3= 2-16 - lepší detaily v mipmapovaných texturách (pomalé) | |
of.options.AF_LEVEL.tooltip.4= Antizotropní Filtrování zachová všechny detaily v | |
of.options.AF_LEVEL.tooltip.5=mipmapovaných texturách. | |
of.options.AF_LEVEL.tooltip.6=Pokud je zapnuto, výrazně sníží FPS.. | |
of.options.CLEAR_WATER=Čistá Voda | |
of.options.CLEAR_WATER.tooltip.1= Čistá Voda | |
of.options.CLEAR_WATER.tooltip.2= ZAPNUTO - čistá, průhledná voda | |
of.options.CLEAR_WATER.tooltip.3= VYPNUTO - výchozí voda | |
of.options.RANDOM_MOBS=Náhodní Mobové | |
of.options.RANDOM_MOBS.tooltip.1= Náhodní Mobové | |
of.options.RANDOM_MOBS.tooltip.2= VYPNUTO - žádní náhodní mobové, rychlejší | |
of.options.RANDOM_MOBS.tooltip.3= ZAPNUTO - náhodní mobové, pomalejší | |
of.options.RANDOM_MOBS.tooltip.4=Funkce náhodní mobové používá náhodně textury pro moby ve hře. | |
of.options.RANDOM_MOBS.tooltip.5=Vyžaduje balíček textur, který má více textur mobů. | |
of.options.BETTER_GRASS=Lepší Trávník | |
of.options.BETTER_GRASS.tooltip.1=Lepší Trávník | |
of.options.BETTER_GRASS.tooltip.2= VYPNUTO - výchozí strana trávníku, rychlejší | |
of.options.BETTER_GRASS.tooltip.3= Rychlá - plná strana trávníku, pomalejší | |
of.options.BETTER_GRASS.tooltip.4= Pěkná - dynamická strana trávníku, nepomalejší | |
of.options.BETTER_SNOW=Lepší Sníh | |
of.options.BETTER_SNOW.tooltip.1=Lepší sníh | |
of.options.BETTER_SNOW.tooltip.2= VYPNUTO - výchozí sníh, rychlejší | |
of.options.BETTER_SNOW.tooltip.3= ZAPNUTO - lepší sníh, pomalejší | |
of.options.BETTER_SNOW.tooltip.4=Zobrazuje sníh pod průhlednými bloky (plot, vysoká tráva) | |
of.options.BETTER_SNOW.tooltip.5=když sousedí se sněhovými bloky. | |
of.options.CUSTOM_FONTS=Vlastní Písmo | |
of.options.CUSTOM_FONTS.tooltip.1= Vlastní Písmo | |
of.options.CUSTOM_FONTS.tooltip.2= ZAPNUTO - používá vlastní písmo (výchozí), pomalejší | |
of.options.CUSTOM_FONTS.tooltip.3= VYPNUTO - používá výchozí písmo, rychlejší | |
of.options.CUSTOM_FONTS.tooltip.4=Vlastní písmo záleží na vybraném | |
of.options.CUSTOM_FONTS.tooltip.5=balíčku textur. | |
of.options.CUSTOM_COLORS=Vlastní Barvy | |
of.options.CUSTOM_COLORS.tooltip.1= Vlastní Barvy | |
of.options.CUSTOM_COLORS.tooltip.2= ZAPNUTO - používá vlastní barvy (výchozí), pomalejší | |
of.options.CUSTOM_COLORS.tooltip.3= VYPNUTO - používá výchozí barvy, rychlejší | |
of.options.CUSTOM_COLORS.tooltip.4=Vlastní barvy záleží na vybraném | |
of.options.CUSTOM_COLORS.tooltip.5=balíčku textur. | |
of.options.SWAMP_COLORS=Barvy v Bažinách | |
of.options.SWAMP_COLORS.tooltip.1= Barvy v Bažinách | |
of.options.SWAMP_COLORS.tooltip.2= ZAPNUTO - používá barvy v bažinách (výchozí), pomalejší | |
of.options.SWAMP_COLORS.tooltip.3= VYPNUTO - nepoužívá barvy v bažinách, rychlejší | |
of.options.SWAMP_COLORS.tooltip.4=Barvy v bažinách ovlivňují trávník, listy, lijány a vodu. | |
of.options.SMOOTH_BIOMES=Vyhlazené Biomy | |
of.options.SMOOTH_BIOMES.tooltip.1=Vyhlazené Biomy | |
of.options.SMOOTH_BIOMES.tooltip.2= ZAPNUTO - vyhlazování hranic biomů (výchozí), pomalejší | |
of.options.SMOOTH_BIOMES.tooltip.3= VYPNUTO - žádné vyhlazování hranic biomů, rychlejší. | |
of.options.SMOOTH_BIOMES.tooltip.4=Vyhlazování hranic biomů je dáno změnou a | |
of.options.SMOOTH_BIOMES.tooltip.5=průměru všech sousedících bloků. | |
of.options.SMOOTH_BIOMES.tooltip.6=Ovlivňuje trávník, listí, lijány a vodu. | |
of.options.CONNECTED_TEXTURES=Spojené Textury | |
of.options.CONNECTED_TEXTURES.tooltip.1=Spojené Textury | |
of.options.CONNECTED_TEXTURES.tooltip.2= VYPNUTO - žádné spojené textury (výchozí), rychlejší | |
of.options.CONNECTED_TEXTURES.tooltip.3= Rychlá - rychle spojené textury | |
of.options.CONNECTED_TEXTURES.tooltip.4= Pěkná - pěkně spojené textury | |
of.options.CONNECTED_TEXTURES.tooltip.5=Spojené textury spojují textury skla,, | |
of.options.CONNECTED_TEXTURES.tooltip.6=pískovce a knihoven když jsou | |
of.options.CONNECTED_TEXTURES.tooltip.7=vedle sebe. Spojené textury záleží | |
of.options.CONNECTED_TEXTURES.tooltip.8=na vybraném balíčku textur. | |
of.options.NATURAL_TEXTURES=Naturální Textury | |
of.options.NATURAL_TEXTURES.tooltip.1=Naturální Textury | |
of.options.NATURAL_TEXTURES.tooltip.2= VYPNUTO - žádné naturální textury, rychlejší | |
of.options.NATURAL_TEXTURES.tooltip.3= ZAPNUTO - používá naturální textury | |
of.options.NATURAL_TEXTURES.tooltip.4=Naturální textury odstraňují vzor | |
of.options.NATURAL_TEXTURES.tooltip.5=vytvořený opakováním bloků stejných typů. | |
of.options.NATURAL_TEXTURES.tooltip.6=Používá otočené a převrácené základy | |
of.options.NATURAL_TEXTURES.tooltip.7=textury bloků. Nastavení pro naturální textury | |
of.options.NATURAL_TEXTURES.tooltip.8=je ovlivňováno vybraným balíčkem textur. | |
of.options.CUSTOM_SKY=Vlastní Obloha | |
of.options.CUSTOM_SKY.tooltip.1=Vlastní Obloha | |
of.options.CUSTOM_SKY.tooltip.2= ZAPNUTO - používá vlastní textury oblohy (výchozí), pomalejší | |
of.options.CUSTOM_SKY.tooltip.3= VYPNUTO - výchozí obloha, rychlejší | |
of.options.CUSTOM_SKY.tooltip.4=Vlastní textura oblohy je ovlivňována vybraným | |
of.options.CUSTOM_SKY.tooltip.5=balíčkem textur. | |
of.options.CUSTOM_ITEMS=Vlastní Itemy | |
of.options.CUSTOM_ITEMS.tooltip.1=Vlastní Itemy | |
of.options.CUSTOM_ITEMS.tooltip.2= ZAPNUTO - vlastní textury itemů (výchozí), pomalejší | |
of.options.CUSTOM_ITEMS.tooltip.3= VYPNUTO - výchozí textury itemů, rychlejší | |
of.options.CUSTOM_ITEMS.tooltip.4=Vlastní itemy záleží na vybraném | |
of.options.CUSTOM_ITEMS.tooltip.5=balíčku textur. | |
# Detaily | |
of.options.CLOUDS=Mraky | |
of.options.CLOUDS.tooltip.1=Mraky | |
of.options.CLOUDS.tooltip.2= Výchozí - z nastavení Grafiky | |
of.options.CLOUDS.tooltip.3= Rychlá - nižší kvalita, rychlejší | |
of.options.CLOUDS.tooltip.4= Pěkná - vyšší kvalita, pěknější | |
of.options.CLOUDS.tooltip.5= VYPNUTO - žádné mraky, nejrychlejší | |
of.options.CLOUDS.tooltip.6=Rychlé mraky jsou 2D. | |
of.options.CLOUDS.tooltip.7=Pěkné mraky jsou 3D. | |
of.options.CLOUD_HEIGHT=Výška Mraků | |
of.options.CLOUD_HEIGHT.tooltip.1=Výška Mraků | |
of.options.CLOUD_HEIGHT.tooltip.2= VYPNUTO - výchozí výška | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - nad limitem stavění | |
of.options.TREES=Stromy | |
of.options.TREES.tooltip.1=Stromy | |
of.options.TREES.tooltip.2= Výchozí - z nastavení Grafiky | |
of.options.TREES.tooltip.3= Rychlá - nejnižší kvalita, nejrychlejší | |
of.options.TREES.tooltip.4= Chytrá - vyšší kvalita, rychlé | |
of.options.TREES.tooltip.5= Pěkná - nejvyšší kvalita, nejpomalejší | |
of.options.TREES.tooltip.6=Rychlá stromy mají průhledné listí. | |
of.options.TREES.tooltip.7=Pěkné a Chytré stromy mají průhledné listí. | |
of.options.RAIN=Sníh a Déšť | |
of.options.RAIN.tooltip.1=Sníh a Déšť | |
of.options.RAIN.tooltip.2= Výchozí - z nastavení Grafiky | |
of.options.RAIN.tooltip.3= Rychlá - lehký sníh/déšť, rychlejší | |
of.options.RAIN.tooltip.4= Pěkná - velký sníh/déšť, pomalejší | |
of.options.RAIN.tooltip.5= VYPNUTO - žádný sníh/déšť, nejrychlejší | |
of.options.RAIN.tooltip.6=Pokud je déšť vypnutý, jeho zvuky stále | |
of.options.RAIN.tooltip.7=hrají. | |
of.options.SKY=Obloha | |
of.options.SKY.tooltip.1=Obloha | |
of.options.SKY.tooltip.2= ZAPNUTO - obloha je viditelná, pomalejší | |
of.options.SKY.tooltip.3= VYPNUTO - obloha nejde vidět, rychlejší | |
of.options.SKY.tooltip.4=Pokud je obloha vypnutá, měsíc a slunce půjdou stále vidět. | |
of.options.STARS=Hvězdy | |
of.options.STARS.tooltip.1=Hvězdy | |
of.options.STARS.tooltip.2= ZAPNUTO - hvězdy jsou viditelné, pomalejší | |
of.options.STARS.tooltip.3= VYPNUTO - hvězdy nejdou vidět, rychlejší | |
of.options.SUN_MOON=Slunce a Měsíc | |
of.options.SUN_MOON.tooltip.1=Slunce a Měsíc | |
of.options.SUN_MOON.tooltip.2= ZAPNUTO - slunce a měsíc lze vidět (výchozí) | |
of.options.SUN_MOON.tooltip.3= VYPNUTO - slunce a měsíc nelze vidět, rychlejší | |
of.options.SHOW_CAPES=Zobrazovat Kápě | |
of.options.SHOW_CAPES.tooltip.1=Zobrazovat Kápě | |
of.options.SHOW_CAPES.tooltip.2= ZAPNUTO - zobrazovat kápě hráčů (výchozí) | |
of.options.SHOW_CAPES.tooltip.3= VYPNUTO - nezobrazovat kápě hráčů | |
of.options.TRANSLUCENT_BLOCKS=Průsvitné Bloky | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=Průsvitné Bloky | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= Pěkná - pěkné mixování bloků (výchozí) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= Rychlá - rychlé mixování bloků (rychlejší) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4=Ovládání mixování bloků zajišťuje blokům | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=s rozfílnou barvou (barevné sklo, voda, led) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=odstranit vzduch mezi nimi. | |
of.options.HELD_ITEM_TOOLTIPS=Popisek k Drženému Itemu | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=Popisek k Drženému Itemu | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= ZAPNUTO - zobrazovat popisky (výchozí) | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= VYPNUTO - nezobrazovat popisky | |
of.options.DROPPED_ITEMS=Vyhozené Itemy | |
of.options.DROPPED_ITEMS.tooltip.1=Vyhozené Itemy | |
of.options.DROPPED_ITEMS.tooltip.2= Výchozí - podle nastavení Grafiky | |
of.options.DROPPED_ITEMS.tooltip.3= Rychlá - vyhozené itemy ve 2D, rychlejší | |
of.options.DROPPED_ITEMS.tooltip.4= Pěkná - vyhozené itemy ve 3D, pomalejší | |
options.entityShadows.tooltip.1=Stíny Entit | |
options.entityShadows.tooltip.2= ZAPNUTO - zobrazovat stíny entit | |
options.entityShadows.tooltip.3= VYPNUTO - nezobrazovat stíny entit | |
of.options.VIGNETTE=Ztmavení | |
of.options.VIGNETTE.tooltip.1=Vizuální efekt, který ztmaví okraje obrazovky. | |
of.options.VIGNETTE.tooltip.2= Výchozí - záleží na nastavení Grafiky (výchozí) | |
of.options.VIGNETTE.tooltip.3= Rychlá - ztmavení vypnuto (rychlejší) | |
of.options.VIGNETTE.tooltip.4= Pěkná - ztmavení zapnuto (pomalejší) | |
of.options.VIGNETTE.tooltip.5=Ztmavení může mít veliký vliv na FPS, | |
of.options.VIGNETTE.tooltip.6=speciálně při hraní ve fullscreenu. | |
of.options.VIGNETTE.tooltip.7=Efekt ztmavení je velmi jemný a dá se bezpečně | |
of.options.VIGNETTE.tooltip.8=vypnout. | |
of.options.DYNAMIC_FOV=Dynamické FOV | |
of.options.DYNAMIC_FOV.tooltip.1=Dynamické FOV | |
of.options.DYNAMIC_FOV.tooltip.2= ZAPNUTO - zapne dynamické FOV (výchozí) | |
of.options.DYNAMIC_FOV.tooltip.3= VYPNUTO - vypne dynamické FOV | |
of.options.DYNAMIC_FOV.tooltip.4=Mění pole pohledu (FOV) při létání, sprintování | |
of.options.DYNAMIC_FOV.tooltip.5=nebo při natahování luku. | |
of.options.DYNAMIC_LIGHTS=Dynamické Světla | |
of.options.DYNAMIC_LIGHTS.tooltip.1=Dynamické Světla | |
of.options.DYNAMIC_LIGHTS.tooltip.2= VYPNUTO - žádná dynamícká světla (výchozí) | |
of.options.DYNAMIC_LIGHTS.tooltip.3= Rychlá - rychlá dynamická světla (aktualizace každých 500ms) | |
of.options.DYNAMIC_LIGHTS.tooltip.4= Pěkná - pěkná dynamická světla (aktualizovano vzdy) | |
of.options.DYNAMIC_LIGHTS.tooltip.5=Pokud je zapnuto a v ruce, na zemi nebo v ruce | |
of.options.DYNAMIC_LIGHTS.tooltip.6=jiného hráče je držen svítící item (louč, světlit, atd.) | |
of.options.DYNAMIC_LIGHTS.tooltip.7=tak se osvětlí vše kolem | |
# Výkon | |
of.options.SMOOTH_FPS=Vyhlazené FPS | |
of.options.SMOOTH_FPS.tooltip.1=Stabilizuje FPS velikým nátlakem na grafický adaptér | |
of.options.SMOOTH_FPS.tooltip.2= VYPNUTO - žádná stabilizace, FPS mohou kolísat | |
of.options.SMOOTH_FPS.tooltip.3= ZAPNUTO - stabilizace FPS | |
of.options.SMOOTH_FPS.tooltip.4=Tato možnost záleží na grafickém adaptéru a jeho efekt | |
of.options.SMOOTH_FPS.tooltip.5=není vždy vidět. | |
of.options.SMOOTH_WORLD=Vyhlazený Svět | |
of.options.SMOOTH_WORLD.tooltip.1=Odstraní lagy způsobené interním serverem. | |
of.options.SMOOTH_WORLD.tooltip.2= VYPNUTO - žádná stabilizace, FPS mohou kolísat | |
of.options.SMOOTH_WORLD.tooltip.3= ZAPNUTO - stabilizace FPS | |
of.options.SMOOTH_WORLD.tooltip.4=Stabilizuje FPS rozdělením nsčítání světa. | |
of.options.SMOOTH_WORLD.tooltip.5=Funguje jen na lokálních světech (hra pro jednoho hráče). | |
of.options.FAST_RENDER=Rychlý Render | |
of.options.FAST_RENDER.tooltip.1=Rychlý Render | |
of.options.FAST_RENDER.tooltip.2= VYPNUTO - standardní render | |
of.options.FAST_RENDER.tooltip.3= ZAPNUTO - vyvážený render (rychlejší) | |
of.options.FAST_RENDER.tooltip.4=Používáním vyváženěho renderovacího algoritmu se může snížít | |
of.options.FAST_RENDER.tooltip.5=využití GPU, což může zvýšit FPS. | |
of.options.FAST_MATH=Rychlá Matematika | |
of.options.FAST_MATH.tooltip.1=Rychlá Matematika | |
of.options.FAST_MATH.tooltip.2= VYPNUTO - standardní matematika | |
of.options.FAST_MATH.tooltip.3= ZAPNUTO - rychlá matematika | |
of.options.FAST_MATH.tooltip.4=Používá vyvážené sin() a cos() funkce, což může | |
of.options.FAST_MATH.tooltip.5=lépe šetřit CPU a zvýšit FPS. | |
of.options.CHUNK_UPDATES=Načítání Chunků | |
of.options.CHUNK_UPDATES.tooltip.1=Načítání Chunků | |
of.options.CHUNK_UPDATES.tooltip.2= 1 - pomalejší načítání světa, vyšší FPS (výchozí) | |
of.options.CHUNK_UPDATES.tooltip.3= 3 - rychlejší načítání světa, nižší FPS | |
of.options.CHUNK_UPDATES.tooltip.4= 5 - nejrychlejší načítání světa, nejnižší FPS | |
of.options.CHUNK_UPDATES.tooltip.5=Číslo chnků načtených za 1 FPS, | |
of.options.CHUNK_UPDATES.tooltip.6=vyšší hodnoty mohou FPS snížit. | |
of.options.CHUNK_UPDATES_DYNAMIC=Dynamické Načítání | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.1=Dynamické načítání chunků | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.2= VYPNUTO - (výchozí) standardní počet chunků na FPS | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.3= ZAPNUTO - více chunků, když se hráč nehýbe | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.4=Dynamické načítání načte více chunků | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.5=když se hráč nehýbe, svět se načte rychleji. | |
of.options.LAZY_CHUNK_LOADING=Líné Načítání Chunků | |
of.options.LAZY_CHUNK_LOADING.tooltip.1=Pomalé načítání chunků | |
of.options.LAZY_CHUNK_LOADING.tooltip.2= VYPNUTO - výchozí načítání serverových chunků | |
of.options.LAZY_CHUNK_LOADING.tooltip.3= ZAPNUTO - pomalé načítání serverových chunků (plynulejší) | |
of.options.LAZY_CHUNK_LOADING.tooltip.4=Udělá plynulejší načítání chunků na integrovaném serveru | |
of.options.LAZY_CHUNK_LOADING.tooltip.5=jejich rozdělováním na několik tiků. | |
of.options.LAZY_CHUNK_LOADING.tooltip.6=Pokud je VYPNUTO, některé části světa se nenačtou správně. | |
of.options.LAZY_CHUNK_LOADING.tooltip.7=Efektivní pouze pro lokální světy a 1-jádrové CPU. | |
# Animace | |
of.options.animation.allOn=Vše ZAPNUTO | |
of.options.animation.allOff=Vše VYPNUTO | |
of.options.animation.dynamic=Dynamické | |
of.options.ANIMATED_WATER=Animovaná Voda | |
of.options.ANIMATED_LAVA=Animovaná Láva | |
of.options.ANIMATED_FIRE=Animovaný Oheň | |
of.options.ANIMATED_PORTAL=Animovaný Portál | |
of.options.ANIMATED_REDSTONE=Animovaný Redstone | |
of.options.ANIMATED_EXPLOSION=Animované Exploze | |
of.options.ANIMATED_FLAME=Animovaný Požár | |
of.options.ANIMATED_SMOKE=Animovaný Kouř | |
of.options.VOID_PARTICLES=Částice Voidu | |
of.options.WATER_PARTICLES=Částice Vody | |
of.options.RAIN_SPLASH=Částice Deště | |
of.options.PORTAL_PARTICLES=Částice Portálu | |
of.options.POTION_PARTICLES=Částice Lektvarů | |
of.options.DRIPPING_WATER_LAVA=Tekoucí Voda/Láva | |
of.options.ANIMATED_TERRAIN=Animovaný Terén | |
of.options.ANIMATED_TEXTURES=Animované Textury | |
of.options.FIREWORK_PARTICLES=Částice Rachejtle | |
# Ostatní | |
of.options.LAGOMETER=Lagometer | |
of.options.LAGOMETER.tooltip.1=Zobrazí lagometer na ladící obrazovce (F3). | |
of.options.LAGOMETER.tooltip.2=* Oranžová - Sbírka zbytečné paměti | |
of.options.LAGOMETER.tooltip.3=* Světle Modrá - Tik | |
of.options.LAGOMETER.tooltip.4=* Modrá - Plánované soubory | |
of.options.LAGOMETER.tooltip.5=* Fialová - Načítání chunků | |
of.options.LAGOMETER.tooltip.6=* Červená - Přednačtené chunky | |
of.options.LAGOMETER.tooltip.7=* Žlutá - Kontrola viditelnosti | |
of.options.LAGOMETER.tooltip.8=* Zelená - Načítání terénu | |
of.options.PROFILER=Ladící Profil | |
of.options.PROFILER.tooltip.1=Ladící Profil | |
of.options.PROFILER.tooltip.2= ZAPNUTO - ladící profil je aktivní, pomalejší | |
of.options.PROFILER.tooltip.3= VYPNUTO - ladící profil je neaktivní, rychlejší | |
of.options.PROFILER.tooltip.4=Ladící profil sbírá a zobrazuje informace když | |
of.options.PROFILER.tooltip.5=je otevřena ladící obrazovka (F3) | |
of.options.WEATHER=Počasí | |
of.options.WEATHER.tooltip.1=Počasí | |
of.options.WEATHER.tooltip.2= ZAPNUTO - počasí je aktivní, pomalejší | |
of.options.WEATHER.tooltip.3= VYPNUTO - počasí je neaktivní, rychlejší | |
of.options.WEATHER.tooltip.4=Počasí ovládá deště, sněžení a bouřky. | |
of.options.WEATHER.tooltip.5=Ovládání počasí je možné pouze pro lokální světy. | |
of.options.time.dayOnly=Pouze Den | |
of.options.time.nightOnly=Pouze Noc | |
of.options.TIME=Čas | |
of.options.TIME.tooltip.1=Čas | |
of.options.TIME.tooltip.2= Výchozí - normální denní/noční cyklus | |
of.options.TIME.tooltip.3= Pouze Den - pouze den | |
of.options.TIME.tooltip.4= Pouze Noc - pouze noc | |
of.options.TIME.tooltip.5=Nastavení času je efektivní jen v KREATIVNíM módu | |
of.options.TIME.tooltip.6=a pro lokální světy. | |
options.fullscreen.tooltip.1=Fullscreen | |
options.fullscreen.tooltip.2= ZAPNUTO - použít celoobrázkový mód | |
options.fullscreen.tooltip.3= VYPNUTO - použít mód v okně | |
options.fullscreen.tooltip.4=Fullscreen mód může být rychlejší než | |
options.fullscreen.tooltip.5=mód v okně, záleží na GPU. | |
of.options.FULLSCREEN_MODE=Fullscreen Mód | |
of.options.FULLSCREEN_MODE.tooltip.1=Celoobrázkový mód | |
of.options.FULLSCREEN_MODE.tooltip.2= Výchozí - používá hlavní rozlišení, pomalejší | |
of.options.FULLSCREEN_MODE.tooltip.3= WxH - používá vlastní rozlišení, může být rychlejší | |
of.options.FULLSCREEN_MODE.tooltip.4=Vybrané rozlišení je používáno ve fullscreenu (F11). | |
of.options.FULLSCREEN_MODE.tooltip.5=Nižší rozlišení mohou být rychlejší. | |
of.options.SHOW_FPS=Zobrazit FPS | |
of.options.SHOW_FPS.tooltip.1=Kompaktně zobrazí informace o FPS a renderu | |
of.options.SHOW_FPS.tooltip.2= C: - načítání chunků | |
of.options.SHOW_FPS.tooltip.3= E: - načtené entity + blokové entity | |
of.options.SHOW_FPS.tooltip.4= U: - přednačtené chunky | |
of.options.SHOW_FPS.tooltip.5=Informace o FPS se zobrazí jen, | |
of.options.SHOW_FPS.tooltip.6=když je ladící obrazovka (F3) zneviditelněná. | |
of.options.save.default=Výchozí (2s) | |
of.options.save.20s=20s | |
of.options.save.3min=3min | |
of.options.save.30min=30min | |
of.options.AUTOSAVE_TICKS=Auto-ukládání | |
of.options.AUTOSAVE_TICKS.tooltip.1=Interval auto-ukládání | |
of.options.AUTOSAVE_TICKS.tooltip.2=Výchozí interval auto-ukládání (2s) se NEDOPORUčUJE | |
of.options.AUTOSAVE_TICKS.tooltip.3=Auto-ukládání způsobuje slavné sekací Smrti (Lag Spikes of Death). | |
options.anaglyph.tooltip.1=3D mód používá červeno-modré 3D brýle. |
# Contributors of German localization # | |
# ThexXTURBOXx (Collaborator of Reforged) 2016-2-29 ---- 2016-3-3 | |
# RoiEXLab 2016-3-8 | |
# violine1101 (German Minecraft Wiki admin) 2016-4-4 ---- 2016-5-18 | |
# General | |
of.general.ambiguous=Unklar | |
of.general.custom=Anderes | |
of.general.from=Von | |
of.general.id=ID | |
of.general.restart=Neustart | |
of.general.smart=Fein | |
# Message | |
of.message.aa.shaders1=Antialiasing ist nicht mit Shader-Effekten kompatibel. | |
of.message.aa.shaders2=Bitte deaktiviere Shader-Effekte, um diese Einstellung zu aktivieren. | |
of.message.af.shaders1=Anistropische Filterung ist nicht mit Shader-Effekten kompatibel. | |
of.message.af.shaders2=Bitte deaktiviere Shader-Effekte, um diese Einstellung zu aktivieren. | |
of.message.fr.shaders1=Schnelles Rendern ist nicht mit Shader-Effekten kompatibel. | |
of.message.fr.shaders2=Bitte deaktiviere Shader-Effekte, um diese Einstellung zu aktivieren. | |
of.message.shaders.aa1=Antialiasing ist nicht mit Shader-Effekten kompatibel. | |
of.message.shaders.aa2=Bitte deaktiviere Qualität -> Antialiasing und starte das Spiel neu. | |
of.message.shaders.af1=Anistropische Filterung ist nicht mit Shader-Effekten kompatibel. | |
of.message.shaders.af2=Bitte deaktiviere Qualität -> Anistropische Filterung. | |
of.message.shaders.fr1=Schnelles Rendern ist nicht mit Shader-Effekten kompatibel. | |
of.message.shaders.fr2=Bitte deaktiviere Leistung -> Schnelles Rendern. | |
of.message.newVersion=Eine neue Version von §eOptiFine§f ist verfügbar: §e%s§f | |
of.message.java64Bit=Du kannst die §e64-bit-Version von Java§f installieren, um die Leistung zu verbessern | |
of.message.openglError=§eOpenGL-Fehler§f: %s (%s) | |
of.message.shaders.loading=Lade Shader-Effekte: %s | |
of.message.other.reset=Alle Videoeinstellungen auf die Standardwerte zurücksetzen? | |
# Video settings | |
options.graphics.tooltip.1=Grafikmodus | |
options.graphics.tooltip.2= Schnell - Schlechtere Qualität, schneller | |
options.graphics.tooltip.3= Schön - Höhere Qualität, langsamer | |
options.graphics.tooltip.4=Verändert das Aussehen der Wolken, Blätter, Grasblöcke, | |
options.graphics.tooltip.5=Schatten und von Wasser. | |
of.options.renderDistance.extreme=Extrem | |
options.renderDistance.tooltip.1=Sichtweite | |
options.renderDistance.tooltip.2= 2 Mini - 32m (am schnellsten) | |
options.renderDistance.tooltip.3= 4 Klein - 64m (schnell) | |
options.renderDistance.tooltip.4= 8 Normal - 128m | |
options.renderDistance.tooltip.5= 16 Weit - 256m (langsam) | |
options.renderDistance.tooltip.6= 32 Extrem - 512m (am langsamsten!) | |
options.renderDistance.tooltip.7=Die extreme Sichtweite ist sehr ressourcenaufwendig! | |
options.renderDistance.tooltip.8=Werte über 16 funktionieren nur im Einzelspielermodus. | |
options.ao.tooltip.1=Weiche Beleuchtung | |
options.ao.tooltip.2= Aus - Keine weiche Beleuchtung (schnell) | |
options.ao.tooltip.3= Minimum - Einfache weiche Beleuchtung (langsam) | |
options.ao.tooltip.4= Maximum - Komplexe weiche Beleuchtung (am langsamsten) | |
options.framerateLimit.tooltip.1=Maximale Bildrate | |
options.framerateLimit.tooltip.2= V-Sync - Auf Monitor-Bildrate begrenzen (60, 30, 20) | |
options.framerateLimit.tooltip.3= 5-255 - Auf eingestellte Bildrate begrenzen | |
options.framerateLimit.tooltip.4= Unendlich - Keine Begrenzung (am schnellsten) | |
options.framerateLimit.tooltip.5=Die Bildrate grenzt die FPS ein, sogar wenn | |
options.framerateLimit.tooltip.6=die Begrenzung nicht erreicht ist. | |
of.options.framerateLimit.vsync=V-Sync | |
of.options.AO_LEVEL=Schattenhelligkeit | |
of.options.AO_LEVEL.tooltip.1=Schattenhelligkeit | |
of.options.AO_LEVEL.tooltip.2= Aus - Keine Schatten | |
of.options.AO_LEVEL.tooltip.3= 50%% - Helle Schatten | |
of.options.AO_LEVEL.tooltip.4= 100%% - Dunkle Schatten | |
options.viewBobbing.tooltip.1=Gehbewegung | |
options.viewBobbing.tooltip.2=Wenn Mipmaps verwendet werden, deaktiviere diese | |
options.viewBobbing.tooltip.3=Einstellung für bessere Leitung. | |
options.guiScale.tooltip.1=GUI-Größe | |
options.guiScale.tooltip.2=Ein kleineres GUI ist eventuell schneller. | |
options.vbo.tooltip.1=Vertexbufferobjekte | |
options.vbo.tooltip.2=Benutzt ein alternatives Rendermodell, das normalerweise | |
options.vbo.tooltip.3=schneller (5-10%%) als das Standard-Rendermodell ist. | |
options.gamma.tooltip.1=Erhöht die Helligkeit dunkler Objekte | |
options.gamma.tooltip.2= Düster - Standardhelligkeit | |
options.gamma.tooltip.3= 1-99%% - veränderlich | |
options.gamma.tooltip.4= Hell - Maximale Helligkeit für dunkle Objekte | |
options.gamma.tooltip.5=Diese Einstellungen ändern nicht die Helligkeit von ganz | |
options.gamma.tooltip.6=schwarzen Objekten | |
options.anaglyph.tooltip.1=3D-Modus | |
options.anaglyph.tooltip.2=Kann nur mit einer Rot-Cyan-Brille benutzt werden. | |
options.anaglyph.tooltip.3=Aktiviert einen stereoskopischen 3D-Effekt durch | |
options.anaglyph.tooltip.4=Verwenden unterschiedlicher Farben für jedes Auge. | |
options.blockAlternatives.tooltip.1=Blockvarianten | |
options.blockAlternatives.tooltip.2=Benutzt alternative Blockmodelle für einige Blöcke. | |
options.blockAlternatives.tooltip.3=Hängt vom ausgewählten Ressourcenpaket ab. | |
of.options.FOG_FANCY=Nebel | |
of.options.FOG_FANCY.tooltip.1=Nebel | |
of.options.FOG_FANCY.tooltip.2= Schnell - Schneller Nebel | |
of.options.FOG_FANCY.tooltip.3= Schön - Langsamer Nebel, sieht besser aus | |
of.options.FOG_FANCY.tooltip.4= Aus - Kein Nebel, am schnellsten | |
of.options.FOG_FANCY.tooltip.5=Der schöne Nebel ist nur verfügbar, wenn er von der | |
of.options.FOG_FANCY.tooltip.6=Grafikkarte unterstützt wird. | |
of.options.FOG_START=Nebelstart | |
of.options.FOG_START.tooltip.1=Nebelstart | |
of.options.FOG_START.tooltip.2= 0.2 - Der Nebel startet nahe beim Spieler | |
of.options.FOG_START.tooltip.3= 0.8 - Der Nebel startet weit weg vom Spieler | |
of.options.FOG_START.tooltip.4=Diese Einstellung beeinflusst normalerweise nicht die | |
of.options.FOG_START.tooltip.5=Leistung. | |
of.options.CHUNK_LOADING=Chunkladen | |
of.options.CHUNK_LOADING.tooltip.1=Chunkladen | |
of.options.CHUNK_LOADING.tooltip.2= Standard - Instabile FPS, wenn Chunks geladen werden | |
of.options.CHUNK_LOADING.tooltip.3= Weich - Stabile FPS | |
of.options.CHUNK_LOADING.tooltip.4= Multi-Core - Stabile FPS, 3x schnelleres Weltladen | |
of.options.CHUNK_LOADING.tooltip.5=Weich und Multi-Core entfernen Ruckler und | |
of.options.CHUNK_LOADING.tooltip.6=Standbilder, welche durch Chunkladen verursacht werden. | |
of.options.CHUNK_LOADING.tooltip.7=Multi-Core kann das Weltladen 3x schneller machen und | |
of.options.CHUNK_LOADING.tooltip.8=die FPS erhöhen, indem es einen zweiten CPU-Kern benutzt. | |
of.options.chunkLoading.smooth=Weich | |
of.options.chunkLoading.multiCore=Multi-Core | |
of.options.shaders=Shader-Effekte ... | |
of.options.shadersTitle=Shader-Effekte | |
of.options.shaders.packNone=Aus | |
of.options.shaders.packDefault=(Interner Shader-Effekt) | |
of.options.shaders.ANTIALIASING=Antialiasing | |
of.options.shaders.NORMAL_MAP=Normale Karte | |
of.options.shaders.SPECULAR_MAP=Spiegelnde Karte | |
of.options.shaders.RENDER_RES_MUL=Renderqualität | |
of.options.shaders.SHADOW_RES_MUL=Schattenqualität | |
of.options.shaders.HAND_DEPTH_MUL=Handtiefe | |
of.options.shaders.CLOUD_SHADOW=Wolkenschatten | |
of.options.shaders.OLD_HAND_LIGHT=Alte Handbel. | |
of.options.shaders.OLD_LIGHTING=Alte Beleuchtung | |
of.options.shaders.SHADER_PACK=Shaderpaket | |
of.options.shaders.shadersFolder=Shader-Effekt-Ordner | |
of.options.shaders.shaderOptions=Shadereinstellung ... | |
of.options.shaderOptionsTitle=Shader-Effekte | |
of.options.quality=Qualität ... | |
of.options.qualityTitle=Qualitätseinstellungen | |
of.options.details=Details ... | |
of.options.detailsTitle=Detaileinstellungen | |
of.options.performance=Leistung ... | |
of.options.performanceTitle=Leistungseinstellungen | |
of.options.animations=Animationen ... | |
of.options.animationsTitle=Animationseinstellungen | |
of.options.other=Sonstiges ... | |
of.options.otherTitle=Andere Einstellungen | |
of.options.other.reset=Grafikeinstellungen zurücksetzen ... | |
of.shaders.profile=Profil | |
# Quality | |
of.options.mipmap.bilinear=Bilinear | |
of.options.mipmap.linear=Linear | |
of.options.mipmap.nearest=Am nächsten | |
of.options.mipmap.trilinear=Trilinear | |
options.mipmapLevels.tooltip.1=Visueller Effekt, der weit entfernte Objekte besser aus- | |
options.mipmapLevels.tooltip.2=sehen lässt, indem Texturdetails verringert werden | |
options.mipmapLevels.tooltip.3= Aus - Keine Verringerung von Details | |
options.mipmapLevels.tooltip.4= 1 - Minimale Verringerung von Details | |
options.mipmapLevels.tooltip.5= 4 - Maximale Verringerung von Details | |
options.mipmapLevels.tooltip.6=Diese Einstellung beeinflusst normalerweise nicht die | |
options.mipmapLevels.tooltip.7=Leistung. | |
of.options.MIPMAP_TYPE=Mipmap-Typ | |
of.options.MIPMAP_TYPE.tooltip.1=Visueller Effekt, der weit entfernte Objekte besser aus- | |
of.options.MIPMAP_TYPE.tooltip.2=sehen lässt, indem Texturdetails verringert werden | |
of.options.MIPMAP_TYPE.tooltip.3= Am nächsten - Grobe Verringerung (am schnellsten) | |
of.options.MIPMAP_TYPE.tooltip.4= Linear - Normale Verringerung | |
of.options.MIPMAP_TYPE.tooltip.5= Bilinear - Feine Verringerung | |
of.options.MIPMAP_TYPE.tooltip.6= Trilinear - Feinste Verringerung (am langsamsten) | |
of.options.AA_LEVEL=Antialiasing | |
of.options.AA_LEVEL.tooltip.1=Antialiasing | |
of.options.AA_LEVEL.tooltip.2= Aus - (Standard) Kein Antialiasing (schneller) | |
of.options.AA_LEVEL.tooltip.3= 2-16 - Antialiasierte Linien und Ecken (langsamer) | |
of.options.AA_LEVEL.tooltip.4=Das Antialiasing weicht gezackte Linien ab und schärft | |
of.options.AA_LEVEL.tooltip.5=Farbübergänge. Wenn aktiviert, kann es die Bildrate | |
of.options.AA_LEVEL.tooltip.6=erheblich beeinträchtigen. | |
of.options.AA_LEVEL.tooltip.7=Nicht alle Stufen werden von allen Grafikkarten unterstützt. | |
of.options.AA_LEVEL.tooltip.8=Änderung wird erst nach einem Neustart effektiv! | |
of.options.AF_LEVEL=Anisotropische Filterung | |
of.options.AF_LEVEL.tooltip.1=Anisotropische Filterung | |
of.options.AF_LEVEL.tooltip.2= Aus - (Standard) Standard-Texturdetails (schneller) | |
of.options.AF_LEVEL.tooltip.3= 2-16 - Feinere Details in Texturen (langsamer) | |
of.options.AF_LEVEL.tooltip.4=Die anisotropische Filterung stellt Details in Texturen, | |
of.options.AF_LEVEL.tooltip.5=die durch Mipmap ihre Details verloren haben, wieder her. | |
of.options.AF_LEVEL.tooltip.6=Wenn aktiviert, kann es die FPS erheblich verringern. | |
of.options.CLEAR_WATER=Klares Wasser | |
of.options.CLEAR_WATER.tooltip.1=Klares Wasser | |
of.options.CLEAR_WATER.tooltip.2= An - Klares, transparentes Wasser | |
of.options.CLEAR_WATER.tooltip.3= Aus - Normales Wasser | |
of.options.RANDOM_MOBS=Kreaturvarianten | |
of.options.RANDOM_MOBS.tooltip.1=Kreaturvarianten | |
of.options.RANDOM_MOBS.tooltip.2= Aus - Keine Kreaturvarianten, schneller | |
of.options.RANDOM_MOBS.tooltip.3= An - Keine Kreaturvarianten, langsamer | |
of.options.RANDOM_MOBS.tooltip.4=Die gleichen Kreaturen können unterschiedliche Texturen | |
of.options.RANDOM_MOBS.tooltip.5=haben. Dies benötigt ein Ressourcenpaket mit entspre- | |
of.options.RANDOM_MOBS.tooltip.6=chenden Texturen. | |
of.options.BETTER_GRASS=Besseres Gras | |
of.options.BETTER_GRASS.tooltip.1=Besseres Gras | |
of.options.BETTER_GRASS.tooltip.2= Aus - Standard-Grasseitentextur, am schnellsten | |
of.options.BETTER_GRASS.tooltip.3= Schnell - Volle Grasseitentextur, langsamer | |
of.options.BETTER_GRASS.tooltip.4= Schön - Dynamische Grasseitentextur, am langsamsten | |
of.options.BETTER_SNOW=Besserer Schnee | |
of.options.BETTER_SNOW.tooltip.1=Besserer Schnee | |
of.options.BETTER_SNOW.tooltip.2= Aus - Normaler Schnee, schneller | |
of.options.BETTER_SNOW.tooltip.3= An - Besserer Schnee, langsamer | |
of.options.BETTER_SNOW.tooltip.4=Setzt Schnee unter transparente Blöcke (wie Zäune | |
of.options.BETTER_SNOW.tooltip.5=oder hohes Gras), wenn sie an Schneeblöcke grenzen. | |
of.options.CUSTOM_FONTS=Schriftartressourcen | |
of.options.CUSTOM_FONTS.tooltip.1=Schriftarteressourcen | |
of.options.CUSTOM_FONTS.tooltip.2= AN - Ressourcenpaket-Schriftart (Standard), langsamer | |
of.options.CUSTOM_FONTS.tooltip.3= AUS - Standardschriftart, schneller | |
of.options.CUSTOM_FONTS.tooltip.4=Die Schriftart wird aus den aktivierten Ressourcenpaketen | |
of.options.CUSTOM_FONTS.tooltip.5=geladen | |
of.options.CUSTOM_COLORS=Farbressourcen | |
of.options.CUSTOM_COLORS.tooltip.1=Farbressourcen | |
of.options.CUSTOM_COLORS.tooltip.2= An - Ressourcenpaket-Farben (Standard), langsamer | |
of.options.CUSTOM_COLORS.tooltip.3= Aus - Standardfarben, schneller | |
of.options.CUSTOM_COLORS.tooltip.4=Die Farben werden aus den aktivierten Ressourcenpaketen | |
of.options.CUSTOM_COLORS.tooltip.5=geladen. | |
of.options.SWAMP_COLORS=Sumpffarben | |
of.options.SWAMP_COLORS.tooltip.1=Sumpffarben | |
of.options.SWAMP_COLORS.tooltip.2= An - Färbt den Sumpf dunkler (Standard), langsamer | |
of.options.SWAMP_COLORS.tooltip.3= Aus - Färbt den Sumpf in normalen Farben, schneller | |
of.options.SWAMP_COLORS.tooltip.4=Die Sumpffarben betreffen Gras, Laub, Ranken und | |
of.options.SWAMP_COLORS.tooltip.5=Wasser. | |
of.options.SMOOTH_BIOMES=Biomübergänge | |
of.options.SMOOTH_BIOMES.tooltip.1=Biomübergänge | |
of.options.SMOOTH_BIOMES.tooltip.2= An - Farbübergänge an Biomgrenzen (Standard), langsamer | |
of.options.SMOOTH_BIOMES.tooltip.3= Aus - Keine Farbübergänge an Biomgrenzen, schneller | |
of.options.SMOOTH_BIOMES.tooltip.4=Die Farbübergänge werden durch Probennahme und | |
of.options.SMOOTH_BIOMES.tooltip.5=Durchschnittsberechnung der Farben der umliegenden | |
of.options.SMOOTH_BIOMES.tooltip.6=Blöcke berechnet. Betroffen sind Gras, Laub, Ranken und | |
of.options.SMOOTH_BIOMES.tooltip.7=Wasser. | |
of.options.CONNECTED_TEXTURES=Verbundene Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.1=Verbundene Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.2= Aus - Keine verbundenen Texturen (Standard) | |
of.options.CONNECTED_TEXTURES.tooltip.3= Schnell - Schnelle verbundene Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.4= Schöne - Schöne verbundene Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.5=Verbundene Texturen verbinden die Texturen von Glas, | |
of.options.CONNECTED_TEXTURES.tooltip.6=Sandstein und Bücherregalen, wenn sie nebeneinander | |
of.options.CONNECTED_TEXTURES.tooltip.7=platziert werden. Die verbundenen Texturen werden aus | |
of.options.CONNECTED_TEXTURES.tooltip.8=den aktivierten Ressourcenpaketen geladen. | |
of.options.NATURAL_TEXTURES=Natürliche Texturen | |
of.options.NATURAL_TEXTURES.tooltip.1=Natürliche Texturen | |
of.options.NATURAL_TEXTURES.tooltip.2= Aus - Keine natürlichen Texturen (Standard) | |
of.options.NATURAL_TEXTURES.tooltip.3= An - Benutzt natürliche Texturen | |
of.options.NATURAL_TEXTURES.tooltip.4=Natürliche Texturen entfernen die rasterartige Anordnung, | |
of.options.NATURAL_TEXTURES.tooltip.5=erzeugt durch Platzieren von gleichen Blöcken. Dies be- | |
of.options.NATURAL_TEXTURES.tooltip.6=nutzt gedrehte und umgekehrte Varianten der Standard- | |
of.options.NATURAL_TEXTURES.tooltip.7=Blocktextur. Die Einstellungen für die natürlichen Texturen | |
of.options.NATURAL_TEXTURES.tooltip.8=werden aus den aktivierten Ressourcenpaketen geladen. | |
of.options.CUSTOM_SKY=Himmeltexturen | |
of.options.CUSTOM_SKY.tooltip.1=Himmeltexturen | |
of.options.CUSTOM_SKY.tooltip.2= An - Ressourcenpaket-Himmeltexturen (Standard), langsam | |
of.options.CUSTOM_SKY.tooltip.3= AUS - Standardhimmel, schneller | |
of.options.CUSTOM_SKY.tooltip.4=Die Himmeltexturen werden aus den aktivierten | |
of.options.CUSTOM_SKY.tooltip.5=Ressourcenpaketen geladen. | |
of.options.CUSTOM_ITEMS=Gegenstandstexturen | |
of.options.CUSTOM_ITEMS.tooltip.1=Gegenstandstexturen | |
of.options.CUSTOM_ITEMS.tooltip.2= An - Ressourcenpaket-G.texturen (Standard), langsam | |
of.options.CUSTOM_ITEMS.tooltip.3= Aus - Standard-Gegenstandstexturen, schneller | |
of.options.CUSTOM_ITEMS.tooltip.4=Die Gegenstandstexturen werden aus den aktivierten | |
of.options.CUSTOM_ITEMS.tooltip.5=Ressourcenpaketen geladen. | |
# Details | |
of.options.CLOUDS=Wolken | |
of.options.CLOUDS.tooltip.1=Wolken | |
of.options.CLOUDS.tooltip.2= Standard - Wie Grafikmodus | |
of.options.CLOUDS.tooltip.3= Schnell - Schlechtere Qualität, schneller | |
of.options.CLOUDS.tooltip.4= Schön - Höhere Qualität, langsamer | |
of.options.CLOUDS.tooltip.5= Aus - Keine Wolken, am schnellsten | |
of.options.CLOUDS.tooltip.6=Schnelle Wolken werden zweidimensional dargestellt. | |
of.options.CLOUDS.tooltip.7=Schöne Wolken werden dreidimensional dargestellt. | |
of.options.CLOUD_HEIGHT=Wolkenhöhe | |
of.options.CLOUD_HEIGHT.tooltip.1=Wolkenhöhe | |
of.options.CLOUD_HEIGHT.tooltip.2= Aus - Standardhöhe | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - Über der maximalen Welthöhe | |
of.options.TREES=Bäume | |
of.options.TREES.tooltip.1=Bäume | |
of.options.TREES.tooltip.2= Standard - Wie Grafikmodus | |
of.options.TREES.tooltip.3= Schnell - Schlechtere Qualität, schneller | |
of.options.TREES.tooltip.4= Fein - Hohe Qualität, schnell | |
of.options.TREES.tooltip.5= Schön - Höchste Qualität, langsamer | |
of.options.TREES.tooltip.6=Schnelle Bäume haben solide Blätter. | |
of.options.TREES.tooltip.7=Schöne Bäume haben teilweise transparente Blätter. | |
of.options.RAIN=Regen & Schnee | |
of.options.RAIN.tooltip.1=Regen & Schnee | |
of.options.RAIN.tooltip.2= Standard - Wie Grafikmodus | |
of.options.RAIN.tooltip.3= Schnell - Leichter Regen/Schnee, schneller | |
of.options.RAIN.tooltip.4= Schön - Starker Regen/Schnee, langsamer | |
of.options.RAIN.tooltip.5= Aus - Kein Regen/Schnee, am schnellsten | |
of.options.RAIN.tooltip.6=Wenn diese Einstellung deaktiviert ist, sind die Regen- | |
of.options.RAIN.tooltip.7=geräusche und -partikel dennoch zu hören bzw. zu sehen. | |
of.options.SKY=Himmel | |
of.options.SKY.tooltip.1=Himmel | |
of.options.SKY.tooltip.2= An - Himmel ist sichtbar, langsamer | |
of.options.SKY.tooltip.3= Aus - Himmel ist nicht sichtbar, schneller | |
of.options.SKY.tooltip.4=Wenn dies deaktiviert ist, sind Mond und Sonne dennoch | |
of.options.SKY.tooltip.5=sichtbar. | |
of.options.STARS=Sterne | |
of.options.STARS.tooltip.1=Sterne | |
of.options.STARS.tooltip.2= An - Sterne sind sichtbar, langsamer | |
of.options.STARS.tooltip.3= Aus - Sterne ist nicht sichtbar, schneller | |
of.options.SUN_MOON=Sonne & Mond | |
of.options.SUN_MOON.tooltip.1=Sonne & Mond | |
of.options.SUN_MOON.tooltip.2= An - Sonne und Mond sind sichtbar (Standard) | |
of.options.SUN_MOON.tooltip.3= Aus - Sonne und Mond sind nicht sichtbar (schneller) | |
of.options.SHOW_CAPES=Umhänge | |
of.options.SHOW_CAPES.tooltip.1=Umhänge | |
of.options.SHOW_CAPES.tooltip.2= An - Umhänge werden dargestellt (Standard) | |
of.options.SHOW_CAPES.tooltip.3= Aus - Umhänge werden nicht dargestellt | |
of.options.TRANSLUCENT_BLOCKS=Blocktransparenz | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=Blocktransparenz | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= Schön - Korrekte Farbmischung (Standard) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= Schnell - Schnelle Farbmischung (schnell) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4=Kontrolliert die Farbmischung von transparenten Blöcken | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=mit verschiedenen Farben (Gefärbtes Glas, Wasser, Eis), | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=wenn sie hintereinander mit Luft dazwischen platziert | |
of.options.TRANSLUCENT_BLOCKS.tooltip.7=werden. | |
of.options.HELD_ITEM_TOOLTIPS=Gegenstandsbeschr. | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=Gegenstandsbeschreibung | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= An - Zeige Gegenstandsbeschreibung (Standard) | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= Aus - Zeige keine Gegenstandsbeschreibung | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.4=Wird über der Schnellzugriffsleiste angezeigt. | |
of.options.DROPPED_ITEMS=Gegenstände | |
of.options.DROPPED_ITEMS.tooltip.1=Liegende Gegenstände | |
of.options.DROPPED_ITEMS.tooltip.2= Standard - Wie Grafikmodus | |
of.options.DROPPED_ITEMS.tooltip.3= Schnell - Zweidimensionale Animation, schneller | |
of.options.DROPPED_ITEMS.tooltip.4= Schön - Dreidimensionale Animation, langsamer | |
options.entityShadows.tooltip.1=Objektschatten | |
options.entityShadows.tooltip.2= An - Zeige Objektschatten | |
options.entityShadows.tooltip.3= Aus - Zeige keine Objektschatten | |
of.options.VIGNETTE=Vignette | |
of.options.VIGNETTE.tooltip.1=Visueller Effekt, der die Bildschirmecken abdunkelt | |
of.options.VIGNETTE.tooltip.2= Standard - Wie Grafikmodus (Standard) | |
of.options.VIGNETTE.tooltip.3= Schnell - Vignette deaktiviert (schneller) | |
of.options.VIGNETTE.tooltip.4= Schön - Vignette aktiviert (langsamer) | |
of.options.VIGNETTE.tooltip.5=Die Vignette kann sich extrem auf die Leistung auswirken, | |
of.options.VIGNETTE.tooltip.6=besonders im Vollbildschirmmodus. | |
of.options.VIGNETTE.tooltip.7=Der Vignetteneffekt ist fast unmerklich und kann sicher | |
of.options.VIGNETTE.tooltip.8=deaktiviert werden. | |
of.options.DYNAMIC_FOV=Dynamisches Sichtfeld | |
of.options.DYNAMIC_FOV.tooltip.1=Dynamisches Sichtfeld | |
of.options.DYNAMIC_FOV.tooltip.2= An - Dynamisches Sichtfeld aktivieren (Standard) | |
of.options.DYNAMIC_FOV.tooltip.3= Aus - Dynamisches Sichtfeld ausschalten | |
of.options.DYNAMIC_FOV.tooltip.4=Ändert das Sichtfeld beim Fliegen, Sprinten oder beim | |
of.options.DYNAMIC_FOV.tooltip.5=Spannen eines Bogens. | |
# Performance | |
of.options.SMOOTH_FPS=Stabile Bildrate | |
of.options.SMOOTH_FPS.tooltip.1=Stabilisiert Bildrate, indem Grafiktreiberpuffer genutzt werden | |
of.options.SMOOTH_FPS.tooltip.2= Aus - Keine Stabilisierung, Bildrate könnte schwanken | |
of.options.SMOOTH_FPS.tooltip.3= Am - Stabilisierung der Bildrate | |
of.options.SMOOTH_FPS.tooltip.4=Diese Einstellung ist abhängig vom Grafikkartentreiber. | |
of.options.SMOOTH_FPS.tooltip.5=Eine Wirkung ist nicht immer spürbar. | |
of.options.SMOOTH_WORLD=Weltstabilisierung | |
of.options.SMOOTH_WORLD.tooltip.1=Entfernt durch den internen Server verursache starke Lags | |
of.options.SMOOTH_WORLD.tooltip.2= Aus - Keine Stabilisierung, Bildrate könnte schwanken | |
of.options.SMOOTH_WORLD.tooltip.3= An - Weltstabilisierung aktiviert | |
of.options.SMOOTH_WORLD.tooltip.4=Stabilisiert die Bildrate, indem der interne Serverlade- | |
of.options.SMOOTH_WORLD.tooltip.5=vorgang aufgeteilt wird. | |
of.options.SMOOTH_WORLD.tooltip=6=Funktioniert nur im Einzelspielermodus. | |
of.options.FAST_RENDER=Schnelles Rendern | |
of.options.FAST_RENDER.tooltip.1=Schnelles Rendern | |
of.options.FAST_RENDER.tooltip.2= Aus - Standard-Rendern (Standard) | |
of.options.FAST_RENDER.tooltip.3= An - Optimiertes Rendern (schneller) | |
of.options.FAST_RENDER.tooltip.4=Benutzt optimierte Renderalgorithmen, die die GPU | |
of.options.FAST_RENDER.tooltip.5=Auslastung verringern und die Leistung erheblich steigern. | |
of.options.FAST_MATH=Schnelle Mathematik | |
of.options.FAST_MATH.tooltip.1=Schnelle Mathematik | |
of.options.FAST_MATH.tooltip.2= Aus - Standard-Mathematik (Standard) | |
of.options.FAST_MATH.tooltip.3= An - Schnellere Mathematik | |
of.options.FAST_MATH.tooltip.4=Benutzt optimierte Sinus- und Kosinusfunktionen, die den | |
of.options.FAST_MATH.tooltip.5=CPU-Zwischenspeicher besser nutzen und die Leistung | |
of.options.FAST_MATH.tooltip.6=steigern. | |
of.options.CHUNK_UPDATES=Chunk-Aktualisierungen | |
of.options.CHUNK_UPDATES.tooltip.1=Chunk-Aktualisierungen | |
of.options.CHUNK_UPDATES.tooltip.2= 1 - Langsameres Weltladen, höhere Bildrate (Standard) | |
of.options.CHUNK_UPDATES.tooltip.3= 3 - Schnelleres Weltladen, niedrigere Bildrate | |
of.options.CHUNK_UPDATES.tooltip.4= 5 - Schnellstes Weltladen, niedrigste Bildrate | |
of.options.CHUNK_UPDATES.tooltip.5=Zahl an Chunk-Aktualisierungen pro gerendertem Bild. | |
of.options.CHUNK_UPDATES.tooltip.6=Höhere Werte könnten die Bildrate destabilisieren. | |
of.options.CHUNK_UPDATES_DYNAMIC=Dyn. Aktualisierungen | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.1=Dynamische Chunk-Aktualisierungen | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.2= Aus - (Standard) Normale Chunk-Aktualisierungen | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.3= An - Mehr Chunk-Aktualisierungen | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.4=Wenn diese Einstellung aktiviert ist, werden mehr Chunk- | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.5=Aktualisierungen ausgeführt, während der Spieler still | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.6=steht, um die Welt schneller zu laden. | |
of.options.LAZY_CHUNK_LOADING=Träges Chunkladen | |
of.options.LAZY_CHUNK_LOADING.tooltip.1=Träges Chunkladen | |
of.options.LAZY_CHUNK_LOADING.tooltip.2= Aus - Standard-Server-Chunkladen | |
of.options.LAZY_CHUNK_LOADING.tooltip.3= An - Träges Server-Chunkladen (flüssiger) | |
of.options.LAZY_CHUNK_LOADING.tooltip.4=Server-Chunkladen wird flüssiger, indem die Chunks über | |
of.options.LAZY_CHUNK_LOADING.tooltip.5=ein paar Ticks hinweg geladen werden. Deaktiviere dies, | |
of.options.LAZY_CHUNK_LOADING.tooltip.6=wenn Teile der Welt nicht korrekt geladen werden. | |
of.options.LAZY_CHUNK_LOADING.tooltip.7=Nur für Einzelspielermodus und Ein-Kern-CPUs effektiv. | |
# Animations | |
of.options.animation.allOn=Alle an | |
of.options.animation.allOff=Alle aus | |
of.options.animation.dynamic=Dynamisch | |
of.options.ANIMATED_WATER=Animiertes Wasser | |
of.options.ANIMATED_LAVA=Animierte Lava | |
of.options.ANIMATED_FIRE=Animiertes Feuer | |
of.options.ANIMATED_PORTAL=Animierte Portale | |
of.options.ANIMATED_REDSTONE=Animiertes Redstone | |
of.options.ANIMATED_EXPLOSION=Animierte Explosion | |
of.options.ANIMATED_FLAME=Animierte Flammen | |
of.options.ANIMATED_SMOKE=Animierter Rauch | |
of.options.VOID_PARTICLES=Leerepartikel | |
of.options.WATER_PARTICLES=Wasserpartikel | |
of.options.RAIN_SPLASH=Regengeplätscher | |
of.options.PORTAL_PARTICLES=Portalpartikel | |
of.options.POTION_PARTICLES=Trankpartikel | |
of.options.DRIPPING_WATER_LAVA=Wasser- & Lavatropfen | |
of.options.ANIMATED_TERRAIN=Animiertes Gelände | |
of.options.ANIMATED_TEXTURES=Animierte Texturen | |
of.options.FIREWORK_PARTICLES=Feuerwerkpartikel | |
# Other | |
of.options.LAGOMETER=Lagometer | |
of.options.LAGOMETER.tooltip.1=Zeigt das Lagometer auf dem Debugbildschirm (F3). | |
of.options.LAGOMETER.tooltip.2=* Orange - Speichermüllsammlung | |
of.options.LAGOMETER.tooltip.3=* Cyan - Tick | |
of.options.LAGOMETER.tooltip.4=* Blau - Geplante Ausführungen | |
of.options.LAGOMETER.tooltip.5=* Lila - Chunks hochladen | |
of.options.LAGOMETER.tooltip.6=* Rot - Chunkaktualisierungen | |
of.options.LAGOMETER.tooltip.7=* Gelb - Sichtbarkeitstest | |
of.options.LAGOMETER.tooltip.8=* Grün - Gelände rendern | |
of.options.PROFILER=Debug-Diagramm | |
of.options.PROFILER.tooltip.1=Debug-Diagramm | |
of.options.PROFILER.tooltip.2= An - Debug-Diagramm ist aktiviert, langsamer | |
of.options.PROFILER.tooltip.3= Aus - Debug-Diagramm ist nicht aktiviert, schneller | |
of.options.PROFILER.tooltip.4=Das Debug-Diagramm sammelt und stellt Debuginforma- | |
of.options.PROFILER.tooltip.5=tionen dar, wenn der Debugbildschirm geöffnet ist (F3). | |
of.options.WEATHER=Wetter | |
of.options.WEATHER.tooltip.1=Wetter | |
of.options.WEATHER.tooltip.2= An - Wetter ist aktiv, langsamer | |
of.options.WEATHER.tooltip.3= Aus - Wetter ist nicht aktiv, schneller | |
of.options.WEATHER.tooltip.4=Das Wetter kontrolliert Regen, Schnee und Gewitter. | |
of.options.WEATHER.tooltip.5=Wetterkontrolle ist nur im Einzelspielermodus möglich. | |
of.options.time.dayOnly=Nur Tag | |
of.options.time.nightOnly=Nur Nacht | |
of.options.TIME=Zeit | |
of.options.TIME.tooltip.1=Zeit | |
of.options.TIME.tooltip.2= Standard - Normaler Tag-Nacht-Zyklus | |
of.options.TIME.tooltip.3= Nur Tag - Nur Tag | |
of.options.TIME.tooltip.4= Nur Nacht - Nur Nacht | |
of.options.TIME.tooltip.5=Diese Einstellung ist nur im Kreativmodus und | |
of.options.TIME.tooltip.6=im Einzelspielermodus wirksam. | |
options.fullscreen.tooltip.1=Vollbildschirm | |
options.fullscreen.tooltip.2= An - Benutze Vollbildschirmmodus | |
options.fullscreen.tooltip.3= Aus - Benutze Fenstermodus | |
options.fullscreen.tooltip.4=Der Vollbildschirmmodus könnte schneller oder langsamer | |
options.fullscreen.tooltip.5=als der Fenstermodus sein, das kommt auf die Grafik- | |
options.fullscreen.tooltip.6=karte an. | |
of.options.FULLSCREEN_MODE=Vollbild-Auflösung | |
of.options.FULLSCREEN_MODE.tooltip.1=Vollbild-Auflösung | |
of.options.FULLSCREEN_MODE.tooltip.2= Standard - Benutze Bildschirmauflösung, langsamer | |
of.options.FULLSCREEN_MODE.tooltip.3= WxH - Benutze andere Auflösung, könnte schneller sein | |
of.options.FULLSCREEN_MODE.tooltip.4=Die ausgewählte Auflösung wird im Vollbildschirmmodus | |
of.options.FULLSCREEN_MODE.tooltip.5=verwendet (F11). Kleinere Auflösungen sollten generell | |
of.options.FULLSCREEN_MODE.tooltip.5=schneller sein. | |
of.options.SHOW_FPS=Bildrate anzeigen | |
of.options.SHOW_FPS.tooltip.1=Zeige kurze Bildrate- und Render-Informationen | |
of.options.SHOW_FPS.tooltip.2= C: - Chunkrenderer | |
of.options.SHOW_FPS.tooltip.3= E: - Objektrenderer + Blockrenderer | |
of.options.SHOW_FPS.tooltip.4= U: - Chunk-Aktualisierungen | |
of.options.SHOW_FPS.tooltip.5=Die Bildrate-Informationen werden nur gezeigt, wenn der | |
of.options.SHOW_FPS.tooltip.6=Debugbildschirm (F3) sichtbar ist. | |
of.options.save.default=Standard (2s) | |
of.options.save.20s=20s | |
of.options.save.3min=3min | |
of.options.save.30min=30min | |
of.options.AUTOSAVE_TICKS=Autospeichern | |
of.options.AUTOSAVE_TICKS.tooltip.1=Autospeicherintervall | |
of.options.AUTOSAVE_TICKS.tooltip.2=Normales Autospeicherintervall (2s) ist NICHT EMPFOHLEN. | |
of.options.AUTOSAVE_TICKS.tooltip.3=Autospeichern verursacht den berühmten Lag des Todes. |
# General | |
of.general.ambiguous=ambiguous | |
of.general.custom=Custom | |
of.general.from=From | |
of.general.id=Id | |
of.general.restart=restart | |
of.general.smart=Smart | |
# Keys | |
of.key.zoom=Zoom | |
# Message | |
of.message.aa.shaders1=Antialiasing is not compatible with Shaders. | |
of.message.aa.shaders2=Please disable Shaders to enable this option. | |
of.message.af.shaders1=Anisotropic Filtering is not compatible with Shaders. | |
of.message.af.shaders2=Please disable Shaders to enable this option. | |
of.message.fr.shaders1=Fast Render is not compatible with Shaders. | |
of.message.fr.shaders2=Please disable Shaders to enable this option. | |
of.message.shaders.aa1=Shaders are not compatible with Antialiasing. | |
of.message.shaders.aa2=Please set Quality -> Antialiasing to OFF and restart the game. | |
of.message.shaders.af1=Shaders are not compatible with Anisotropic Filtering. | |
of.message.shaders.af2=Please set Quality -> Anisotropic Filtering to OFF. | |
of.message.shaders.fr1=Shaders are not compatible with Fast Render. | |
of.message.shaders.fr2=Please set Performance -> Fast Render to OFF. | |
of.message.newVersion=A new §eOptiFine§f version is available: §e%s§f | |
of.message.java64Bit=You can install §e64-bit Java§f to increase performance | |
of.message.openglError=§eOpenGL Error§f: %s (%s) | |
of.message.shaders.loading=Loading shaders: %s | |
of.message.other.reset=Reset all video settings to their default values? | |
# Video settings | |
options.graphics.tooltip.1=Visual quality | |
options.graphics.tooltip.2= Fast - lower quality, faster | |
options.graphics.tooltip.3= Fancy - higher quality, slower | |
options.graphics.tooltip.4=Changes the appearance of clouds, leaves, water, | |
options.graphics.tooltip.5=shadows and grass sides. | |
of.options.renderDistance.extreme=Extreme | |
options.renderDistance.tooltip.1=Visible distance | |
options.renderDistance.tooltip.2= 2 Tiny - 32m (fastest) | |
options.renderDistance.tooltip.3= 4 Short - 64m (faster) | |
options.renderDistance.tooltip.4= 8 Normal - 128m | |
options.renderDistance.tooltip.5= 16 Far - 256m (slower) | |
options.renderDistance.tooltip.6= 32 Extreme - 512m (slowest!) | |
options.renderDistance.tooltip.7=The Extreme view distance is very resource demanding! | |
options.renderDistance.tooltip.8=Values over 16 Far are only effective in local worlds. | |
options.ao.tooltip.1=Smooth lighting | |
options.ao.tooltip.2= OFF - no smooth lighting (faster) | |
options.ao.tooltip.3= Minimum - simple smooth lighting (slower) | |
options.ao.tooltip.4= Maximum - complex smooth lighting (slowest) | |
options.framerateLimit.tooltip.1=Max framerate | |
options.framerateLimit.tooltip.2= VSync - limit to monitor framerate (60, 30, 20) | |
options.framerateLimit.tooltip.3= 5-255 - variable | |
options.framerateLimit.tooltip.4= Unlimited - no limit (fastest) | |
options.framerateLimit.tooltip.5=The framerate limit decreases the FPS even if | |
options.framerateLimit.tooltip.6=the limit value is not reached. | |
of.options.framerateLimit.vsync=VSync | |
of.options.AO_LEVEL=Smooth Lighting Level | |
of.options.AO_LEVEL.tooltip.1=Smooth lighting level | |
of.options.AO_LEVEL.tooltip.2= OFF - no shadows | |
of.options.AO_LEVEL.tooltip.3= 50%% - light shadows | |
of.options.AO_LEVEL.tooltip.4= 100%% - dark shadows | |
options.viewBobbing.tooltip.1=More realistic movement. | |
options.viewBobbing.tooltip.2=When using mipmaps set it to OFF for best results. | |
options.guiScale.tooltip.1=GUI Scale | |
options.guiScale.tooltip.2=Smaller GUI might be faster | |
options.vbo.tooltip.1=Vertex Buffer Objects | |
options.vbo.tooltip.2=Uses an alternative rendering model which is usually | |
options.vbo.tooltip.3=faster (5-10%%) than the default rendering. | |
options.gamma.tooltip.1=Changes the brightness of darker objects | |
options.gamma.tooltip.2= Moody - standard brightness | |
options.gamma.tooltip.3= 1-99%% - variable | |
options.gamma.tooltip.4= Bright - maximum brightness for darker objects | |
options.gamma.tooltip.5=This options does not change the brightness of | |
options.gamma.tooltip.6=fully black objects | |
options.anaglyph.tooltip.1=3D Anaglyph | |
options.anaglyph.tooltip.2=Enables a stereoscopic 3D effect using different colors | |
options.anaglyph.tooltip.3=for each eye. | |
options.anaglyph.tooltip.4=Requires red-cyan glasses for proper viewing. | |
options.blockAlternatives.tooltip.1=Alternate Blocks | |
options.blockAlternatives.tooltip.2=Uses alternative block models for some blocks. | |
options.blockAlternatives.tooltip.3=Depends on the selected resource pack. | |
of.options.FOG_FANCY=Fog | |
of.options.FOG_FANCY.tooltip.1=Fog type | |
of.options.FOG_FANCY.tooltip.2= Fast - faster fog | |
of.options.FOG_FANCY.tooltip.3= Fancy - slower fog, looks better | |
of.options.FOG_FANCY.tooltip.4= OFF - no fog, fastest | |
of.options.FOG_FANCY.tooltip.5=The fancy fog is available only if it is supported by the | |
of.options.FOG_FANCY.tooltip.6=graphic card. | |
of.options.FOG_START=Fog Start | |
of.options.FOG_START.tooltip.1=Fog start | |
of.options.FOG_START.tooltip.2= 0.2 - the fog starts near the player | |
of.options.FOG_START.tooltip.3= 0.8 - the fog starts far from the player | |
of.options.FOG_START.tooltip.4=This option usually does not affect the performance. | |
of.options.CHUNK_LOADING=Chunk Loading | |
of.options.CHUNK_LOADING.tooltip.1=Chunk Loading | |
of.options.CHUNK_LOADING.tooltip.2= Default - unstable FPS when loading chunks | |
of.options.CHUNK_LOADING.tooltip.3= Smooth - stable FPS | |
of.options.CHUNK_LOADING.tooltip.4= Multi-Core - stable FPS, 3x faster world loading | |
of.options.CHUNK_LOADING.tooltip.5=Smooth and Multi-Core remove the stuttering and | |
of.options.CHUNK_LOADING.tooltip.6=freezes caused by chunk loading. | |
of.options.CHUNK_LOADING.tooltip.7=Multi-Core can speed up 3x the world loading and | |
of.options.CHUNK_LOADING.tooltip.8=increase FPS by using a second CPU core. | |
of.options.chunkLoading.smooth=Smooth | |
of.options.chunkLoading.multiCore=Multi-Core | |
of.options.shaders=Shaders... | |
of.options.shadersTitle=Shaders | |
of.options.shaders.packNone=OFF | |
of.options.shaders.packDefault=(internal) | |
of.options.shaders.ANTIALIASING=Antialiasing | |
of.options.shaders.NORMAL_MAP=Normal Map | |
of.options.shaders.SPECULAR_MAP=Specular Map | |
of.options.shaders.RENDER_RES_MUL=Render Quality | |
of.options.shaders.SHADOW_RES_MUL=Shadow Quality | |
of.options.shaders.HAND_DEPTH_MUL=Hand Depth | |
of.options.shaders.CLOUD_SHADOW=Cloud Shadow | |
of.options.shaders.OLD_HAND_LIGHT=Old Hand Light | |
of.options.shaders.OLD_LIGHTING=Old Lighting | |
of.options.shaders.SHADER_PACK=Shader Pack | |
of.options.shaders.shadersFolder=Shaders Folder | |
of.options.shaders.shaderOptions=Shader Options... | |
of.options.shaderOptionsTitle=Shader Options | |
of.options.quality=Quality... | |
of.options.qualityTitle=Quality Settings | |
of.options.details=Details... | |
of.options.detailsTitle=Detail Settings | |
of.options.performance=Performance... | |
of.options.performanceTitle=Performance Settings | |
of.options.animations=Animations... | |
of.options.animationsTitle=Animation Settings | |
of.options.other=Other... | |
of.options.otherTitle=Other Settings | |
of.options.other.reset=Reset Video Settings... | |
of.shaders.profile=Profile | |
# Quality | |
of.options.mipmap.bilinear=Bilinear | |
of.options.mipmap.linear=Linear | |
of.options.mipmap.nearest=Nearest | |
of.options.mipmap.trilinear=Trilinear | |
options.mipmapLevels.tooltip.1=Visual effect which makes distant objects look better | |
options.mipmapLevels.tooltip.2=by smoothing the texture details | |
options.mipmapLevels.tooltip.3= OFF - no smoothing | |
options.mipmapLevels.tooltip.4= 1 - minimum smoothing | |
options.mipmapLevels.tooltip.5= 4 - maximum smoothing | |
options.mipmapLevels.tooltip.6=This option usually does not affect the performance. | |
of.options.MIPMAP_TYPE=Mipmap Type | |
of.options.MIPMAP_TYPE.tooltip.1=Visual effect which makes distant objects look better | |
of.options.MIPMAP_TYPE.tooltip.2=by smoothing the texture details | |
of.options.MIPMAP_TYPE.tooltip.3= Nearest - rough smoothing (fastest) | |
of.options.MIPMAP_TYPE.tooltip.4= Linear - normal smoothing | |
of.options.MIPMAP_TYPE.tooltip.5= Bilinear - fine smoothing | |
of.options.MIPMAP_TYPE.tooltip.6= Trilinear - finest smoothing (slowest) | |
of.options.AA_LEVEL=Antialiasing | |
of.options.AA_LEVEL.tooltip.1=Antialiasing | |
of.options.AA_LEVEL.tooltip.2= OFF - (default) no antialiasing (faster) | |
of.options.AA_LEVEL.tooltip.3= 2-16 - antialiased lines and edges (slower) | |
of.options.AA_LEVEL.tooltip.4=The Antialiasing smooths jagged lines and | |
of.options.AA_LEVEL.tooltip.5=sharp color transitions. | |
of.options.AA_LEVEL.tooltip.6=When enabled it may substantially decrease the FPS. | |
of.options.AA_LEVEL.tooltip.7=Not all levels are supported by all graphics cards. | |
of.options.AA_LEVEL.tooltip.8=Effective after a RESTART! | |
of.options.AF_LEVEL=Anisotropic Filtering | |
of.options.AF_LEVEL.tooltip.1=Anisotropic Filtering | |
of.options.AF_LEVEL.tooltip.2= OFF - (default) standard texture detail (faster) | |
of.options.AF_LEVEL.tooltip.3= 2-16 - finer details in mipmapped textures (slower) | |
of.options.AF_LEVEL.tooltip.4=The Anisotropic Filtering restores details in | |
of.options.AF_LEVEL.tooltip.5=mipmapped textures. | |
of.options.AF_LEVEL.tooltip.6=When enabled it may substantially decrease the FPS. | |
of.options.CLEAR_WATER=Clear Water | |
of.options.CLEAR_WATER.tooltip.1=Clear Water | |
of.options.CLEAR_WATER.tooltip.2= ON - clear, transparent water | |
of.options.CLEAR_WATER.tooltip.3= OFF - default water | |
of.options.RANDOM_MOBS=Random Mobs | |
of.options.RANDOM_MOBS.tooltip.1=Random Mobs | |
of.options.RANDOM_MOBS.tooltip.2= OFF - no random mobs, faster | |
of.options.RANDOM_MOBS.tooltip.3= ON - random mobs, slower | |
of.options.RANDOM_MOBS.tooltip.4=Random mobs uses random textures for the game creatures. | |
of.options.RANDOM_MOBS.tooltip.5=It needs a texture pack which has multiple mob textures. | |
of.options.BETTER_GRASS=Better Grass | |
of.options.BETTER_GRASS.tooltip.1=Better Grass | |
of.options.BETTER_GRASS.tooltip.2= OFF - default side grass texture, fastest | |
of.options.BETTER_GRASS.tooltip.3= Fast - full side grass texture, slower | |
of.options.BETTER_GRASS.tooltip.4= Fancy - dynamic side grass texture, slowest | |
of.options.BETTER_SNOW=Better Snow | |
of.options.BETTER_SNOW.tooltip.1=Better Snow | |
of.options.BETTER_SNOW.tooltip.2= OFF - default snow, faster | |
of.options.BETTER_SNOW.tooltip.3= ON - better snow, slower | |
of.options.BETTER_SNOW.tooltip.4=Shows snow under transparent blocks (fence, tall grass) | |
of.options.BETTER_SNOW.tooltip.5=when bordering with snow blocks | |
of.options.CUSTOM_FONTS=Custom Fonts | |
of.options.CUSTOM_FONTS.tooltip.1=Custom Fonts | |
of.options.CUSTOM_FONTS.tooltip.2= ON - uses custom fonts (default), slower | |
of.options.CUSTOM_FONTS.tooltip.3= OFF - uses default font, faster | |
of.options.CUSTOM_FONTS.tooltip.4=The custom fonts are supplied by the current | |
of.options.CUSTOM_FONTS.tooltip.5=texture pack | |
of.options.CUSTOM_COLORS=Custom Colors | |
of.options.CUSTOM_COLORS.tooltip.1=Custom Colors | |
of.options.CUSTOM_COLORS.tooltip.2= ON - uses custom colors (default), slower | |
of.options.CUSTOM_COLORS.tooltip.3= OFF - uses default colors, faster | |
of.options.CUSTOM_COLORS.tooltip.4=The custom colors are supplied by the current | |
of.options.CUSTOM_COLORS.tooltip.5=texture pack | |
of.options.SWAMP_COLORS=Swamp Colors | |
of.options.SWAMP_COLORS.tooltip.1=Swamp Colors | |
of.options.SWAMP_COLORS.tooltip.2= ON - use swamp colors (default), slower | |
of.options.SWAMP_COLORS.tooltip.3= OFF - do not use swamp colors, faster | |
of.options.SWAMP_COLORS.tooltip.4=The swamp colors affect grass, leaves, vines and water. | |
of.options.SMOOTH_BIOMES=Smooth Biomes | |
of.options.SMOOTH_BIOMES.tooltip.1=Smooth Biomes | |
of.options.SMOOTH_BIOMES.tooltip.2= ON - smoothing of biome borders (default), slower | |
of.options.SMOOTH_BIOMES.tooltip.3= OFF - no smoothing of biome borders, faster | |
of.options.SMOOTH_BIOMES.tooltip.4=The smoothing of biome borders is done by sampling and | |
of.options.SMOOTH_BIOMES.tooltip.5=averaging the color of all surrounding blocks. | |
of.options.SMOOTH_BIOMES.tooltip.6=Affected are grass, leaves, vines and water. | |
of.options.CONNECTED_TEXTURES=Connected Textures | |
of.options.CONNECTED_TEXTURES.tooltip.1=Connected Textures | |
of.options.CONNECTED_TEXTURES.tooltip.2= OFF - no connected textures (default) | |
of.options.CONNECTED_TEXTURES.tooltip.3= Fast - fast connected textures | |
of.options.CONNECTED_TEXTURES.tooltip.4= Fancy - fancy connected textures | |
of.options.CONNECTED_TEXTURES.tooltip.5=Connected textures joins the textures of glass, | |
of.options.CONNECTED_TEXTURES.tooltip.6=sandstone and bookshelves when placed next to | |
of.options.CONNECTED_TEXTURES.tooltip.7=each other. The connected textures are supplied | |
of.options.CONNECTED_TEXTURES.tooltip.8=by the current texture pack. | |
of.options.NATURAL_TEXTURES=Natural Textures | |
of.options.NATURAL_TEXTURES.tooltip.1=Natural Textures | |
of.options.NATURAL_TEXTURES.tooltip.2= OFF - no natural textures (default) | |
of.options.NATURAL_TEXTURES.tooltip.3= ON - use natural textures | |
of.options.NATURAL_TEXTURES.tooltip.4=Natural textures remove the gridlike pattern | |
of.options.NATURAL_TEXTURES.tooltip.5=created by repeating blocks of the same type. | |
of.options.NATURAL_TEXTURES.tooltip.6=It uses rotated and flipped variants of the base | |
of.options.NATURAL_TEXTURES.tooltip.7=block texture. The configuration for the natural | |
of.options.NATURAL_TEXTURES.tooltip.8=textures is supplied by the current texture pack | |
of.options.CUSTOM_SKY=Custom Sky | |
of.options.CUSTOM_SKY.tooltip.1=Custom Sky | |
of.options.CUSTOM_SKY.tooltip.2= ON - custom sky textures (default), slow | |
of.options.CUSTOM_SKY.tooltip.3= OFF - default sky, faster | |
of.options.CUSTOM_SKY.tooltip.4=The custom sky textures are supplied by the current | |
of.options.CUSTOM_SKY.tooltip.5=texture pack | |
of.options.CUSTOM_ITEMS=Custom Items | |
of.options.CUSTOM_ITEMS.tooltip.1=Custom Items | |
of.options.CUSTOM_ITEMS.tooltip.2= ON - custom item textures (default), slow | |
of.options.CUSTOM_ITEMS.tooltip.3= OFF - default item textures, faster | |
of.options.CUSTOM_ITEMS.tooltip.4=The custom item textures are supplied by the current | |
of.options.CUSTOM_ITEMS.tooltip.5=texture pack | |
# Details | |
of.options.CLOUDS=Clouds | |
of.options.CLOUDS.tooltip.1=Clouds | |
of.options.CLOUDS.tooltip.2= Default - as set by setting Graphics | |
of.options.CLOUDS.tooltip.3= Fast - lower quality, faster | |
of.options.CLOUDS.tooltip.4= Fancy - higher quality, slower | |
of.options.CLOUDS.tooltip.5= OFF - no clouds, fastest | |
of.options.CLOUDS.tooltip.6=Fast clouds are rendered 2D. | |
of.options.CLOUDS.tooltip.7=Fancy clouds are rendered 3D. | |
of.options.CLOUD_HEIGHT=Cloud Height | |
of.options.CLOUD_HEIGHT.tooltip.1=Cloud Height | |
of.options.CLOUD_HEIGHT.tooltip.2= OFF - default height | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - above world height limit | |
of.options.TREES=Trees | |
of.options.TREES.tooltip.1=Trees | |
of.options.TREES.tooltip.2= Default - as set by setting Graphics | |
of.options.TREES.tooltip.3= Fast - lower quality, faster | |
of.options.TREES.tooltip.4= Smart - higher quality, fast | |
of.options.TREES.tooltip.5= Fancy - highest quality, slower | |
of.options.TREES.tooltip.6=Fast trees have opaque leaves. | |
of.options.TREES.tooltip.7=Fancy and smart trees have transparent leaves. | |
of.options.RAIN=Rain & Snow | |
of.options.RAIN.tooltip.1=Rain & Snow | |
of.options.RAIN.tooltip.2= Default - as set by setting Graphics | |
of.options.RAIN.tooltip.3= Fast - light rain/snow, faster | |
of.options.RAIN.tooltip.4= Fancy - heavy rain/snow, slower | |
of.options.RAIN.tooltip.5= OFF - no rain/snow, fastest | |
of.options.RAIN.tooltip.6=When rain is OFF the splashes and rain sounds | |
of.options.RAIN.tooltip.7=are still active. | |
of.options.SKY=Sky | |
of.options.SKY.tooltip.1=Sky | |
of.options.SKY.tooltip.2= ON - sky is visible, slower | |
of.options.SKY.tooltip.3= OFF - sky is not visible, faster | |
of.options.SKY.tooltip.4=When sky is OFF the moon and sun are still visible. | |
of.options.STARS=Stars | |
of.options.STARS.tooltip.1=Stars | |
of.options.STARS.tooltip.2= ON - stars are visible, slower | |
of.options.STARS.tooltip.3= OFF - stars are not visible, faster | |
of.options.SUN_MOON=Sun & Moon | |
of.options.SUN_MOON.tooltip.1=Sun & Moon | |
of.options.SUN_MOON.tooltip.2= ON - sun and moon are visible (default) | |
of.options.SUN_MOON.tooltip.3= OFF - sun and moon are not visible (faster) | |
of.options.SHOW_CAPES=Show Capes | |
of.options.SHOW_CAPES.tooltip.1=Show Capes | |
of.options.SHOW_CAPES.tooltip.2= ON - show player capes (default) | |
of.options.SHOW_CAPES.tooltip.3= OFF - do not show player capes | |
of.options.TRANSLUCENT_BLOCKS=Translucent Blocks | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=Translucent Blocks | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= Fancy - correct color blending (default) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= Fast - fast color blending (faster) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4=Controls the color blending of translucent blocks | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=with different color (stained glass, water, ice) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=when placed behind each other with air between them. | |
of.options.HELD_ITEM_TOOLTIPS=Held Item Tooltips | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=Held item tooltips | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= ON - show tooltips for held items (default) | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= OFF - do not show tooltips for held items | |
of.options.DROPPED_ITEMS=Dropped Items | |
of.options.DROPPED_ITEMS.tooltip.1=Dropped Items | |
of.options.DROPPED_ITEMS.tooltip.2= Default - as set by setting Graphics | |
of.options.DROPPED_ITEMS.tooltip.3= Fast - 2D dropped items, faster | |
of.options.DROPPED_ITEMS.tooltip.4= Fancy - 3D dropped items, slower | |
options.entityShadows.tooltip.1=Entity Shadows | |
options.entityShadows.tooltip.2= ON - show entity shadows | |
options.entityShadows.tooltip.3= OFF - do not show entity shadows | |
of.options.VIGNETTE=Vignette | |
of.options.VIGNETTE.tooltip.1=Visual effect which slightly darkens the screen corners | |
of.options.VIGNETTE.tooltip.2= Default - as set by the setting Graphics (default) | |
of.options.VIGNETTE.tooltip.3= Fast - vignette disabled (faster) | |
of.options.VIGNETTE.tooltip.4= Fancy - vignette enabled (slower) | |
of.options.VIGNETTE.tooltip.5=The vignette may have a significant effect on the FPS, | |
of.options.VIGNETTE.tooltip.6=especially when playing fullscreen. | |
of.options.VIGNETTE.tooltip.7=The vignette effect is very subtle and can safely | |
of.options.VIGNETTE.tooltip.8=be disabled | |
of.options.DYNAMIC_FOV=Dynamic FOV | |
of.options.DYNAMIC_FOV.tooltip.1=Dynamic FOV | |
of.options.DYNAMIC_FOV.tooltip.2= ON - enable dynamic FOV (default) | |
of.options.DYNAMIC_FOV.tooltip.3= OFF - disable dynamic FOV | |
of.options.DYNAMIC_FOV.tooltip.4=Changes the field of view (FOV) when flying, sprinting | |
of.options.DYNAMIC_FOV.tooltip.5=or pulling a bow. | |
of.options.DYNAMIC_LIGHTS=Dynamic Lights | |
of.options.DYNAMIC_LIGHTS.tooltip.1=Dynamic Lights | |
of.options.DYNAMIC_LIGHTS.tooltip.2= OFF - no dynamic lights (default) | |
of.options.DYNAMIC_LIGHTS.tooltip.3= Fast - fast dynamic lights (updated every 500ms) | |
of.options.DYNAMIC_LIGHTS.tooltip.4= Fancy - fancy dynamic lights (updated in real-time) | |
of.options.DYNAMIC_LIGHTS.tooltip.5=Enables light emitting items (torch, glowstone, etc.) | |
of.options.DYNAMIC_LIGHTS.tooltip.6=to illuminate everything around them when held in hand, | |
of.options.DYNAMIC_LIGHTS.tooltip.7=equipped by other player or dropped on the ground | |
# Performance | |
of.options.SMOOTH_FPS=Smooth FPS | |
of.options.SMOOTH_FPS.tooltip.1=Stabilizes FPS by flushing the graphic driver buffers | |
of.options.SMOOTH_FPS.tooltip.2= OFF - no stabilization, FPS may fluctuate | |
of.options.SMOOTH_FPS.tooltip.3= ON - FPS stabilization | |
of.options.SMOOTH_FPS.tooltip.4=This option is graphics driver dependant and its effect | |
of.options.SMOOTH_FPS.tooltip.5=is not always visible | |
of.options.SMOOTH_WORLD=Smooth World | |
of.options.SMOOTH_WORLD.tooltip.1=Removes lag spikes caused by the internal server. | |
of.options.SMOOTH_WORLD.tooltip.2= OFF - no stabilization, FPS may fluctuate | |
of.options.SMOOTH_WORLD.tooltip.3= ON - FPS stabilization | |
of.options.SMOOTH_WORLD.tooltip.4=Stabilizes FPS by distributing the internal server load. | |
of.options.SMOOTH_WORLD.tooltip.5=Effective only for local worlds (single player). | |
of.options.FAST_RENDER=Fast Render | |
of.options.FAST_RENDER.tooltip.1=Fast Render | |
of.options.FAST_RENDER.tooltip.2= OFF - standard rendering (default) | |
of.options.FAST_RENDER.tooltip.3= ON - optimized rendering (faster) | |
of.options.FAST_RENDER.tooltip.4=Uses optimized rendering algorithm which decreases | |
of.options.FAST_RENDER.tooltip.5=the GPU load and may substantionally increase the FPS. | |
of.options.FAST_MATH=Fast Math | |
of.options.FAST_MATH.tooltip.1=Fast Math | |
of.options.FAST_MATH.tooltip.2= OFF - standard math (default) | |
of.options.FAST_MATH.tooltip.3= ON - faster math | |
of.options.FAST_MATH.tooltip.4=Uses optimized sin() and cos() functions which can | |
of.options.FAST_MATH.tooltip.5=better utilize the CPU cache and increase the FPS. | |
of.options.CHUNK_UPDATES=Chunk Updates | |
of.options.CHUNK_UPDATES.tooltip.1=Chunk updates | |
of.options.CHUNK_UPDATES.tooltip.2= 1 - slower world loading, higher FPS (default) | |
of.options.CHUNK_UPDATES.tooltip.3= 3 - faster world loading, lower FPS | |
of.options.CHUNK_UPDATES.tooltip.4= 5 - fastest world loading, lowest FPS | |
of.options.CHUNK_UPDATES.tooltip.5=Number of chunk updates per rendered frame, | |
of.options.CHUNK_UPDATES.tooltip.6=higher values may destabilize the framerate. | |
of.options.CHUNK_UPDATES_DYNAMIC=Dynamic Updates | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.1=Dynamic chunk updates | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.2= OFF - (default) standard chunk updates per frame | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.3= ON - more updates while the player is standing still | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.4=Dynamic updates force more chunk updates while | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.5=the player is standing still to load the world faster. | |
of.options.LAZY_CHUNK_LOADING=Lazy Chunk Loading | |
of.options.LAZY_CHUNK_LOADING.tooltip.1=Lazy Chunk Loading | |
of.options.LAZY_CHUNK_LOADING.tooltip.2= OFF - default server chunk loading | |
of.options.LAZY_CHUNK_LOADING.tooltip.3= ON - lazy server chunk loading (smoother) | |
of.options.LAZY_CHUNK_LOADING.tooltip.4=Smooths the integrated server chunk loading by | |
of.options.LAZY_CHUNK_LOADING.tooltip.5=distributing the chunks over several ticks. | |
of.options.LAZY_CHUNK_LOADING.tooltip.6=Turn it OFF if parts of the world do not load correctly. | |
of.options.LAZY_CHUNK_LOADING.tooltip.7=Effective only for local worlds and single-core CPU. | |
# Animations | |
of.options.animation.allOn=All ON | |
of.options.animation.allOff=All OFF | |
of.options.animation.dynamic=Dynamic | |
of.options.ANIMATED_WATER=Water Animated | |
of.options.ANIMATED_LAVA=Lava Animated | |
of.options.ANIMATED_FIRE=Fire Animated | |
of.options.ANIMATED_PORTAL=Portal Animated | |
of.options.ANIMATED_REDSTONE=Redstone Animated | |
of.options.ANIMATED_EXPLOSION=Explosion Animated | |
of.options.ANIMATED_FLAME=Flame Animated | |
of.options.ANIMATED_SMOKE=Smoke Animated | |
of.options.VOID_PARTICLES=Void Particles | |
of.options.WATER_PARTICLES=Water Particles | |
of.options.RAIN_SPLASH=Rain Splash | |
of.options.PORTAL_PARTICLES=Portal Particles | |
of.options.POTION_PARTICLES=Potion Particles | |
of.options.DRIPPING_WATER_LAVA=Dripping Water/Lava | |
of.options.ANIMATED_TERRAIN=Terrain Animated | |
of.options.ANIMATED_TEXTURES=Textures Animated | |
of.options.FIREWORK_PARTICLES=Firework Particles | |
# Other | |
of.options.LAGOMETER=Lagometer | |
of.options.LAGOMETER.tooltip.1=Shows the lagometer on the debug screen (F3). | |
of.options.LAGOMETER.tooltip.2=* Orange - Memory garbage collection | |
of.options.LAGOMETER.tooltip.3=* Cyan - Tick | |
of.options.LAGOMETER.tooltip.4=* Blue - Scheduled executables | |
of.options.LAGOMETER.tooltip.5=* Purple - Chunk upload | |
of.options.LAGOMETER.tooltip.6=* Red - Chunk updates | |
of.options.LAGOMETER.tooltip.7=* Yellow - Visibility check | |
of.options.LAGOMETER.tooltip.8=* Green - Render terrain | |
of.options.PROFILER=Debug Profiler | |
of.options.PROFILER.tooltip.1=Debug Profiler | |
of.options.PROFILER.tooltip.2= ON - debug profiler is active, slower | |
of.options.PROFILER.tooltip.3= OFF - debug profiler is not active, faster | |
of.options.PROFILER.tooltip.4=The debug profiler collects and shows debug information | |
of.options.PROFILER.tooltip.5=when the debug screen is open (F3) | |
of.options.WEATHER=Weather | |
of.options.WEATHER.tooltip.1=Weather | |
of.options.WEATHER.tooltip.2= ON - weather is active, slower | |
of.options.WEATHER.tooltip.3= OFF - weather is not active, faster | |
of.options.WEATHER.tooltip.4=The weather controls rain, snow and thunderstorms. | |
of.options.WEATHER.tooltip.5=Weather control is only possible for local worlds. | |
of.options.time.dayOnly=Day Only | |
of.options.time.nightOnly=Night Only | |
of.options.TIME=Time | |
of.options.TIME.tooltip.1=Time | |
of.options.TIME.tooltip.2= Default - normal day/night cycles | |
of.options.TIME.tooltip.3= Day Only - day only | |
of.options.TIME.tooltip.4= Night Only - night only | |
of.options.TIME.tooltip.5=The time setting is only effective in CREATIVE mode | |
of.options.TIME.tooltip.6=and for local worlds. | |
options.fullscreen.tooltip.1=Fullscreen | |
options.fullscreen.tooltip.2= ON - use fullscreen mode | |
options.fullscreen.tooltip.3= OFF - use window mode | |
options.fullscreen.tooltip.4=Fullscreen mode may be faster or slower than | |
options.fullscreen.tooltip.5=window mode, depending on the graphics card. | |
of.options.FULLSCREEN_MODE=Fullscreen Mode | |
of.options.FULLSCREEN_MODE.tooltip.1=Fullscreen mode | |
of.options.FULLSCREEN_MODE.tooltip.2= Default - use desktop screen resolution, slower | |
of.options.FULLSCREEN_MODE.tooltip.3= WxH - use custom screen resolution, may be faster | |
of.options.FULLSCREEN_MODE.tooltip.4=The selected resolution is used in fullscreen mode (F11). | |
of.options.FULLSCREEN_MODE.tooltip.5=Lower resolutions should generally be faster. | |
of.options.SHOW_FPS=Show FPS | |
of.options.SHOW_FPS.tooltip.1=Shows compact FPS and render information | |
of.options.SHOW_FPS.tooltip.2= C: - chunk renderers | |
of.options.SHOW_FPS.tooltip.3= E: - rendered entities + block entities | |
of.options.SHOW_FPS.tooltip.4= U: - chunk updates | |
of.options.SHOW_FPS.tooltip.5=The compact FPS information is only shown when the | |
of.options.SHOW_FPS.tooltip.6=debug screen is not visible. | |
of.options.save.default=Default (2s) | |
of.options.save.20s=20s | |
of.options.save.3min=3min | |
of.options.save.30min=30min | |
of.options.AUTOSAVE_TICKS=Autosave | |
of.options.AUTOSAVE_TICKS.tooltip.1=Autosave interval | |
of.options.AUTOSAVE_TICKS.tooltip.2=Default autosave interval (2s) is NOT RECOMMENDED. | |
of.options.AUTOSAVE_TICKS.tooltip.3=Autosave causes the famous Lag Spike of Death. | |
options.anaglyph.tooltip.1=3D mode used with red-cyan 3D glasses. |
# General | |
of.general.ambiguous=ambiguo | |
of.general.custom=Personalizado | |
of.general.from=De | |
of.general.id=ID | |
of.general.restart=reiniciar | |
of.general.smart=Dinámico | |
# Message | |
of.message.aa.shaders1=El anti-aliasing no es compatible con Shaders. | |
of.message.aa.shaders2=Desactiva Shaders para habilitar esta opción. | |
of.message.af.shaders1=El filtrado anisotrópico no es compatible con Shaders. | |
of.message.af.shaders2=Desactiva Shaders para habilitar esta opción. | |
of.message.fr.shaders1=El renderizado rápido no es compatible con Shaders. | |
of.message.fr.shaders2=Desactiva Shaders para habilitar esta opción. | |
of.message.shaders.aa1=Shaders no es compatible con el anti-aliasing activo. | |
of.message.shaders.aa2=Desactiva la opción ‘anti-aliasing’ en el menú ‘calidad’ y reinicia el juego. | |
of.message.shaders.af1=Shaders no es compatible con el filtrado anisótropico activo. | |
of.message.shaders.af2=Desactiva la opción ‘filtrado antisotrópico’ en el menú ‘calidad’. | |
of.message.shaders.fr1=Shaders no es compatible con el renderizado rapido activo. | |
of.message.shaders.fr2=Desactiva la opción ‘renderizado rapido' en el menú ‘rendimiento’. | |
of.message.newVersion=§fUna nueva versión de §eOptiFine §festá disponible: §e%s§f | |
of.message.java64Bit=§fPrueba instalar §eJava versión de 64bits §fpara incrementar el rendimiento. | |
of.message.openglError=§eError de OpenGL§f: %s (%s) | |
of.message.shaders.loading=Cargando shaders: %s | |
of.message.other.reset=¿Quieres reiniciar la configuración de video a los valores de inicio? | |
# Video settings | |
options.graphics.tooltip.1=Calidad visual. | |
options.graphics.tooltip.2= Rápida - Mayor velocidad. | |
options.graphics.tooltip.3= Detallada - Mejor apariencia. | |
options.graphics.tooltip.4=Cambia la apariencia de nubes, hojas, agua, | |
options.graphics.tooltip.5=sombras y bloques con pasto. | |
of.options.renderDistance.extreme=Extremo | |
options.renderDistance.tooltip.1=Distancia de renderizado. | |
options.renderDistance.tooltip.2= 2 Mínimo - 32 bloques. (más rápido) | |
options.renderDistance.tooltip.3= 4 Corto - 64 bloques. | |
options.renderDistance.tooltip.4= 8 Normal - 128 bloques. | |
options.renderDistance.tooltip.5= 16 Lejano - 256 bloques. | |
options.renderDistance.tooltip.6= 32 Extremo - 512 bloques. (más lento) | |
options.renderDistance.tooltip.7=La distancia de renderizado extrema demanda más recursos. | |
options.renderDistance.tooltip.8=Valores sobre de 16 solo son efectivos en mundos locales. | |
options.ao.tooltip.1=Iluminación suave. | |
options.ao.tooltip.2= NO - Sin suavizado de iluminación. (rápido) | |
options.ao.tooltip.3= Mínima - Simple, rudo, inceirto. (lento) | |
options.ao.tooltip.4= Máxima - Agradable, uniforme, neto. (más lento) | |
options.framerateLimit.tooltip.1=Restricción de FPS. | |
options.framerateLimit.tooltip.2= VSync - Reduce los FPS a 60, 30 o 20. | |
options.framerateLimit.tooltip.3= 5-255 - Cambiante. | |
options.framerateLimit.tooltip.4= Ilimitados - Excento, sin límites. | |
options.framerateLimit.tooltip.5=Los cuadros por segundo son reducidos aun si el | |
options.framerateLimit.tooltip.6=límite no es alcanzado. | |
of.options.framerateLimit.vsync=VSync | |
of.options.AO_LEVEL=Suavizado de iluminación | |
of.options.AO_LEVEL.tooltip.1=Nivel de iluminación suave. | |
of.options.AO_LEVEL.tooltip.2= NO - Sin sombras. | |
of.options.AO_LEVEL.tooltip.3= 50%% - Sombras claras. | |
of.options.AO_LEVEL.tooltip.4= 100%% - Sombras oscuras. | |
options.viewBobbing.tooltip.1=Movimiento de la cámara al caminar. Más realista. | |
options.viewBobbing.tooltip.2=Para mejores resultados, desactivar cundo utilice mipmaps. | |
options.guiScale.tooltip.1=Escala de interfaz. | |
options.guiScale.tooltip.2=Entre más pequeño podría ser más rápido. | |
options.vbo.tooltip.1=Vertex Buffer Objects (OpenGL). | |
options.vbo.tooltip.2=Utiliza un modelo alternativo de renderizado que incrementa | |
options.vbo.tooltip.3=la velocidad de 5 a 10%% que el renderizado habitual. | |
options.gamma.tooltip.1=Incrementa el brillo en objetos oscuros. | |
options.gamma.tooltip.2= Moderado - Brillo por defecto. | |
options.gamma.tooltip.3= Claro - Máximo brillo. | |
options.gamma.tooltip.4=Esta opción no afecta el brillo de objetos | |
options.gamma.tooltip.5=completamente oscurecidos. | |
options.anaglyph.tooltip.1=Anaglifo 3D. | |
options.anaglyph.tooltip.2=Habilita un efecto estereoscópico 3D con diferente color | |
options.anaglyph.tooltip.3=para cada ojo. | |
options.anaglyph.tooltip.4=Requiere de lentes 3D rojo-azul para una vista apropiada. | |
options.blockAlternatives.tooltip.1=Bloques alternativos. | |
options.blockAlternatives.tooltip.2=Usa modelos alternativos en algunos bloques. | |
options.blockAlternatives.tooltip.3=Depende del paquete de texturas seleccionado. | |
of.options.FOG_FANCY=Neblina | |
of.options.FOG_FANCY.tooltip.1=Tipo de neblina. | |
of.options.FOG_FANCY.tooltip.2= NO - Sin neblina, rápido. | |
of.options.FOG_FANCY.tooltip.3= Rápida - Neblina ligera. | |
of.options.FOG_FANCY.tooltip.4= Detallada - Neblina lenta, se ve mejor. | |
of.options.FOG_FANCY.tooltip.5=La neblina detallada solo está disponible si su tarjeta | |
of.options.FOG_FANCY.tooltip.6=de video lo soporta. | |
of.options.FOG_START=Distancia de neblina | |
of.options.FOG_START.tooltip.1=Donde empieza a verse la neblina. | |
of.options.FOG_START.tooltip.2= 0.2 - Desde cerca del jugador. | |
of.options.FOG_START.tooltip.3= 0.8 - Desde lejos del jugador. | |
of.options.FOG_START.tooltip.4=Esta opción normalmente no afecta el rendimiento. | |
of.options.CHUNK_LOADING=Carga de Chunks | |
of.options.CHUNK_LOADING.tooltip.1=Opción de carga de los pedazos del mapa (chunks). | |
of.options.CHUNK_LOADING.tooltip.2= Normal - Cuadros por segundo (FPS) inestables al cargar chunks. | |
of.options.CHUNK_LOADING.tooltip.3= Agradable - FPS constantes. | |
of.options.CHUNK_LOADING.tooltip.4= Multi-Core - FPS invariables y acelera la carga de los mapas. | |
of.options.CHUNK_LOADING.tooltip.5=Las opciónes de Agradable y Multi-Core estabilizan y evitan que el juego | |
of.options.CHUNK_LOADING.tooltip.6=se trabe al cargar chunks. | |
of.options.CHUNK_LOADING.tooltip.7=Multi-Core aumenta hasta tres veces la velocidad de carga de los mapas | |
of.options.CHUNK_LOADING.tooltip.8=y también aumenta los FPS ocupando un segundo núcleo del procesador. | |
of.options.chunkLoading.smooth=Agradable | |
of.options.chunkLoading.multiCore=Multi-Core | |
of.options.shaders=Shaders... | |
of.options.shadersTitle=Shaders | |
of.options.shaders.packNone=NINGUNO | |
of.options.shaders.packDefault=(interno) | |
of.options.shaders.ANTIALIASING=Anti-aliasing | |
of.options.shaders.NORMAL_MAP=Mapa normal | |
of.options.shaders.SPECULAR_MAP=Mapa espectacular | |
of.options.shaders.RENDER_RES_MUL=Rendimiento | |
of.options.shaders.SHADOW_RES_MUL=Sombras | |
of.options.shaders.HAND_DEPTH_MUL=Profundidad | |
of.options.shaders.CLOUD_SHADOW=Sombra de nubes | |
of.options.shaders.OLD_LIGHTING=Iluminación vieja | |
of.options.shaders.SHADER_PACK=Paquete de shader | |
of.options.shaders.shadersFolder=Folder de Shaders | |
of.options.shaders.shaderOptions=Opciones del Shader... | |
of.options.shaderOptionsTitle=Opciones del Shader | |
of.options.quality=Calidad... | |
of.options.qualityTitle=Configurar calidad. | |
of.options.details=Detalles... | |
of.options.detailsTitle=Configurar detalles. | |
of.options.performance=Rendimiento... | |
of.options.performanceTitle=Configuración del rendimiento. | |
of.options.animations=Animaciones... | |
of.options.animationsTitle=Configuraciones de animaciones. | |
of.options.other=Otro... | |
of.options.otherTitle=Otras configuraciones | |
of.options.other.reset=Reiniciar la configuracion de video... | |
of.shaders.profile=Perfil | |
# Quality | |
of.options.mipmap.bilinear=Bilinial | |
of.options.mipmap.linear=Lineal | |
of.options.mipmap.nearest=Más cercano | |
of.options.mipmap.trilinear=Trilineal | |
options.mipmapLevels.tooltip.1=Efecto visual que mejora la apariencia de objetos lejanos | |
options.mipmapLevels.tooltip.2=suavizando los detalles de la textura al redimensionarla. | |
options.mipmapLevels.tooltip.3= NO - Sin suavizar. | |
options.mipmapLevels.tooltip.4= 1 – Suavizado mínimo. | |
options.mipmapLevels.tooltip.5= 4 – Suavizado máximo. | |
options.mipmapLevels.tooltip.6=Esta opción no suele afectar el rendimiento. | |
of.options.MIPMAP_TYPE=Tipo de mipmap | |
of.options.MIPMAP_TYPE.tooltip.1=Efecto visual que mejora la apariencia de objetos lejanos | |
of.options.MIPMAP_TYPE.tooltip.2=suavizando los detalles de la textura. | |
of.options.MIPMAP_TYPE.tooltip.3= Más cercano - Suavizado mínimo. (más rápido) | |
of.options.MIPMAP_TYPE.tooltip.4= Lineal – Suavizado bajo. | |
of.options.MIPMAP_TYPE.tooltip.5= Bilineal – Suavizado alto. | |
of.options.MIPMAP_TYPE.tooltip.6= Trilineal – Suavizado máximo. (más lento) | |
of.options.AA_LEVEL=Anti-aliasing | |
of.options.AA_LEVEL.tooltip.1=Anti-aliasing. | |
of.options.AA_LEVEL.tooltip.2= NO - Por defecto. (rápido) | |
of.options.AA_LEVEL.tooltip.3= 2-16 – Líneas y esquinas más definidas. (lento) | |
of.options.AA_LEVEL.tooltip.4=El antialiasing mejora y define los bordes de las líneas | |
of.options.AA_LEVEL.tooltip.5=y las profundas trancisiones de color. | |
of.options.AA_LEVEL.tooltip.6=Esta opción puede sustancialemnte disminuir los FPS. | |
of.options.AA_LEVEL.tooltip.7=No todos los niveles son soportados por todas las tarjetas de video. | |
of.options.AA_LEVEL.tooltip.8=Los cambios serán efectivos al reinicio. | |
of.options.AF_LEVEL=Filtro anisotrópico | |
of.options.AF_LEVEL.tooltip.1=Filtrado anisotrópico. | |
of.options.AF_LEVEL.tooltip.2= NO - Por defecto. Sin efectos. (rápido) | |
of.options.AF_LEVEL.tooltip.3= 2-16 – Detalles más finos en texturas con mipmap. (lento) | |
of.options.AF_LEVEL.tooltip.4=El filtro anisotrópico reafirma detalles en texturas | |
of.options.AF_LEVEL.tooltip.5=que usan mipmap. | |
of.options.AF_LEVEL.tooltip.6=Esta opción puede disminuir los FPS. | |
of.options.CLEAR_WATER=Claridad del agua | |
of.options.CLEAR_WATER.tooltip.1=Al sumergirse en ella. | |
of.options.CLEAR_WATER.tooltip.2= NO – Agua normal. | |
of.options.CLEAR_WATER.tooltip.3= SÍ – Agua más transparente. | |
of.options.RANDOM_MOBS=Mobs aleatorios | |
of.options.RANDOM_MOBS.tooltip.1=Mobs aleaotrios. | |
of.options.RANDOM_MOBS.tooltip.2= NO – Sin skins aleatorios de mobs. (rápido) | |
of.options.RANDOM_MOBS.tooltip.3= SÍ – Skins de mobs aleatorios. (lento) | |
of.options.RANDOM_MOBS.tooltip.4=Esta opción habilita el uso de skins aleatorias para mobs por | |
of.options.RANDOM_MOBS.tooltip.5=lo que requiere de un paquete de texturas que los contenga. | |
of.options.BETTER_GRASS=Pasto bonito | |
of.options.BETTER_GRASS.tooltip.1=Modifica como se ven los lados de los bloques de tierra con pasto. | |
of.options.BETTER_GRASS.tooltip.2= NO – Predeterminada. (rápido) | |
of.options.BETTER_GRASS.tooltip.3= Rápida – Todos los lados se ven de pasto. | |
of.options.BETTER_GRASS.tooltip.4= Detallada – Textura dinámica de pasto en los lados. (lento) | |
of.options.BETTER_SNOW=Mejora de nieve | |
of.options.BETTER_SNOW.tooltip.1=Nieve especial. | |
of.options.BETTER_SNOW.tooltip.2= NO – Nieve por defecto. (rápido) | |
of.options.BETTER_SNOW.tooltip.3= SÍ – Mejora la nieve. (lento) | |
of.options.BETTER_SNOW.tooltip.4=Muestra nieve debajo de los bloques transparentes como vallas, | |
of.options.BETTER_SNOW.tooltip.5=pasto alto, cuando su base está rodeada por bloques de nieve. | |
of.options.CUSTOM_FONTS=Fuentes personalizadas | |
of.options.CUSTOM_FONTS.tooltip.1=Cambia la tipografía del texto. | |
of.options.CUSTOM_FONTS.tooltip.2= NO – Utiliza la fuente de letra por defecto. (rápido) | |
of.options.CUSTOM_FONTS.tooltip.3= SÍ – Usar fuentes de letra personalizadas. (lento) | |
of.options.CUSTOM_FONTS.tooltip.4=Esta opción utiliza la fuente de letra que contenga el | |
of.options.CUSTOM_FONTS.tooltip.5=paquete de texturas seleccionado. | |
of.options.CUSTOM_COLORS=Colores personalizadas | |
of.options.CUSTOM_COLORS.tooltip.1=Cambia los colores. | |
of.options.CUSTOM_COLORS.tooltip.2= NO - Por defecto. (rápido) | |
of.options.CUSTOM_COLORS.tooltip.3= SÍ – Utiliza otros colores. (lento) | |
of.options.CUSTOM_COLORS.tooltip.4=Esta opción emplea los colores que disponga del | |
of.options.CUSTOM_COLORS.tooltip.5=paquete de texturas seleccionado. | |
of.options.SWAMP_COLORS=Colores pantanosos | |
of.options.SWAMP_COLORS.tooltip.1=Colores pantanosos. | |
of.options.SWAMP_COLORS.tooltip.2= NO – No usa colores pantanosos. (rápido) | |
of.options.SWAMP_COLORS.tooltip.3= SÍ - Usa colores pantanosos. (lento) | |
of.options.SWAMP_COLORS.tooltip.4=Esta opción afecta los colores del pasto, lianas, hojas y agua. | |
of.options.SMOOTH_BIOMES=Biomas suavizados | |
of.options.SMOOTH_BIOMES.tooltip.1=Cambio entre biomas moderado y suavizado. | |
of.options.SMOOTH_BIOMES.tooltip.2= NO – Sin suavizado. (rápido) | |
of.options.SMOOTH_BIOMES.tooltip.3= SÍ – Suavizado. (lento) | |
of.options.SMOOTH_BIOMES.tooltip.4=El suavizado de las fronteras de los biomas colindantes se realiza | |
of.options.SMOOTH_BIOMES.tooltip.5=combinando y contemplando el color de los bloques de alrededor. | |
of.options.SMOOTH_BIOMES.tooltip.6=Solo afecta a hojas, pastos, lianas y agua. | |
of.options.CONNECTED_TEXTURES=Texturas conectadas | |
of.options.CONNECTED_TEXTURES.tooltip.1=Textruas conectadas. | |
of.options.CONNECTED_TEXTURES.tooltip.2= NO – Sin texturas conectadas. Por defecto. | |
of.options.CONNECTED_TEXTURES.tooltip.3= Rápido – Texturas conectadas rápidas. | |
of.options.CONNECTED_TEXTURES.tooltip.4= Detallada – Texturas conectadas finas. | |
of.options.CONNECTED_TEXTURES.tooltip.5=Es la forma en la que la textura de los bloques de cristal, | |
of.options.CONNECTED_TEXTURES.tooltip.6=arena, librerías, se conectan entre sí cuando son puestas | |
of.options.CONNECTED_TEXTURES.tooltip.7=junto a otras del mismo. Las texturas como se unen | |
of.options.CONNECTED_TEXTURES.tooltip.8=depende del paquete de texturas seleccionado. | |
of.options.NATURAL_TEXTURES=Texturas naturales | |
of.options.NATURAL_TEXTURES.tooltip.1=Apariencia normal y natural de la textura. | |
of.options.NATURAL_TEXTURES.tooltip.2= NO – Sin texturas mejoradas. Por defecto. | |
of.options.NATURAL_TEXTURES.tooltip.3= SÍ – Mejora la textura. | |
of.options.NATURAL_TEXTURES.tooltip.4=Esta opción evita que se tenga una visión repetitiva | |
of.options.NATURAL_TEXTURES.tooltip.5=de los bloques al juntar bloques del mismo tipo. | |
of.options.NATURAL_TEXTURES.tooltip.6=Usa variantes en el giro y la rotacón de la textura del | |
of.options.NATURAL_TEXTURES.tooltip.7=bloque. La configuración del ajuste depende del paquete | |
of.options.NATURAL_TEXTURES.tooltip.8=de texturas seleccionado. | |
of.options.CUSTOM_SKY=Cielo personalizado | |
of.options.CUSTOM_SKY.tooltip.1=Cielo personalizado. | |
of.options.CUSTOM_SKY.tooltip.2= NO – Cielo predeterminado. (rápido) | |
of.options.CUSTOM_SKY.tooltip.3= SÍ – Texturas del cielo personalizadas. Por defecto. (lento) | |
of.options.CUSTOM_SKY.tooltip.4=La textura para el cielo personalizado es obtenida del | |
of.options.CUSTOM_SKY.tooltip.5=paquete de texturas seleccionado. | |
of.options.CUSTOM_ITEMS=Obejetos personalizados | |
of.options.CUSTOM_ITEMS.tooltip.1=Usa texturas para los objetos. | |
of.options.CUSTOM_ITEMS.tooltip.2= NO – Texturas de objetos predeterminadas. (rápido) | |
of.options.CUSTOM_ITEMS.tooltip.3= SÍ – Texturas de objetos personalizadas. Por defecto. (lento) | |
of.options.CUSTOM_ITEMS.tooltip.4=Las texturas de los objetos personalizados se obtienen del | |
of.options.CUSTOM_ITEMS.tooltip.5=paquete de texturas seleccionado. | |
# Details | |
of.options.CLOUDS=Nube | |
of.options.CLOUDS.tooltip.1=Como se ven las nubes. | |
of.options.CLOUDS.tooltip.2= NO - Sin nubes. (más rápido) | |
of.options.CLOUDS.tooltip.3= Normal - Establecido en la configuración de calidad visual. | |
of.options.CLOUDS.tooltip.4= Rápida - Menor calidad. (rápido) | |
of.options.CLOUDS.tooltip.5= Detallada - Alta calidad. (lento) | |
of.options.CLOUDS.tooltip.6=Las nubes con menor calidad son renderizadas en 2D. | |
of.options.CLOUDS.tooltip.7=Las nubes con calidad alta son renderizadas en 3D. | |
of.options.CLOUD_HEIGHT=Altitud de nube | |
of.options.CLOUD_HEIGHT.tooltip.1=Que tan arriba se muestran las nubes. | |
of.options.CLOUD_HEIGHT.tooltip.2= NO - Altitud por defecto. | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - Por encima del límite de altitud. | |
of.options.TREES=Árboles | |
of.options.TREES.tooltip.1=Como se ven las hojas de los árboles. | |
of.options.TREES.tooltip.2= Normal - Establecido en la configuración de calidad visual. | |
of.options.TREES.tooltip.3= Rápida - Menor calidad. (más rápido) | |
of.options.TREES.tooltip.4= Dinámico - Mayor calidad. | |
of.options.TREES.tooltip.5= Detallada - Calidad alta. (más lento) | |
of.options.TREES.tooltip.6=Los árboles con menor calidad tienen las hojas opacas. | |
of.options.TREES.tooltip.7=Los árboles con mayor calidad o dinámicos tienen hojas transparentes. | |
of.options.RAIN=Nieve y lluvia | |
of.options.RAIN.tooltip.1=Lluvia y nieve. | |
of.options.RAIN.tooltip.2= NO - Sin nieve o lluvia. (más rápido) | |
of.options.RAIN.tooltip.3= Normal - Establecido en la configuración de calidad visual. | |
of.options.RAIN.tooltip.4= Rápida - Lluvia y nive ligera. (rápido) | |
of.options.RAIN.tooltip.5= Detallada - Lluvia y nieve pesada. (lento) | |
of.options.RAIN.tooltip.6=Esta opción no afecta a las salpicaduras o al ruido de la | |
of.options.RAIN.tooltip.7=lluvia que se siguen mostrando. | |
of.options.SKY=Cielo | |
of.options.SKY.tooltip.1=Cielo. | |
of.options.SKY.tooltip.2= NO - No se ve el cielo. (rápido) | |
of.options.SKY.tooltip.3= SÍ - Se ve el cielo. (lento) | |
of.options.SKY.tooltip.4=Si se desactiva, el sol y la luna aun pueden estar visibles. | |
of.options.STARS=Estrellas | |
of.options.STARS.tooltip.1=Visibilidad de estrellas del cielo nocturno. | |
of.options.STARS.tooltip.2= NO - Las estrellas no son visibles. (rápido) | |
of.options.STARS.tooltip.3= SÍ - Las estrellas son visibles. (lento) | |
of.options.SUN_MOON=Sol y luna | |
of.options.SUN_MOON.tooltip.1=Visibilidad de la luna y del sol. | |
of.options.SUN_MOON.tooltip.2= NO - El sol y la luna no son visibles. (más rápido) | |
of.options.SUN_MOON.tooltip.3= SÍ - El sol y la luna son visibles. Por defecto. | |
of.options.SHOW_CAPES=Mostrar capas | |
of.options.SHOW_CAPES.tooltip.1=Muestra las capas en los jugadores. | |
of.options.SHOW_CAPES.tooltip.2= NO - No mostrar la capa de los jugadores. | |
of.options.SHOW_CAPES.tooltip.3= SÍ - Mostrar la capa de los jugadores. Por defecto. | |
of.options.TRANSLUCENT_BLOCKS=Bloque translúcido | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=Bloques con transparencia. | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= Normal - Establecido en la configuración de calidad visual. | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= Rápida - Mezcla de colores ligera. (rápido) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4= Detallada - Corrección definida de colores. (lento) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=Controla el cambio de color entre bloques translúcidos (cristal | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=teñido, agua, hielo) cuando son puestos separados por aire. | |
of.options.HELD_ITEM_TOOLTIPS=Item en mano | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=Muestra información encima del hotbar al cambiar de item en mano. | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= NO - No muestra información. | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= SÍ - Muestra información. Por defecto. | |
of.options.DROPPED_ITEMS=Items caídos | |
of.options.DROPPED_ITEMS.tooltip.1=Afecta como se ven los items. | |
of.options.DROPPED_ITEMS.tooltip.2= Normal - Establecido en la configuración de calidad visual. | |
of.options.DROPPED_ITEMS.tooltip.3= Rápida - Los items caídos se ven en 2D. (rápido) | |
of.options.DROPPED_ITEMS.tooltip.4= Detallada - Los items caídos se ven en 3D. (lento) | |
options.entityShadows.tooltip.1=Sombra de entidades (mobs, jugadores, etcétera). | |
options.entityShadows.tooltip.2= NO - No muestra sombras de entidades. | |
options.entityShadows.tooltip.3= SÍ - Muestra sombras de entidades. | |
of.options.VIGNETTE=Viñeta | |
of.options.VIGNETTE.tooltip.1=Efecto visual, ligeramente oscurece las esquinas en la pantalla. | |
of.options.VIGNETTE.tooltip.2= Normal - Establecido en la configuración de calidad visual. | |
of.options.VIGNETTE.tooltip.3= Rápida - Efecto desactivado. (rápido) | |
of.options.VIGNETTE.tooltip.4= Detallda - Efecto activado. (lento) | |
of.options.VIGNETTE.tooltip.5=Esta opción puede tener un impacto significativo en los FPS, | |
of.options.VIGNETTE.tooltip.6=especialmente cuando juega en pantalla completa. | |
of.options.VIGNETTE.tooltip.7=Este efecto es liviano por lo que puede ser desactivado | |
of.options.VIGNETTE.tooltip.8=con seguridad en cualquier momento. | |
# Performance | |
of.options.SMOOTH_FPS=Estabilizar FPS | |
of.options.SMOOTH_FPS.tooltip.1=Fija los FPS nivelando el buffer del driver de video. | |
of.options.SMOOTH_FPS.tooltip.2= NO - Sin estabilización. FPS cambiantes. | |
of.options.SMOOTH_FPS.tooltip.3= SÍ - Estabilización de FPS. | |
of.options.SMOOTH_FPS.tooltip.4=Esta opción depende del controlador de la tarjeta de gráficos. | |
of.options.SMOOTH_FPS.tooltip.5=Su efecto podría no siempre ser notorio. | |
of.options.SMOOTH_WORLD=Carga ágil | |
of.options.SMOOTH_WORLD.tooltip.1=Disminuye el lag repentino causado por el servidor interno. | |
of.options.SMOOTH_WORLD.tooltip.2= NO - Sin estabilización. FPS variantes. | |
of.options.SMOOTH_WORLD.tooltip.3= SÍ - Estabiliza los FPS. | |
of.options.SMOOTH_WORLD.tooltip.4=Estabiliza los FPS, dividiendo la carga del servidor interno. | |
of.options.SMOOTH_WORLD.tooltip.5=Efectivo solo en mundos locales. | |
of.options.FAST_RENDER=Renderizado rápido | |
of.options.FAST_RENDER.tooltip.1=Renderizado rápido. | |
of.options.FAST_RENDER.tooltip.2= NO - Renderizado estandard. Por defecto. | |
of.options.FAST_RENDER.tooltip.3= SÍ - Renderizado optimizado. (rápido) | |
of.options.FAST_RENDER.tooltip.4=Utiliza un algoritmo de renderizado optimizado que reduce | |
of.options.FAST_RENDER.tooltip.5=la carga del GPU, aumentando sustancialmente los FPS. | |
of.options.FAST_MATH=Matemática avanzada | |
of.options.FAST_MATH.tooltip.1=Matemática avanzada. | |
of.options.FAST_MATH.tooltip.2= NO - Matemática estandard. Por defecto. | |
of.options.FAST_MATH.tooltip.3= SÍ - Matemática rápida. | |
of.options.FAST_MATH.tooltip.4=Utiliza funciones sin() y cos() optimizadas usando | |
of.options.FAST_MATH.tooltip.5=el cache del CPU e incrementa los FPS. | |
of.options.CHUNK_UPDATES=Actualizaciones de chunks | |
of.options.CHUNK_UPDATES.tooltip.1=Carga de chunks del mapa por FPS (cuadros por segundo). | |
of.options.CHUNK_UPDATES.tooltip.2= 1 - Carga del mundo lenta. Más FPS. Por defecto. | |
of.options.CHUNK_UPDATES.tooltip.3= 3 - Carga del mundo rápida. Menos FPS. | |
of.options.CHUNK_UPDATES.tooltip.4= 5 - Carga del mundo más rápida. Menos FPS. | |
of.options.CHUNK_UPDATES.tooltip.5=Es el número de actualizaciones de los pedazos del mapa renderizados | |
of.options.CHUNK_UPDATES.tooltip.6=por FPS, valores muy altos pueden desestabilizar los FPS. | |
of.options.CHUNK_UPDATES_DYNAMIC=Actualizaciones dinámicas | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.1=Actualizaciones dinámicas de chunks. | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.2= NO - Actualizaciones de chunks por FPS estandar. Por defecto. | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.3= SÍ - Actualizaciones incluso cuando el jugador no se mueve. | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.4=Esta opción facilita actualizaciones de chunks incluso mientras el | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.5=jugador no se mueve, para cargar el mundo mucho más rápido. | |
of.options.LAZY_CHUNK_LOADING=Carga retardada | |
of.options.LAZY_CHUNK_LOADING.tooltip.1=Carga de los pedazos del mapa con retardo. | |
of.options.LAZY_CHUNK_LOADING.tooltip.2= NO - Carga de chunks determinada por el servidor. | |
of.options.LAZY_CHUNK_LOADING.tooltip.3= SÍ - Carga de chunks lenta. Más atractiva. | |
of.options.LAZY_CHUNK_LOADING.tooltip.4=Retraza en varios ticks la carga de chunks integrada por el | |
of.options.LAZY_CHUNK_LOADING.tooltip.5=servidor. | |
of.options.LAZY_CHUNK_LOADING.tooltip.6=Desactiva esta opción si el mapa no se carga correctamente. | |
of.options.LAZY_CHUNK_LOADING.tooltip.7=Efectivo solo en mundos locales y con procesadores de 1 solo núcleo. | |
# Animations | |
of.options.animation.allOn=Activar todo | |
of.options.animation.allOff=Desactivar todo | |
of.options.animation.dynamic=Dinámico | |
of.options.ANIMATED_WATER=Animación de agua | |
of.options.ANIMATED_LAVA=Animación de lava | |
of.options.ANIMATED_FIRE=Animación de fuego | |
of.options.ANIMATED_PORTAL=Animación del portal | |
of.options.ANIMATED_REDSTONE=Animación del redstone | |
of.options.ANIMATED_EXPLOSION=Animación de explosiones | |
of.options.ANIMATED_FLAME=Animación de fuego | |
of.options.ANIMATED_SMOKE=Animación de humo | |
of.options.VOID_PARTICLES=Partículas del Fin | |
of.options.WATER_PARTICLES=Partículas de agua | |
of.options.RAIN_SPLASH=Salpicadura de lluvia | |
of.options.PORTAL_PARTICLES=Partículas de portal | |
of.options.POTION_PARTICLES=Partículas de pociones | |
of.options.DRIPPING_WATER_LAVA=Goteo de agua y lava | |
of.options.ANIMATED_TERRAIN=Animación del terreno | |
of.options.ANIMATED_TEXTURES=Animación de texturas | |
of.options.FIREWORK_PARTICLES=Partículas de cohetes | |
# Other | |
of.options.LAGOMETER=Medidor de lag | |
of.options.LAGOMETER.tooltip.1=Muestra una gráfica en la pantalla de depuración (F3). | |
of.options.LAGOMETER.tooltip.2=* Naranja - Memoria desperdiciada. | |
of.options.LAGOMETER.tooltip.3=* Cian - Tick. | |
of.options.LAGOMETER.tooltip.4=* Azul - Tareas programadas. | |
of.options.LAGOMETER.tooltip.5=* Purpura - Carga de chunks. | |
of.options.LAGOMETER.tooltip.6=* Rojo - Actualizaciones de chunks. | |
of.options.LAGOMETER.tooltip.7=* Amarillo - Visibilidad. | |
of.options.LAGOMETER.tooltip.8=* Verde - Terreno de renderizado. | |
of.options.PROFILER=Debug | |
of.options.PROFILER.tooltip.1=Perfil de debug. | |
of.options.PROFILER.tooltip.2= NO - Debug desactivado. (rápido) | |
of.options.PROFILER.tooltip.3= SÍ - Debug activado. (lento) | |
of.options.PROFILER.tooltip.4=Recopila información de debug y la muestra en | |
of.options.PROFILER.tooltip.5=la pantalla de dupuración (F3). | |
of.options.WEATHER=Clima | |
of.options.WEATHER.tooltip.1=Clima. | |
of.options.WEATHER.tooltip.2= NO - Desactiva el clima. (rápido) | |
of.options.WEATHER.tooltip.3= SÍ - Activa el clima. (lento) | |
of.options.WEATHER.tooltip.4=Esta opción afecta a las lluvias, la nieve y las tormentas. | |
of.options.WEATHER.tooltip.5=Solo funciona en mundos locales. | |
of.options.time.dayOnly=Día | |
of.options.time.nightOnly=Noche | |
of.options.TIME=Tiempo | |
of.options.TIME.tooltip.1=Establece el momento del día. | |
of.options.TIME.tooltip.2= Normal - Ciclo de dia y noche normal. | |
of.options.TIME.tooltip.3= Día - Siempre es de día. | |
of.options.TIME.tooltip.4= Noche - Siempre es de noche. | |
of.options.TIME.tooltip.5=Esta opción solo es efectiva estando en modo creativo | |
of.options.TIME.tooltip.6=y en mundos locales. | |
options.fullscreen.tooltip.1=Pantalla completa. | |
options.fullscreen.tooltip.2= NO - Modo de ventana. | |
options.fullscreen.tooltip.3= SÍ - Modo de pantalla completa. | |
options.fullscreen.tooltip.4=En pantalla completa funciona más rapido que en modo | |
options.fullscreen.tooltip.5=de ventana, dependiendo de la tarjeta de video. | |
of.options.FULLSCREEN_MODE=Resolución | |
of.options.FULLSCREEN_MODE.tooltip.1=Dimensiones al entrar en modo pantalla completa. | |
of.options.FULLSCREEN_MODE.tooltip.2= Default - Se ajusta a la pantalla. (lento) | |
of.options.FULLSCREEN_MODE.tooltip.3= Ancho por Altura - Utiliza la resolución personalizada. | |
of.options.FULLSCREEN_MODE.tooltip.4=La resoulución de pantalla seleccionada es usada al entrar en pantalla | |
of.options.FULLSCREEN_MODE.tooltip.5=completa. Resouluciónes pequeñas generalmente son más rápidas. | |
of.options.SHOW_FPS=Medidor de FPS | |
of.options.SHOW_FPS.tooltip.1=Despliega los FPS, además de otra información, resumida. | |
of.options.SHOW_FPS.tooltip.2= C: - Renderizado de chunks. | |
of.options.SHOW_FPS.tooltip.3= E: - Entidades y de bloques renderizadas. | |
of.options.SHOW_FPS.tooltip.4= U: - Actualizaciones de chunks. | |
of.options.SHOW_FPS.tooltip.5=La información solo se muestra cuando la pantalla | |
of.options.SHOW_FPS.tooltip.6=de depuración (F3) no es visible. | |
of.options.save.default=Predeterminado (2s) | |
of.options.save.20s=20 s | |
of.options.save.3min=3 min | |
of.options.save.30min=30 min | |
of.options.AUTOSAVE_TICKS=Autoguardado | |
of.options.AUTOSAVE_TICKS.tooltip.1=Intervalo de autoguardado de mundos locales. | |
of.options.AUTOSAVE_TICKS.tooltip.2= Predeterminado - Intervalo por defecto. NO RECOMENDADO. | |
of.options.AUTOSAVE_TICKS.tooltip.3=Esta función causa el famoso lag de la muerte. | |
options.anaglyph.tooltip.1=La función de anaglifo 3D requiere de lentes 3D rojo-azul. |
# Contributors of Japanese localization # | |
# takanasayo 2012-12-01 ---- 2013-07-15 | |
# CrafterKina 2014-01-04 ---- 2016-04-14 | |
# General | |
of.general.custom=カスタム | |
of.general.from=から | |
of.general.id=ID | |
of.general.restart=再起動 | |
of.general.ambiguous=不明確 | |
of.general.smart=賢い処理 | |
# Message | |
of.message.aa.shaders1=輪郭のギザギザ軽減処理はシェーダーと共存できません。 | |
of.message.aa.shaders2=このオプションを有効にするには、シェーダを無効にしてください。 | |
of.message.af.shaders1=奥行きのチラツキ抑制処理はシェーダーと共存できません。 | |
of.message.af.shaders2=このオプションを有効にするには、シェーダを無効にしてください。 | |
of.message.fr.shaders1=描画を速くする処理はシェーダーと共存できません。 | |
of.message.fr.shaders1=このオプションを有効にするには、シェーダを無効にしてください。 | |
of.message.shaders.aa1=シェーダーは輪郭のギザギザ軽減処理と共存できません。 | |
of.message.shaders.aa2=クオリティの詳細設定 -> 輪郭のギザギザ軽減 をオフにし、ゲームを再起動してください。 | |
of.message.shaders.af1=シェーダーは奥行きのチラツキ抑制処理と共存できません。 | |
of.message.shaders.af2=クオリティの詳細設定 -> 奥行きのチラツキ抑制 をオフにし、ゲームを再起動してください。 | |
of.message.shaders.fr1=シェーダーは描画を速くする処理と共存できません。 | |
of.message.shaders.fr2=クオリティの詳細設定 -> 描画を速く をオフにし、ゲームを再起動してください。 | |
of.message.newVersion=新しい§eOptiFine§fが公開されました: §e%s§f | |
of.message.java64Bit=パフォーマンスを高めるために§e64-bit Java§fが利用できます。 | |
of.message.openglError=§eOpenGLエラー§f: %s (%s) | |
of.message.shaders.loading=シェーダーをロード中: %s | |
of.message.other.reset=全ての設定を元の状態に戻してもよろしいですか? | |
# Video settings | |
options.graphics.tooltip.1=グラフィックス | |
options.graphics.tooltip.2= 処理優先 - 低い品質、 低負荷 | |
options.graphics.tooltip.3= 描画優先 - 高い品質、 高負荷 | |
options.graphics.tooltip.4=葉の透過、アイテムやMobの影、ドロップアイテムの3D描写、 | |
options.graphics.tooltip.5=厚みのある雲、水の2パスレンダリング、といったグラフィック効果を変更します。 | |
of.options.renderDistance.extreme=凄く遠い | |
options.renderDistance.tooltip.1=描画距離 | |
options.renderDistance.tooltip.2= 2 最短 - 32m先まで描画する (より低負荷) | |
options.renderDistance.tooltip.3= 4 短い - 64m先まで描画する (低負荷) | |
options.renderDistance.tooltip.4= 8 普通 - 128m先まで描画する | |
options.renderDistance.tooltip.5= 16 遠い - 256m先まで描画する (高負荷) | |
options.renderDistance.tooltip.6= 32 凄く遠い - 512m先まで描画する (超高負荷!) | |
options.renderDistance.tooltip.7=「凄く遠い」設定は非常に高いグラフィックス性能を要求します! | |
options.renderDistance.tooltip.8=「遠い」を超える描画距離はシングルのワールドでのみ効果があります。 | |
options.ao.tooltip.1=スムースライティング | |
options.ao.tooltip.2= オフ - スムースライティングを使用しない (低負荷) | |
options.ao.tooltip.3= 最小 - 簡単なスムースライティング (高負荷) | |
options.ao.tooltip.4= 最大 - 複雑なスムースライティング (より高負荷) | |
options.framerateLimit.tooltip.1=最大のフレームレート | |
options.framerateLimit.tooltip.2= 垂直同期 - モニターのフレームレートに合わせる (60, 30, 20) | |
options.framerateLimit.tooltip.3= 5~255 - フレームレートを設定した値までに制限する | |
options.framerateLimit.tooltip.4= 無制限 - フレームレートを制限しない (最速) | |
options.framerateLimit.tooltip.5=たとえ制限に達していなくとも、 | |
options.framerateLimit.tooltip.6=フレームレートを抑制します。 | |
of.options.framerateLimit.vsync=垂直同期 | |
of.options.AO_LEVEL=スムースライティング | |
of.options.AO_LEVEL.tooltip.1=スムースライティングの程度を調整する | |
of.options.AO_LEVEL.tooltip.2= オフ - 影なし | |
of.options.AO_LEVEL.tooltip.3= 50%% - 明るい影 | |
of.options.AO_LEVEL.tooltip.4= 100%% - 暗い影 | |
options.viewBobbing.tooltip.1=画面の揺れ | |
options.viewBobbing.tooltip.2=ミップマップをオフにした時に最もよい結果が出ます。 | |
options.guiScale.tooltip.1=GUIの大きさ | |
options.guiScale.tooltip.2=GUIは小さいほうが処理が速くなるかもしれません。 | |
options.vbo.tooltip.1=Vertex Buffer Objects | |
options.vbo.tooltip.2=描画方式を新しいものに変更し、 | |
options.vbo.tooltip.3=5~10%%処理を軽くできます。 | |
options.gamma.tooltip.1=暗い物体の明るさの変更 | |
options.gamma.tooltip.2= 暗い - 通常の明るさ | |
options.gamma.tooltip.3= 1~99%% - 明るさを調整する | |
options.gamma.tooltip.4= 明るい - 最大の明るさ | |
options.gamma.tooltip.5=完全に真っ暗な物体の明るさは、 | |
options.gamma.tooltip.6=変更できません。 | |
options.anaglyph.tooltip.1=3Dアナグリフ | |
options.anaglyph.tooltip.2=それぞれの目に別々の色を使うことで | |
options.anaglyph.tooltip.3=立体視を可能にする機能を有効にします。 | |
options.anaglyph.tooltip.4=赤青3Dメガネが必要です。 | |
options.blockAlternatives.tooltip.1=代替ブロック | |
options.blockAlternatives.tooltip.2=幾つかのブロックで代替モデルを使用します。 | |
options.blockAlternatives.tooltip.3=選択されたリソースパックに依存します。 | |
of.options.FOG_FANCY=霧の種類 | |
of.options.FOG_FANCY.tooltip.1=霧の種類の設定 | |
of.options.FOG_FANCY.tooltip.2= 処理優先 - 低負荷な霧 | |
of.options.FOG_FANCY.tooltip.3= 描画優先 - 高負荷な霧 より良く見える | |
of.options.FOG_FANCY.tooltip.4= オフ - 霧なし 最低負荷 | |
of.options.FOG_FANCY.tooltip.5=グラフィックカードが対応している場合のみ | |
of.options.FOG_FANCY.tooltip.6=美麗な霧を使用できます。 | |
of.options.FOG_START=霧の距離 | |
of.options.FOG_START.tooltip.1=プレイヤーと霧の距離の設定 | |
of.options.FOG_START.tooltip.2= 0.2 - プレイヤーと霧の距離を最も近くする | |
of.options.FOG_START.tooltip.3= 0.8 - プレイヤーと霧の距離を最も遠くする | |
of.options.FOG_START.tooltip.4=この設定は大抵の場合パフォーマンスに影響を与えません。 | |
of.options.CHUNK_LOADING=チャンク読込方法 | |
of.options.CHUNK_LOADING.tooltip.1=チャンクの読み込み方法 | |
of.options.CHUNK_LOADING.tooltip.2= デフォルト - チャンクロード時、FPSは安定しない。 | |
of.options.CHUNK_LOADING.tooltip.3= 滑らか - フレームレート低下を抑制。 | |
of.options.CHUNK_LOADING.tooltip.4= マルチコア - フレームレートのさらなる安定化 ワールドのロード処理が三倍ほど速くなる。 | |
of.options.CHUNK_LOADING.tooltip.5=滑らかやマルチコアであれば、チャンクロードに起因する | |
of.options.CHUNK_LOADING.tooltip.6=カクつきとフリーズを除けます。 | |
of.options.CHUNK_LOADING.tooltip.7=マルチコアでは二番目のCPUを用いることでワールドのロード処理が | |
of.options.CHUNK_LOADING.tooltip.8=三倍ほど速くでき、FPSも改善できます。 | |
of.options.chunkLoading.smooth=滑らか | |
of.options.chunkLoading.multiCore=マルチコア | |
of.options.shaders=シェーダーの詳細設定... | |
of.options.shadersTitle=シェーダーの詳細設定 | |
of.options.shaders.ANTIALIASING=アンチエイリアス処理 | |
of.options.shaders.NORMAL_MAP=法線マッピング | |
of.options.shaders.SPECULAR_MAP=鏡面反射マッピング | |
of.options.shaders.RENDER_RES_MUL=描画の品質 | |
of.options.shaders.SHADOW_RES_MUL=影の品質 | |
of.options.shaders.HAND_DEPTH_MUL=手部深度 | |
of.options.shaders.CLOUD_SHADOW=雲の影 | |
of.options.shaders.OLD_HAND_LIGHT=古い手持ち光源 | |
of.options.shaders.OLD_LIGHTING=古いライティング | |
of.options.shaders.SHADER_PACK=シェーダーパック | |
of.options.shaders.packNone=OFF | |
of.options.shaders.packDefault=(internal) | |
of.options.shaders.shadersFolder=シェーダーのフォルダー | |
of.options.shaders.shaderOptions=シェーダーのオプション設定... | |
of.options.shaderOptionsTitle=シェーダーのオプション設定 | |
of.options.quality=クオリティの詳細設定... | |
of.options.qualityTitle=クオリティの詳細設定 | |
of.options.details=グラフィックスの詳細設定... | |
of.options.detailsTitle=グラフィックスの詳細設定 | |
of.options.performance=パフォーマンスの詳細設定... | |
of.options.performanceTitle=パフォーマンスの詳細設定 | |
of.options.animations=アニメーションの詳細設定... | |
of.options.animationsTitle=アニメーションの詳細設定 | |
of.options.other=その他の設定... | |
of.options.otherTitle=その他の設定 | |
of.options.other.reset=ビデオ設定を初期化する... | |
of.shaders.profile=プロファイル | |
# Quality | |
of.options.mipmap.bilinear=バイリニア補間 | |
of.options.mipmap.linear=線形補間 | |
of.options.mipmap.nearest=ニアレストネイバー補間 | |
of.options.mipmap.trilinear=トライリニア補間 | |
options.mipmapLevels.tooltip.1=遠くの物体における視覚効果を | |
options.mipmapLevels.tooltip.2=テクスチャのスムージングによって改善します。 | |
options.mipmapLevels.tooltip.3= オフ - スムージングを行わない | |
options.mipmapLevels.tooltip.4= 1 - 最小限のスムージング | |
options.mipmapLevels.tooltip.5= 4 - 最大限のスムージング | |
options.mipmapLevels.tooltip.6=この設定は大抵の場合パフォーマンスに影響を与えません。 | |
of.options.MIPMAP_TYPE=ミップマップの種類 | |
of.options.MIPMAP_TYPE.tooltip.1=遠くの物体における視覚効果を | |
of.options.MIPMAP_TYPE.tooltip.2=テクスチャのスムージングによって改善します。 | |
of.options.MIPMAP_TYPE.tooltip.3= ニアレストネイバー補間 - おおまかなスムージング (低負荷) | |
of.options.MIPMAP_TYPE.tooltip.4= 線形補間 - 通常のスムージング | |
of.options.MIPMAP_TYPE.tooltip.5= バイリニア補間 - 繊細なスムージング | |
of.options.MIPMAP_TYPE.tooltip.6= トライリニア補間 - 最高級のスムージング (高負荷) | |
of.options.AA_LEVEL=輪郭のギザギザ軽減 | |
of.options.AA_LEVEL.tooltip.1=輪郭のギザギザ軽減の設定 | |
of.options.AA_LEVEL.tooltip.2= オフ - (通常) 輪郭のギザギザ軽減を行わない (低負荷) | |
of.options.AA_LEVEL.tooltip.3= 2-16 - 輪郭のギザギザ軽減を行う (高負荷) | |
of.options.AA_LEVEL.tooltip.4=輪郭のギザギザやシャープな色の変化に | |
of.options.AA_LEVEL.tooltip.5=アンチエイリアスを行います。 | |
of.options.AA_LEVEL.tooltip.6=有効化すると実質的なFPSは下がります。 | |
of.options.AA_LEVEL.tooltip.7=すべてのレベルがすべてのグラフィックカードでサポートされているわけではありません。 | |
of.options.AA_LEVEL.tooltip.8=再起動後に有効化されます! | |
of.options.AF_LEVEL=異方性フィルタリング | |
of.options.AF_LEVEL.tooltip.1=異方性フィルタリングの設定 | |
of.options.AF_LEVEL.tooltip.2= オフ - 通常のテクスチャ描画 (低負荷) | |
of.options.AF_LEVEL.tooltip.3= 2-16 - 滑らかなテクスチャ描画 (高負荷) | |
of.options.AF_LEVEL.tooltip.4=ミップマップされたテクスチャにおいて、 | |
of.options.AF_LEVEL.tooltip.5=ちらつきを抑えます。 | |
of.options.AF_LEVEL.tooltip.6=有効化すると実質的なFPSは下がります。 | |
of.options.CLEAR_WATER=水の透明度を上げる | |
of.options.CLEAR_WATER.tooltip.1=水の透明度を上げる設定 | |
of.options.CLEAR_WATER.tooltip.2= オン - すっきりとした透明な水 | |
of.options.CLEAR_WATER.tooltip.3= オフ - 普通の水 | |
of.options.RANDOM_MOBS=Random Mobsを有効化 | |
of.options.RANDOM_MOBS.tooltip.1=Random Mobsを有効化する設定 | |
of.options.RANDOM_MOBS.tooltip.2= オフ - Mobにランダムなテクスチャを適応しない 低負荷 | |
of.options.RANDOM_MOBS.tooltip.3= オン - Mobにランダムなテクスチャを適応する 高負荷 | |
of.options.RANDOM_MOBS.tooltip.4=Random mobsはランダムなテクスチャをMobに使用します。 | |
of.options.RANDOM_MOBS.tooltip.5=複数のMobテクスチャを含むテクスチャパックが必要です。 | |
of.options.BETTER_GRASS=草ブロックを繋げる | |
of.options.BETTER_GRASS.tooltip.1=草ブロックを繋げる設定 | |
of.options.BETTER_GRASS.tooltip.2= オフ - 通常の側面のテクスチャを使用する 低負荷 | |
of.options.BETTER_GRASS.tooltip.3= 処理優先 - 側面も草で覆う 高負荷 | |
of.options.BETTER_GRASS.tooltip.4= 描画優先 - 草ブロックと繋がるように側面を草で覆う 最高負荷 | |
of.options.BETTER_SNOW=設置物の下に雪を表示 | |
of.options.BETTER_SNOW.tooltip.1=設置物の下に雪を表示する設定 | |
of.options.BETTER_SNOW.tooltip.2= オフ - 通常の雪 低負荷 | |
of.options.BETTER_SNOW.tooltip.3= オン - 設置物の下でも描画される雪 高負荷 | |
of.options.BETTER_SNOW.tooltip.4=隣接したブロックに雪が積もっているものがあった時に | |
of.options.BETTER_SNOW.tooltip.5=透過性のあるブロック(フェンス, 背の高い草)の下でも雪を描画します。 | |
of.options.CUSTOM_FONTS=カスタムフォント | |
of.options.CUSTOM_FONTS.tooltip.1=カスタムフォントについての設定 | |
of.options.CUSTOM_FONTS.tooltip.2= オン - カスタムフォントを使う (通常) 高負荷 | |
of.options.CUSTOM_FONTS.tooltip.3= オフ - デフォルトのフォントを使う 低負荷 | |
of.options.CUSTOM_FONTS.tooltip.4=カスタムフォントは現在使用中の | |
of.options.CUSTOM_FONTS.tooltip.5=テクスチャパックに依存します。 | |
of.options.CUSTOM_COLORS=カスタムカラー | |
of.options.CUSTOM_COLORS.tooltip.1=カスタムフォントについての設定 | |
of.options.CUSTOM_COLORS.tooltip.2= オン - カスタムカラーを使う (通常) 高負荷 | |
of.options.CUSTOM_COLORS.tooltip.3= オフ - デフォルトの色を使う 低負荷 | |
of.options.CUSTOM_COLORS.tooltip.4=カスタムカラーは現在使用中の | |
of.options.CUSTOM_COLORS.tooltip.5=テクスチャパックに依存します。 | |
of.options.SWAMP_COLORS=湿地帯の色を変える | |
of.options.SWAMP_COLORS.tooltip.1=湿地帯の色を変える設定 | |
of.options.SWAMP_COLORS.tooltip.2= オン - 湿地帯色を使う 高負荷 | |
of.options.SWAMP_COLORS.tooltip.3= オフ - 湿地帯色を使わない 低負荷 | |
of.options.SWAMP_COLORS.tooltip.4=湿地帯色は草, 葉, 蔦, 水に影響を与えます。 | |
of.options.SMOOTH_BIOMES=バイオームを滑らかに表示 | |
of.options.SMOOTH_BIOMES.tooltip.1=バイオームを滑らかに表示する設定 | |
of.options.SMOOTH_BIOMES.tooltip.2= オン - バイオームの境界を滑らかにする (通常) 高負荷 | |
of.options.SMOOTH_BIOMES.tooltip.3= オフ - バイオームの境界を滑らかにしない 低負荷 | |
of.options.SMOOTH_BIOMES.tooltip.4=周囲の色の平均をとって | |
of.options.SMOOTH_BIOMES.tooltip.5=バイオーム間の境界を滑らかにします。 | |
of.options.SMOOTH_BIOMES.tooltip.6=草, 葉, 蔦, 水に影響を与えます。 | |
of.options.CONNECTED_TEXTURES=テクスチャの継ぎ目をなくす | |
of.options.CONNECTED_TEXTURES.tooltip.1=テクスチャの継ぎ目をなくす設定 | |
of.options.CONNECTED_TEXTURES.tooltip.2= オフ - テクスチャの継ぎ目をなくさない (通常) | |
of.options.CONNECTED_TEXTURES.tooltip.3= 処理優先 - 処理優先でテクスチャの継ぎ目をなくす | |
of.options.CONNECTED_TEXTURES.tooltip.4= 描画優先 - 描画優先でテクスチャの継ぎ目をなくす | |
of.options.CONNECTED_TEXTURES.tooltip.5=草、砂岩、本棚で隣り合ったものを | |
of.options.CONNECTED_TEXTURES.tooltip.6=つなぎあわせて表示します。 | |
of.options.CONNECTED_TEXTURES.tooltip.7=つながった状態のテクスチャは現在使用中の | |
of.options.CONNECTED_TEXTURES.tooltip.8=テクスチャパックに依存します。 | |
of.options.NATURAL_TEXTURES=自然なテクスチャ | |
of.options.NATURAL_TEXTURES.tooltip.1=自然なテクスチャの設定 | |
of.options.NATURAL_TEXTURES.tooltip.2= オフ - 自然なテクスチャを使用しない (通常) | |
of.options.NATURAL_TEXTURES.tooltip.3= オン - 自然なテクスチャを使用する | |
of.options.NATURAL_TEXTURES.tooltip.4=ブロックのテクスチャが同じ形を繰り返し、 | |
of.options.NATURAL_TEXTURES.tooltip.5=格子状の模様を形成される現象を除去します。 | |
of.options.NATURAL_TEXTURES.tooltip.6=基となるブロックのテクスチャを回転したり裏返したり | |
of.options.NATURAL_TEXTURES.tooltip.7=するのに用いられます。自然なテクスチャの設定は | |
of.options.NATURAL_TEXTURES.tooltip.8=現在使用中のテクスチャパックに依存します。 | |
of.options.CUSTOM_SKY=カスタムスカイ | |
of.options.CUSTOM_SKY.tooltip.1=カスタムスカイの設定 | |
of.options.CUSTOM_SKY.tooltip.2= オン - カスタムスカイを使用する (通常) 高負荷 | |
of.options.CUSTOM_SKY.tooltip.3= オフ - 通常の空 低負荷 | |
of.options.CUSTOM_SKY.tooltip.4=カスタムスカイ用のテクスチャは現在使用中の | |
of.options.CUSTOM_SKY.tooltip.5=テクスチャパックに依存します。 | |
of.options.CUSTOM_ITEMS=カスタムアイテム | |
of.options.CUSTOM_ITEMS.tooltip.1=カスタムアイテムの設定 | |
of.options.CUSTOM_ITEMS.tooltip.2= オン - カスタムアイテムを使用する (通常) 高負荷 | |
of.options.CUSTOM_ITEMS.tooltip.3= オフ - 通常のアイテムテクスチャを使用する 低負荷 | |
of.options.CUSTOM_ITEMS.tooltip.4=カスタムアイテム用のテクスチャは現在使用中の | |
of.options.CUSTOM_ITEMS.tooltip.5=テクスチャパックに依存します。 | |
# Details | |
of.options.CLOUDS=雲の設定 | |
of.options.CLOUDS.tooltip.1=雲の設定 | |
of.options.CLOUDS.tooltip.2= デフォルト - グラフィックスの設定に合わせる | |
of.options.CLOUDS.tooltip.3= 処理優先 - 低品質 低負荷 | |
of.options.CLOUDS.tooltip.4= 描画優先 - 高品質 高負荷 | |
of.options.CLOUDS.tooltip.5= オフ - 雲なし 最低負荷 | |
of.options.CLOUDS.tooltip.6=処理優先の雲は平面的に描画されます。 | |
of.options.CLOUDS.tooltip.7=描画優先の雲は立体的に描画されます。 | |
of.options.CLOUD_HEIGHT=雲の高さ | |
of.options.CLOUD_HEIGHT.tooltip.1=雲の高さの設定 | |
of.options.CLOUD_HEIGHT.tooltip.2= オフ - 通常の高さ | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - ワールドの高さ上限 | |
of.options.TREES=木の設定 | |
of.options.TREES.tooltip.1=木の設定 | |
of.options.TREES.tooltip.2= デフォルト - グラフィックスの設定に合わせる | |
of.options.TREES.tooltip.3= 処理優先 - 低品質 より低負荷 | |
of.options.TREES.tooltip.4= 賢い処理 - 高品質 低負荷 | |
of.options.TREES.tooltip.5= 描画優先 - 高品質 高負荷 | |
of.options.TREES.tooltip.6=処理優先の木は透過しない葉を持ちます。 | |
of.options.TREES.tooltip.7=描画優先や賢く描画された木は透過する葉を持ちます。 | |
of.options.RAIN=雨と雪の設定 | |
of.options.RAIN.tooltip.1=雨と雪の設定 | |
of.options.RAIN.tooltip.2= デフォルト - グラフィックスの設定に合わせる | |
of.options.RAIN.tooltip.3= 処理優先 - 小雨/小雪 低負荷 | |
of.options.RAIN.tooltip.4= 描画優先 - 大雨/大雪 高負荷 | |
of.options.RAIN.tooltip.5= オフ - 雨や雪を描画しない 最低負荷 | |
of.options.RAIN.tooltip.6=オフにしても地面での雨の飛び散りや雨音 | |
of.options.RAIN.tooltip.7=は有効のままです。 | |
of.options.SKY=空の表示 | |
of.options.SKY.tooltip.1=空の表示の設定 | |
of.options.SKY.tooltip.2= オン - 空を描画する 高負荷 | |
of.options.SKY.tooltip.3= オフ - 空を描画しない 低負荷 | |
of.options.SKY.tooltip.4=OFFにしても太陽や月はそのままです。 | |
of.options.STARS=星の表示 | |
of.options.STARS.tooltip.1=星の表示の設定 | |
of.options.STARS.tooltip.2= オン - 星を描画する (通常) | |
of.options.STARS.tooltip.3= オフ - 星を描画しない (低負荷) | |
of.options.SUN_MOON=太陽と月の表示 | |
of.options.SUN_MOON.tooltip.1=太陽と月の表示の設定 | |
of.options.SUN_MOON.tooltip.2= オン - 太陽と月を描画する (通常) | |
of.options.SUN_MOON.tooltip.3= オフ - 太陽と月を描画しない (低負荷) | |
of.options.SHOW_CAPES=Optifineマントの表示 | |
of.options.SHOW_CAPES.tooltip.1=Optifineマントの表示の設定 | |
of.options.SHOW_CAPES.tooltip.2= オン - Optifineマントを表示する (通常) | |
of.options.SHOW_CAPES.tooltip.3= オフ - Optifineマントを表示しない | |
of.options.TRANSLUCENT_BLOCKS=半透明のブロックの設定 | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=半透明のブロックの設定 | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= 描画優先 - 完全なカラーブレンド (通常) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= 処理優先 - 速さ重視のカラーブレンド (低負荷) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4=違う色を持った半透明ブロック(色付きガラス, 水, 氷) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=が空気を挟んで隣接した際の | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=カラーブレンドの設定です。 | |
of.options.HELD_ITEM_TOOLTIPS=持ち替え時アイテム名表示 | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=持ち替え時アイテム名表示の設定 | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= オン - 持ち替え時にアイテム名を表示する (通常) | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= オフ - 持ち替え時にアイテム名を表示しない | |
of.options.DROPPED_ITEMS=落ちているアイテムの表示 | |
of.options.DROPPED_ITEMS.tooltip.1=落ちているアイテムの表示の設定 | |
of.options.DROPPED_ITEMS.tooltip.2= デフォルト - グラフィックスの設定に合わせる | |
of.options.DROPPED_ITEMS.tooltip.3= 処理優先 - 落ちているアイテムを2Dで表示する 低負荷 | |
of.options.DROPPED_ITEMS.tooltip.4= 描画優先 - 落ちているアイテムを3Dで表示する 高負荷 | |
options.entityShadows.tooltip.1=Entityの影の表示の設定 | |
options.entityShadows.tooltip.2= オン - Entityの影を表示する | |
options.entityShadows.tooltip.3= オフ - Entityの影を表示しない | |
of.options.VIGNETTE=視界端の影の表示の設定 | |
of.options.VIGNETTE.tooltip.1=スクリーンの角にある少し暗くなっている視覚効果 | |
of.options.VIGNETTE.tooltip.2= デフォルト - グラフィックスの設定に合わせる (通常) | |
of.options.VIGNETTE.tooltip.3= 処理優先 - 視界端の影を表示しない (低負荷) | |
of.options.VIGNETTE.tooltip.4= 描画優先 - 視界端の影を表示する (高負荷) | |
of.options.VIGNETTE.tooltip.5=視界端の影はFPSにとって重要な視覚効果です。 | |
of.options.VIGNETTE.tooltip.6=特にフルスクリーンで遊ぶ際には、 | |
of.options.VIGNETTE.tooltip.7=視界端の影は非常に微かであるため、 | |
of.options.VIGNETTE.tooltip.8=無効にしてもかまいません。 | |
# Performance | |
of.options.SMOOTH_FPS=FPS安定化処理 | |
of.options.SMOOTH_FPS.tooltip.1=バッファを使ってFPSを安定化する。 | |
of.options.SMOOTH_FPS.tooltip.2= オフ - 安定化しない。FPSは変動的になるでしょう。 | |
of.options.SMOOTH_FPS.tooltip.3= オン - 安定化する。 | |
of.options.SMOOTH_FPS.tooltip.4=この設定はグラフィックドライバーに依存し、 | |
of.options.SMOOTH_FPS.tooltip.5=常には有効ではありません。 | |
of.options.SMOOTH_WORLD=サーバー負荷を分散 | |
of.options.SMOOTH_WORLD.tooltip.1=内部サーバーによるラグの除去。 | |
of.options.SMOOTH_WORLD.tooltip.2= オフ - 安定化しない。FPSは変動的になるでしょう。 | |
of.options.SMOOTH_WORLD.tooltip.3= オン - 安定化する。 | |
of.options.SMOOTH_WORLD.tooltip.4=内部サーバーロード時安定化。 | |
of.options.SMOOTH_WORLD.tooltip.5=シングルプレイの時のみ効果があります。 | |
of.options.FAST_RENDER=速い描画処理 | |
of.options.FAST_RENDER.tooltip.1=速い描画処理設定 | |
of.options.FAST_RENDER.tooltip.2= オフ - 通常の描画 (通常) | |
of.options.FAST_RENDER.tooltip.3= オン - 最適化された描画 (低負荷) | |
of.options.FAST_RENDER.tooltip.4=GPUのロード回数を減らしたアルゴリズムによって | |
of.options.FAST_RENDER.tooltip.5=実質的なFPSを向上します。 | |
of.options.FAST_MATH=速い計算処理 | |
of.options.FAST_MATH.tooltip.1=速い計算処理設定 | |
of.options.FAST_MATH.tooltip.2= オフ - 通常の処理 (通常) | |
of.options.FAST_MATH.tooltip.3= オン - 速い処理 | |
of.options.FAST_MATH.tooltip.4=CPUのキャッシュをうまく使った | |
of.options.FAST_MATH.tooltip.5=FPSを向上させる計算処理を使用します。 | |
of.options.CHUNK_UPDATES=チャンク読込方法 | |
of.options.CHUNK_UPDATES.tooltip.1=チャンク読込方法の設定 | |
of.options.CHUNK_UPDATES.tooltip.2= 1 - 高負荷なチャンク読み込み 高いFPS (通常) | |
of.options.CHUNK_UPDATES.tooltip.3= 3 - 低負荷めなチャンク読み込み 低めのFPS | |
of.options.CHUNK_UPDATES.tooltip.4= 5 - 低負荷なチャンク読み込み 低いFPS | |
of.options.CHUNK_UPDATES.tooltip.5=1フレームごとに行われるチャンク読み込み回数を指定します。 | |
of.options.CHUNK_UPDATES.tooltip.6=高い値はフレームレートの非安定化を招きます。 | |
of.options.CHUNK_UPDATES_DYNAMIC=静止中は読み込み優先 | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.1=静止中は読み込み優先設定 | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.2= オフ - (通常) 1フレームに通常の回数のチャンク読み込み処理 | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.3= オン - 静止中により多くのアップデート処理を行う。 | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.4=プレイヤーが静止している時に | |
of.options.CHUNK_UPDATES_DYNAMIC.tooltip.5=素早くチャンク読み込むようになります。 | |
of.options.LAZY_CHUNK_LOADING=チャンク読み込みを遅延 | |
of.options.LAZY_CHUNK_LOADING.tooltip.1=チャンク読み込みを遅延する設定 | |
of.options.LAZY_CHUNK_LOADING.tooltip.2= オフ - 通常のサーバーチャンク読み込み | |
of.options.LAZY_CHUNK_LOADING.tooltip.3= オン - 遅延サーバーチャンク読み込み (滑らか) | |
of.options.LAZY_CHUNK_LOADING.tooltip.4=チャンク読み込み処理を数Tickに分散させることで | |
of.options.LAZY_CHUNK_LOADING.tooltip.5=総合的にサーバーのチャンク読み込み処理を滑らかにします。 | |
of.options.LAZY_CHUNK_LOADING.tooltip.6=ワールドの一部に欠けが発生するようならOFFにしてください。 | |
of.options.LAZY_CHUNK_LOADING.tooltip.7=シングルプレイヤーでシングルコアCPUの時のみ有効です。 | |
# Animations | |
of.options.animation.allOn=全てオン | |
of.options.animation.allOff=全てオフ | |
of.options.animation.dynamic=動的に | |
of.options.ANIMATED_WATER=水 | |
of.options.ANIMATED_LAVA=溶岩 | |
of.options.ANIMATED_FIRE=炎 | |
of.options.ANIMATED_PORTAL=ネザーゲート | |
of.options.ANIMATED_REDSTONE=レッドストーン | |
of.options.ANIMATED_EXPLOSION=爆発 | |
of.options.ANIMATED_FLAME=松明やかまど | |
of.options.ANIMATED_SMOKE=煙 | |
of.options.VOID_PARTICLES=岩盤付近の粒子 | |
of.options.WATER_PARTICLES=水中の粒子 | |
of.options.RAIN_SPLASH=雨の水しぶき | |
of.options.PORTAL_PARTICLES=ネザーゲートの粒子 | |
of.options.POTION_PARTICLES=ポーションの粒子 | |
of.options.DRIPPING_WATER_LAVA=水/溶岩の滴り | |
of.options.ANIMATED_TERRAIN=Terrainアニメを有効にする | |
of.options.ANIMATED_TEXTURES=Texturesアニメを有効にする | |
of.options.FIREWORK_PARTICLES=花火の粒子 | |
# Other | |
of.options.LAGOMETER=デバッグの棒グラフを表示 | |
of.options.LAGOMETER.tooltip.1=F3デバッグに棒グラフを表示。 | |
of.options.LAGOMETER.tooltip.2=* 橙 - ガベージコレクション | |
of.options.LAGOMETER.tooltip.3=* 藍 - Tick処理 | |
of.options.LAGOMETER.tooltip.4=* 青 - スケジューリングされた処理 | |
of.options.LAGOMETER.tooltip.5=* 紫 - チャンクアップローディング | |
of.options.LAGOMETER.tooltip.6=* 赤 - チャンクアップデート | |
of.options.LAGOMETER.tooltip.7=* 黄 - 描画確認 | |
of.options.LAGOMETER.tooltip.8=* 緑 - 地形描画 | |
of.options.PROFILER=デバッグの円グラフを表示 | |
of.options.PROFILER.tooltip.1=デバッグの円グラフの表示の設定 | |
of.options.PROFILER.tooltip.2= オン - 円グラフは有効 高負荷 | |
of.options.PROFILER.tooltip.3= オフ - 円グラフは無効 低負荷 | |
of.options.PROFILER.tooltip.4=デバッグ画面(F3)が開かれている時に | |
of.options.PROFILER.tooltip.5=デバッグ情報を収集し円グラフ上に表示します。 | |
of.options.WEATHER=天候の有無 | |
of.options.WEATHER.tooltip.1=天候の有無の設定 | |
of.options.WEATHER.tooltip.2= オン - 天候あり 高負荷 | |
of.options.WEATHER.tooltip.3= オフ - 天候なし 低負荷 | |
of.options.WEATHER.tooltip.4=天候コントロール機能の有効/無効。 | |
of.options.WEATHER.tooltip.5=シングルプレイでのみ有効。 | |
of.options.time.dayOnly=昼のみ | |
of.options.time.nightOnly=夜のみ | |
of.options.TIME=クリエイティブの時刻 | |
of.options.TIME.tooltip.1=クリエイティブの時刻の設定 | |
of.options.TIME.tooltip.2= デフォルト - 通常の昼夜サイクル | |
of.options.TIME.tooltip.3= 昼のみ - 昼のみ | |
of.options.TIME.tooltip.4= 夜のみ - 夜のみ | |
of.options.TIME.tooltip.5=クリエイティブモードで | |
of.options.TIME.tooltip.6=シングルプレイの時のみ有効。 | |
options.fullscreen.tooltip.1=フルスクリーン | |
options.fullscreen.tooltip.2= オン - フルスクリーンモード | |
options.fullscreen.tooltip.3= オフ - ウィンドウモード | |
options.fullscreen.tooltip.4=フルスクリーンではグラフィックカードによって | |
options.fullscreen.tooltip.5=処理の速い遅いが変わります。 | |
of.options.FULLSCREEN_MODE=フルスクリーンの種類 | |
of.options.FULLSCREEN_MODE.tooltip.1=フルスクリーンの種類の設定 | |
of.options.FULLSCREEN_MODE.tooltip.2= デフォルト - デスクトップスクリーンの解像度 高負荷 | |
of.options.FULLSCREEN_MODE.tooltip.3= WxH - カスタム解像度 おそらく低負荷 | |
of.options.FULLSCREEN_MODE.tooltip.4=フルスクリーンモードにて使用される解像度です。 | |
of.options.FULLSCREEN_MODE.tooltip.5=一般的に、低い解像度は速い処理に繋がります。 | |
of.options.SHOW_FPS=FPSを表示 | |
of.options.SHOW_FPS.tooltip.1=コンパクトなFPSと描画情報を表示 | |
of.options.SHOW_FPS.tooltip.2= C: - チャンク描画 | |
of.options.SHOW_FPS.tooltip.3= E: - エンティティ描画 | |
of.options.SHOW_FPS.tooltip.4= U: - チャンクアップデート | |
of.options.SHOW_FPS.tooltip.5=コンパクトなFPS情報は | |
of.options.SHOW_FPS.tooltip.6=デバッグ画面が非表示の時のみ表示されます。 | |
of.options.save.default=デフォルト (2秒) | |
of.options.save.20s=20秒 | |
of.options.save.3min=3分 | |
of.options.save.30min=30分 | |
of.options.AUTOSAVE_TICKS=オートセーブ | |
of.options.AUTOSAVE_TICKS.tooltip.1=セーブ間隔 | |
of.options.AUTOSAVE_TICKS.tooltip.2=2秒ごとのセーブは推奨されません。 | |
of.options.AUTOSAVE_TICKS.tooltip.3=オートセーブはラグの原因となります。 | |
options.anaglyph.tooltip.1=3Dモードは赤青メガネとともに使います。 |
import net.minecraft.client.main.Main; | |
import java.util.Arrays; | |
public class Start | |
{ | |
public static void main(String[] args) | |
{ | |
Main.main(concat(new String[] {"--version", "mcp", "--accessToken", "0", "--assetsDir", "assets", "--assetIndex", "1.8", "--userProperties", "{}"}, args)); | |
} | |
public static <T> T[] concat(T[] first, T[] second) | |
{ | |
T[] result = Arrays.copyOf(first, first.length + second.length); | |
System.arraycopy(second, 0, result, first.length, second.length); | |
return result; | |
} | |
} |
# Contributors of Luxembourgish localization # | |
# Hyperspacemaster ---- 2016-4-6 | |
# General | |
of.general.ambiguous=onkloer | |
of.general.custom=Aneres | |
of.general.from=Vun | |
of.general.id=ID | |
of.general.restart=Neistart | |
of.general.smart=Fein | |
# Message | |
of.message.aa.shaders1=Antialiasing ass net kompatibel mat de Shader. | |
of.message.aa.shaders2=W.e.g. schalt de Shader aus fir des Optioun ze aktivéieren. | |
of.message.af.shaders1=Anisotropescht Filteren ass net kompatibel mat de Shader. | |
of.message.af.shaders2=W.e.g. schalt de Shader aus fir des Optioun ze aktivéieren. | |
of.message.fr.shaders1=Schnellt Renderen ass net kompatibel mat de de Shader. | |
of.message.fr.shaders2=W.e.g. schalt de Shader aus fir des Optioun ze aktivéieren. | |
of.message.shaders.aa1=Antialiasing ass net kompatibel mat de Shader . | |
of.message.shaders.aa2=W.e.g setz Qualitéit -> Antialiasing ob AUS a start däi spill nei. | |
of.message.shaders.af1=Anisotropescht Filteren ass net kompatibel mat de Shader. | |
of.message.shaders.af2=W.e.g setz Qualitéit -> Anisotropescht Filteren ob AUS. | |
of.message.shaders.fr1=Schiet-Effekt si kompatibel mat schnellem Renderen. | |
of.message.shaders.fr2=W.e.g setz de Performance -> Schnellt Renderen ob AUS. | |
of.message.newVersion=Eng nei Versioun vun §eOptiFine§f ass verfügbar: §e%s§f | |
of.message.java64Bit=Du kanns §e64-bit Java§f installéiere fir eng Performance. | |
of.message.openglError=§eOpenGL Fehler§f: %s (%s) | |
of.message.shaders.loading=D'Shader gi gelueden: %s | |
of.message.other.reset=All Videoastellungen zerécksetzen ob hier Standardwäerter? | |
# Video settings | |
options.graphics.tooltip.1=Grafikmodus | |
options.graphics.tooltip.2= Schnell - méi schlecht Qualitéit, méi schnell | |
options.graphics.tooltip.3= Schéin - héich Qualitéit, méi lues | |
options.graphics.tooltip.4=Verännert d'Ausgesi vun de Wolleken, Blieder, Grasbléck, | |
options.graphics.tooltip.5=Schieter a vum Waasser. | |
of.options.renderDistance.extreme=Extrem | |
options.renderDistance.tooltip.1=Siichtwéit | |
options.renderDistance.tooltip.2= 2 Mini - 32m (am schnellsten) | |
options.renderDistance.tooltip.3= 4 Geréng - 64m (schnell) | |
options.renderDistance.tooltip.4= 8 Normal - 128m | |
options.renderDistance.tooltip.5= 16 Wéit - 256m (lues) | |
options.renderDistance.tooltip.6= 32 Extrem - 512m (am luesten!) | |
options.renderDistance.tooltip.7=D'extrem Sichtwéit erfuerdert vill Ressource. | |
options.renderDistance.tooltip.8=D'Wäerter iwwer 16 funktionéieren nëmmen am Singleplayer | |
options.ao.tooltip.1=Fléissend Beliichtung | |
options.ao.tooltip.2= Aus - keng fléissend Beliichtung (schnell) | |
options.ao.tooltip.3= Minimum - einfach fléissend Beliichtung (lues) | |
options.ao.tooltip.4= Maximum - komplexe fléissend Beliichtung (am luesten) | |
options.framerateLimit.tooltip.1=Max. FPS | |
options.framerateLimit.tooltip.2= VSync - limitéiert ob d'Bildfrequenz vum Monitor (60, 30, 20) | |
options.framerateLimit.tooltip.3= 5-255 - variabel | |
options.framerateLimit.tooltip.4= Illimitéiert - keng Begrenzung (am schnellsten) | |
options.framerateLimit.tooltip.5=D'Bildfrequenz grenzt FPS an, souguer | |
options.framerateLimit.tooltip.6=wann d'Begrenzung net erreecht ass. | |
of.options.framerateLimit.vsync=V-Sync | |
of.options.AO_LEVEL=Schiet-Hellegkeet | |
of.options.AO_LEVEL.tooltip.1=Hellegkeet vun de Schieter | |
of.options.AO_LEVEL.tooltip.2= Aus - keng Schieter | |
of.options.AO_LEVEL.tooltip.3= 50%% - hell Schieter | |
of.options.AO_LEVEL.tooltip.4= 100%% - donkel Schieter | |
options.viewBobbing.tooltip.1=Realistesch Bewegungen | |
options.viewBobbing.tooltip.2=Wann Mipmaps genotzt ginn deaktivéiert d'Astellung | |
options.viewBobbing.tooltip.3=fir eng besser Leeschtung | |
options.guiScale.tooltip.1=GUI-Gréisst | |
options.guiScale.tooltip.2=Ee méi klengt GUI ka méi schnell sinn. | |
options.vbo.tooltip.1=Vertexbufferobjeten | |
options.vbo.tooltip.2=Benotz een alternative Rendermodel, deen normalerweis | |
options.vbo.tooltip.3=méi schnell (5-10%%) wei d'Standard-Renderen ass. | |
options.gamma.tooltip.1=Erhéicht Hellegkeet vun donkelen Objeten | |
options.gamma.tooltip.2= Aus - Standardhellegkeet | |
options.gamma.tooltip.3= 100%% - maximal Hellegkeet fir donkel Objeten | |
options.gamma.tooltip.4=Dës Optioun ännert Hellegkeet vun ganz donkelen | |
options.gamma.tooltip.5=Objeten net. | |
options.anaglyph.tooltip.1=3D-Modus | |
options.anaglyph.tooltip.2=Kann nëmme mat engem Roud-Turquoise-Brëll benotzt ginn. | |
options.anaglyph.tooltip.3=Aktivéiert ee stereoskopeschen 3D-Effekt duerch | |
options.anaglyph.tooltip.4=benotze vun ënnerschiddleche Faarwe fir d'Aen. | |
options.blockAlternatives.tooltip.1=Block Variatiounen | |
options.blockAlternatives.tooltip.2=Benotz Variatioune fir puer Bléck | |
options.blockAlternatives.tooltip.3=Hänkt vum ausgewielte Ressourcenpack of. | |
of.options.FOG_FANCY=Niwwel | |
of.options.FOG_FANCY.tooltip.1=Niwwel | |
of.options.FOG_FANCY.tooltip.2= Schnell - schnellen Niwwel | |
of.options.FOG_FANCY.tooltip.3= Schéin - luesen Niwwel, gesäit besser aus | |
of.options.FOG_FANCY.tooltip.4= Aus - keen Niwwel, am schnellsten | |
of.options.FOG_FANCY.tooltip.5=De schéinen Niwwel ass nëmme verfügbar, wann en vun | |
of.options.FOG_FANCY.tooltip.6=der Grafikkaart ënnerstëtzt gëtt. | |
of.options.FOG_START=Niwwel Startpunkt | |
of.options.FOG_START.tooltip.1=Niwwel Startpunkt | |
of.options.FOG_START.tooltip.2= 0.2 - Niwwel start no beim Spiller | |
of.options.FOG_START.tooltip.3= 0.8 - Niwwel start weit vum Spiller ewech | |
of.options.FOG_START.tooltip.4=Dës Optioun beaflosst normalerweis net d'Leeschtung | |
of.options.CHUNK_LOADING=Chunklueden | |
of.options.CHUNK_LOADING.tooltip.1=Chunklueden | |
of.options.CHUNK_LOADING.tooltip.2= Standard - onstabil FPS beim luede vun de Chunks | |
of.options.CHUNK_LOADING.tooltip.3= Fléissend - stabil FPS | |
of.options.CHUNK_LOADING.tooltip.4= Multi-Core - stabil FPS, 3x méi schnellt luede vun der Welt | |
of.options.CHUNK_LOADING.tooltip.5=Fléissend a Multi-Core mécht Ruckler a Standbiller | |
of.options.CHUNK_LOADING.tooltip.6=fort déi durch d'Luede vun de Chunks verursaacht ginn. | |
of.options.CHUNK_LOADING.tooltip.7=Multi-Core kann d'Luede vun der Welt bis zu 3x méi schnell | |
of.options.CHUNK_LOADING.tooltip.8=maachen a FPS erhéijen duerch een zweete CPU-Kär. | |
of.options.chunkLoading.smooth=Fléissend | |
of.options.chunkLoading.multiCore=Multi-Core | |
of.options.shaders=Schieter ... | |
of.options.shadersTitle=Schieter | |
of.options.shaders.packNone=Aus | |
of.options.shaders.packDefault=(intern) | |
of.options.shaders.ANTIALIASING=Antialiasing | |
of.options.shaders.NORMAL_MAP=Normal Kaart | |
of.options.shaders.SPECULAR_MAP=Spiegelnd Kaart | |
of.options.shaders.RENDER_RES_MUL=Render Qualitéit | |
of.options.shaders.SHADOW_RES_MUL=Schiet Qualitéit | |
of.options.shaders.HAND_DEPTH_MUL=Handdéift | |
of.options.shaders.CLOUD_SHADOW=Wolleke schiet | |
of.options.shaders.OLD_HAND_LIGHT=Aal Hand Luucht | |
of.options.shaders.OLD_LIGHTING=Aal Geliichts | |
of.options.shaders.SHADER_PACK=Shaderpack | |
of.options.shaders.shadersFolder=Shader-Fichier | |
of.options.shaders.shaderOptions=Shaderastellungen ... | |
of.options.shaderOptionsTitle=Shaderastellungen | |
of.options.quality=Qualitéit ... | |
of.options.qualityTitle=Qualitéitsastellungen | |
of.options.details=Detailer ... | |
of.options.detailsTitle=Detailastellungen | |
of.options.performance=Performance ... | |
of.options.performanceTitle=Performanceastellungen | |
of.options.animations=Animatiounen ... | |
of.options.animationsTitle=Animatiounsastellungen | |
of.options.other=Verschiddenes ... | |
of.options.otherTitle=Veschidden Astellungen | |
of.options.other.reset=Videoastellungen zerécksetzen ... | |
of.shaders.profile=Profil | |
# Quality | |
of.options.mipmap.bilinear=Bilinear | |
of.options.mipmap.linear=Linear | |
of.options.mipmap.nearest=Am noosten | |
of.options.mipmap.trilinear=Trilinear | |
options.mipmapLevels.tooltip.1=Visuellen Effekt dee weit entfernten Objete besser | |
options.mipmapLevels.tooltip.2=ausgesi léisst duerch verréngere vun den Texturdetailer. | |
options.mipmapLevels.tooltip.3= Aus - keng Verréngerung vun Detailer | |
options.mipmapLevels.tooltip.4= 1 - minimal Verréngerung vun Detailler | |
options.mipmapLevels.tooltip.5= 4 - maximal Verréngerung vun Detailler | |
options.mipmapLevels.tooltip.6=Dës Optioun beaflosst normalerweis d'Performance net. | |
of.options.MIPMAP_TYPE=Mipmap-Typ | |
of.options.MIPMAP_TYPE.tooltip.1=Visuellen Effekt dee weit entfernten Objete besser | |
of.options.MIPMAP_TYPE.tooltip.2=ausgesi léisst duerch verréngern vun den Texturdetailer. | |
of.options.MIPMAP_TYPE.tooltip.3= Am noosten - graff Verréngerung (am schnellsten) | |
of.options.MIPMAP_TYPE.tooltip.4= Linear - normal Verréngerung (schnell) | |
of.options.MIPMAP_TYPE.tooltip.5= Bilinear - fein Verréngerung (lues) | |
of.options.MIPMAP_TYPE.tooltip.6= Trilinear - feinst Verréngerung (am luesten) | |
of.options.AA_LEVEL=Antialiasing | |
of.options.AA_LEVEL.tooltip.1=Antialiasing | |
of.options.AA_LEVEL.tooltip.2= Aus - (Standard) Keen Antialiasing (méi schnell) | |
of.options.AA_LEVEL.tooltip.3= 2-16 - antialiséiert Kanten an Ecker (méi lues) | |
of.options.AA_LEVEL.tooltip.4=Den Antialiasing mécht Kanten a Faarfiwergäng | |
of.options.AA_LEVEL.tooltip.5=méi fléissend. | |
of.options.AA_LEVEL.tooltip.6=Wann aktivéiert kënnen deng FPS staark erof goen. | |
of.options.AA_LEVEL.tooltip.7=Net all Stufe gi vun all Grafikaart ënnerstëtzt | |
of.options.AA_LEVEL.tooltip.8=Ännerunge sinn ereicht no engem Neistart effektiv! | |
of.options.AF_LEVEL=Anisotropescht Filteren | |
of.options.AF_LEVEL.tooltip.1=Anisotropescht Filteren | |
of.options.AF_LEVEL.tooltip.2= Aus - (Standard) Standard-Texturdetailer (méi schnell) | |
of.options.AF_LEVEL.tooltip.3= 2-16 - méi fein Texturdetailer (méi lues) | |
of.options.AF_LEVEL.tooltip.4=D'anisoptropescht Filtere stellt Texturdetailer | |
of.options.AF_LEVEL.tooltip.5=déi duerch Mipmap verluer gaange sinn erëm hier. | |
of.options.AF_LEVEL.tooltip.6=Wann aktivéiert kenne FPS staark erof goen. | |
of.options.CLEAR_WATER=Kloert Waasser | |
of.options.CLEAR_WATER.tooltip.1=Kloert Waasser | |
of.options.CLEAR_WATER.tooltip.2= Un - kloer, transparent Waasser | |
of.options.CLEAR_WATER.tooltip.3= Aus - normaalt Waasser | |
of.options.RANDOM_MOBS=Zoufälleg Mobs | |
of.options.RANDOM_MOBS.tooltip.1=Zoufälleg Mobs | |
of.options.RANDOM_MOBS.tooltip.2= Aus - keng zoufälleg Mobs, méi schnell | |
of.options.RANDOM_MOBS.tooltip.3= Un - zoufälleg Mobs, méi lues | |
of.options.RANDOM_MOBS.tooltip.4=Zoufälleg Mobs benotzt zoufälleg Texture fir Kreaturen | |
of.options.RANDOM_MOBS.tooltip.5=am Spill. | |
of.options.RANDOM_MOBS.tooltip.6=Et braucht een ee Ressourcepak mat e puer Mobtexturen. | |
of.options.BETTER_GRASS=Bessert Grass | |
of.options.BETTER_GRASS.tooltip.1=Bessert Grass | |
of.options.BETTER_GRASS.tooltip.2= Aus - Standard-Säitentextur vum Gras, am schnellsten | |
of.options.BETTER_GRASS.tooltip.3= Schnell - komplett Säitentextur vum Gras, lues | |
of.options.BETTER_GRASS.tooltip.4= Schéin - dynamesch Säitentextur vum Gras, am luesten | |
of.options.BETTER_SNOW=Bessere Schnéi | |
of.options.BETTER_SNOW.tooltip.1=Bessere Schnéi | |
of.options.BETTER_SNOW.tooltip.2= Aus - normale Schnéi, méi schnell | |
of.options.BETTER_SNOW.tooltip.3= Un - bessere Schnéi, méi lues | |
of.options.BETTER_SNOW.tooltip.4=Wéist Schnéi ënnert transparente Bléck (Zonk, | |
of.options.BETTER_SNOW.tooltip.5=héijem Grass) un wann se un Schnéibléck ugrenzen. | |
of.options.CUSTOM_FONTS=Schrëftressource | |
of.options.CUSTOM_FONTS.tooltip.1=Schrëftressource | |
of.options.CUSTOM_FONTS.tooltip.2= Un - Schrëft aus dem Ressourcepak (Standard), méi lues | |
of.options.CUSTOM_FONTS.tooltip.3= Aus - Standardschrëft, méi schnell | |
of.options.CUSTOM_FONTS.tooltip.4=D'Schrëft gëtt vum ausgewielte Ressourcepak gelueden | |
of.options.CUSTOM_FONTS.tooltip.5= | |
of.options.CUSTOM_COLORS=Faarfressource | |
of.options.CUSTOM_COLORS.tooltip.1=Faarfressource | |
of.options.CUSTOM_COLORS.tooltip.2= Un - Faarwen aus dem Ressourcepak (Standard), méi lues | |
of.options.CUSTOM_COLORS.tooltip.3= Aus - Standardfaarwen, méi schnell | |
of.options.CUSTOM_COLORS.tooltip.4=Farwe gi vum ausgewielte Ressourcepak gelueden | |
of.options.CUSTOM_COLORS.tooltip.5= | |
of.options.SWAMP_COLORS=Sumpffaarwen | |
of.options.SWAMP_COLORS.tooltip.1=Sumpffaarwen | |
of.options.SWAMP_COLORS.tooltip.2= Un - Sumpffarwe benotzen (Standard), méi lues | |
of.options.SWAMP_COLORS.tooltip.3= Aus - Sumpffaarwen nëtt benotzen, méi schnell | |
of.options.SWAMP_COLORS.tooltip.4=Sumpfaarwe concernéiere Grass, Blieder, Lianen | |
of.options.SWAMP_COLORS.tooltip.5=a Waasser. | |
of.options.SMOOTH_BIOMES=Biomeiwwergäng | |
of.options.SMOOTH_BIOMES.tooltip.1= Biomeiwwergäng | |
of.options.SMOOTH_BIOMES.tooltip.2= Un - fléissenden Iwwergang (Standard), méi lues | |
of.options.SMOOTH_BIOMES.tooltip.3= Aus - kee fléissenden Iwwergang, méi schnell | |
of.options.SMOOTH_BIOMES.tooltip.4=De fléissenden Iwwergang gëtt duerch Prouwen an | |
of.options.SMOOTH_BIOMES.tooltip.5=Duerchschnëttsfaarfwäerter vun den ugrenzende | |
of.options.SMOOTH_BIOMES.tooltip.6=Bléck realiséiert | |
of.options.SMOOTH_BIOMES.tooltip.7=Concernéiert si Grass, Blieder, Lianen a Waasser | |
of.options.CONNECTED_TEXTURES=Verbonnen Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.1=Verbonnen Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.2= Aus - keng verbonnen Texturen (Standard) | |
of.options.CONNECTED_TEXTURES.tooltip.3= Schnell - schnell verbonnen Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.4= Schéin - schéi verbonnen Texturen | |
of.options.CONNECTED_TEXTURES.tooltip.5=Verbonnen Texture verbënnt d'Texture vu Glas, | |
of.options.CONNECTED_TEXTURES.tooltip.6=Sandsteen a Bicherregaler wann se niewenteneen | |
of.options.CONNECTED_TEXTURES.tooltip.7=plazéiert ginn. D'verbonnen Texture gi vum | |
of.options.CONNECTED_TEXTURES.tooltip.8=Ressourcepak gelueden. | |
of.options.NATURAL_TEXTURES=Natierlech Texturen | |
of.options.NATURAL_TEXTURES.tooltip.1=Natierlech Texturen | |
of.options.NATURAL_TEXTURES.tooltip.2= Aus - keng natierlech Texturen (Standard) | |
of.options.NATURAL_TEXTURES.tooltip.3= Un - benotz natierlech Texturen | |
of.options.NATURAL_TEXTURES.tooltip.4=Natierlech Texture maachen d'Raster-Unuerdnung | |
of.options.NATURAL_TEXTURES.tooltip.5=déi duerch widderhuele vum selwechte Block entsti fort. | |
of.options.NATURAL_TEXTURES.tooltip.6=Et gi rotéiert a gespigelt Variante vun der | |
of.options.NATURAL_TEXTURES.tooltip.7=Basisblocktextur genotzt. Konfiguratioun fir natierlech | |
of.options.NATURAL_TEXTURES.tooltip.8=Texture gi vum Ressourcepak gelueden. | |
of.options.CUSTOM_SKY=Himmeltexturen | |
of.options.CUSTOM_SKY.tooltip.1=Himmeltexturen | |
of.options.CUSTOM_SKY.tooltip.2= Un - Himmeltexturen aus dem Ressourcepak (Standard), | |
of.options.CUSTOM_SKY.tooltip.3= lues | |
of.options.CUSTOM_SKY.tooltip.4= Aus - Standardhimmel, méi schnell | |
of.options.CUSTOM_SKY.tooltip.5=D'Himmeltexture gi vum Ressourcepak gelueden | |
of.options.CUSTOM_ITEMS=Géigestänntexturen | |
of.options.CUSTOM_ITEMS.tooltip.1=Géigestänntexturen | |
of.options.CUSTOM_ITEMS.tooltip.2= Un - Géigestänntexturen aus dem Ressourcepak | |
of.options.CUSTOM_ITEMS.tooltip.3= (Standard), lues | |
of.options.CUSTOM_ITEMS.tooltip.4= Aus - Standard-Géigestänntexturen, méi schnell | |
of.options.CUSTOM_ITEMS.tooltip.5=Géigestänntexture gi vum Ressourcepak gelueden | |
# Details | |
of.options.CLOUDS=Wolleken | |
of.options.CLOUDS.tooltip.1=Wolleken | |
of.options.CLOUDS.tooltip.2= Standard - wéi vum Grafikmodus definéiert | |
of.options.CLOUDS.tooltip.3= Schnell - méi geréng Qualitéit, méi schnell | |
of.options.CLOUDS.tooltip.4= Schéin - héich Qualitéit, méi lues | |
of.options.CLOUDS.tooltip.5= Aus - keng Wolleken, am schnellsten | |
of.options.CLOUDS.tooltip.6=Schnell Wolleke sinn am 2D gerendert. | |
of.options.CLOUDS.tooltip.7=Schéi Wolleke sinn am 3D gerendert. | |
of.options.CLOUD_HEIGHT=Wollekenhéicht | |
of.options.CLOUD_HEIGHT.tooltip.1=Wollekenhéicht | |
of.options.CLOUD_HEIGHT.tooltip.2= Aus - Standardhéicht | |
of.options.CLOUD_HEIGHT.tooltip.3= 100%% - iwwert der max. Welt héicht | |
of.options.TREES=Beem | |
of.options.TREES.tooltip.1=Beem | |
of.options.TREES.tooltip.2= Standard - wéi vum Grafikmodus definéiert | |
of.options.TREES.tooltip.3= Schnell - méi geréng Qualitéit, méi schnell | |
of.options.TREES.tooltip.4= Fein - méi héich Qualitéit, schnell | |
of.options.TREES.tooltip.5= Schéin - héchste Qualitéit, méi lues | |
of.options.TREES.tooltip.6=Schnell Beem hunn onduerchsichteg Blieder | |
of.options.TREES.tooltip.7=Schéin a fein Beem hunn transparent Blieder. | |
of.options.RAIN=Reen a Schnéi | |
of.options.RAIN.tooltip.1=Reen a Schnéi | |
of.options.RAIN.tooltip.2= Standard - wéi vum Grafikmodus definéiert | |
of.options.RAIN.tooltip.3= Schnell - liichte Reen/Schnéi, méi schnell | |
of.options.RAIN.tooltip.4= Schéin - heftege Reen/Schnéi, méi lues | |
of.options.RAIN.tooltip.5= Aus - keen Reen/Schnéi, schnellst | |
of.options.RAIN.tooltip.6=Och wann de Reen aus ass, héiert een nach ëmmer | |
of.options.RAIN.tooltip.7=Geräischer | |
of.options.SKY=Himmel | |
of.options.SKY.tooltip.1=Himmel | |
of.options.SKY.tooltip.2= Un - Himmel siichtbar, méi lues | |
of.options.SKY.tooltip.3= Aus - Himmel net siichtbar, méi schnell | |
of.options.SKY.tooltip.4=Och wann den Himmel aus ass, sinn de Mount an d'Sonn | |
of.options.SKY.tooltip.5=nach ëmmer siichtbar. | |
of.options.STARS=Stären | |
of.options.STARS.tooltip.1=Stären | |
of.options.STARS.tooltip.2= Un - Stäre siichtbar, méi lues | |
of.options.STARS.tooltip.3= Aus - Stären net siichtbar, méi schnell | |
of.options.SUN_MOON=Sonn a Mound | |
of.options.SUN_MOON.tooltip.1=Sonn a Mound | |
of.options.SUN_MOON.tooltip.2= Un - Sonn a Mound siichtbar (Standard) | |
of.options.SUN_MOON.tooltip.3= Aus - Sonn a Mound net siichtbar (méi schnell) | |
of.options.SHOW_CAPES=Emhang weisen | |
of.options.SHOW_CAPES.tooltip.1=Emhang weisen | |
of.options.SHOW_CAPES.tooltip.2= Un - weis d'Emhäng vun de Spiller (Standard) | |
of.options.SHOW_CAPES.tooltip.3= Aus - d'Emhäng vun de Spiller ginn net ugewisen | |
of.options.TRANSLUCENT_BLOCKS=Blocktransparenz | |
of.options.TRANSLUCENT_BLOCKS.tooltip.1=Blocktransparenz | |
of.options.TRANSLUCENT_BLOCKS.tooltip.2= Schéin - korrekt Faarfmëschung (Standard) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.3= Schnell - schnell Faarfmëschung (méi schnell) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.4=Kontrolléiert Faarfmëschung vun transparente Bléck | |
of.options.TRANSLUCENT_BLOCKS.tooltip.5=aus verschiddene Faarwen (gefierfte Glas, Waasser, Äis) | |
of.options.TRANSLUCENT_BLOCKS.tooltip.6=wann se hannert ënne plazéiert sinn oder Loft | |
of.options.TRANSLUCENT_BLOCKS.tooltip.7=dertëschent ass. | |
of.options.HELD_ITEM_TOOLTIPS=Géigestandbeschreiw. | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.1=Géigestandbeschreiwung | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.2= Un - weis Géigestandbeschreiwung un (Standard) | |
of.options.HELD_ITEM_TOOLTIPS.tooltip.3= Aus - weis keng Géigestandbeschreiwung | |
of.options.DROPPED_ITEMS=Géigenstänn | |
of.options.DROPPED_ITEMS.tooltip.1=Falengelosse Géigenstänn | |
of.options.DROPPED_ITEMS.tooltip.2= Standard - wéi vum Grafikmodus definéiert | |
of.options.DROPPED_ITEMS.tooltip.3= Schnell - 2D falengelosse Géigestänn, méi schnell | |
of.options.DROPPED_ITEMS.tooltip.4= Schéin - 3D falengelosse Géigestänn, méi lues | |
options.entityShadows.tooltip.1=Objetschieter | |
options.entityShadows.tooltip.2= Un - weis Objetschieter un | |
options.entityShadows.tooltip.3= Aus - keng Objetschieter | |
of.options.VIGNETTE=Vignette | |
of.options.VIGNETTE.tooltip.1=Visuellen Effekt deen d'Ecker liicht ofdonkelt | |
of.options.VIGNETTE.tooltip.2= Standard - wéi vum Grafikmodus definéiert (Standard) | |
of.options.VIGNETTE.tooltip.3= Schnell - Vignette deaktivéiert (méi schnell) | |
of.options.VIGNETTE.tooltip.4= Schéin - Vignette aktivéiert (méi lues) | |
of.options.VIGNETTE.tooltip.5=D'Vignette kann ee staarken Impakt ob d'FPS hunn, | |
of.options.VIGNETTE.tooltip.6=virun allem wann am Vollbildmodus gespillt gëtt. | |
of.options.VIGNETTE.tooltip.7=De Vignette Effekt ass relativ geréng a kann dofir | |
of.options.VIGNETTE.tooltip.8=ouni Problem deaktivéiert ginn. | |
# Performance | |
of.options.SMOOTH_FPS=Stabil FPS | |
of.options.SMOOTH_FPS.tooltip.1=Stabiliséiert FPS duerch eidel maache | |
of.options.SMOOTH_FPS.tooltip.2=vum Grafikdreiwerpuffer | |
of.options.SMOOTH_FPS.tooltip.3= Aus - keng Stabilisatioun, FPS kënnen onstabil sinn | |
of.options.SMOOTH_FPS.tooltip.4= Un - FPS stabiliséiert | |
of.options.SMOOTH_FPS.tooltip.5=Dës Optioun hängt vun de Grafikdreiwer of an d'Effekter | |
of.options.SMOOTH_FPS.tooltip.6=sinn net ëmmer siichtbar. | |
of.options.SMOOTH_WORLD=Welt Stabiliséierung | |
of.options.SMOOTH_WORLD.tooltip.1=Hellt Lag Spëtzten déi duerch den interne Server | |
of.options.SMOOTH_WORLD.tooltip.2=verurs |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)