Search Unity

  1. If you have experience with import & exporting custom (.unitypackage) packages, please help complete a survey (open until May 15, 2024).
    Dismiss Notice
  2. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice

Moving simple ball + physics doesnt works [video]

Discussion in 'Physics' started by Dav36id, Apr 2, 2015.

  1. Dav36id

    Dav36id

    Joined:
    Apr 1, 2015
    Posts:
    7
    1. package com.funergy.bedwars.utils;


    2. import java.util.AbstractMap;
    3. import java.util.Iterator;
    4. import java.util.List;
    5. import java.util.Map;

    6. import org.bukkit.Bukkit;
    7. import org.bukkit.OfflinePlayer;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.scoreboard.DisplaySlot;
    10. import org.bukkit.scoreboard.Objective;
    11. import org.bukkit.scoreboard.Scoreboard;
    12. import org.bukkit.scoreboard.Team;

    13. import com.google.common.base.Preconditions;
    14. import com.google.common.base.Splitter;
    15. import com.google.common.collect.Lists;
    16. import com.google.common.collect.Maps;

    17. public class SidebarManager {

    18. private Scoreboard scoreboard;

    19. private String title;
    20. private Map<String, Integer> scores;
    21. private List<Team> teams;

    22. public SidebarManager(String title) {
    23. this.scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
    24. this.title = title;
    25. this.scores = Maps.newLinkedHashMap();
    26. this.teams = Lists.newArrayList();
    27. }

    28. public void blankLine() {
    29. add(" ");
    30. }

    31. public void add(String text) {
    32. add(text, null);
    33. }

    34. public void add(String text, Integer score) {
    35. Preconditions.checkArgument(text.length() < 48, "text cannot be over 48 characters in length");
    36. text = fixDuplicates(text);
    37. scores.put(text, score);
    38. }

    39. private String fixDuplicates(String text) {
    40. while (scores.containsKey(text))
    41. text += "§r";
    42. if (text.length() > 48)
    43. text = text.substring(0, 47);
    44. return text;
    45. }

    46. private Map.Entry<Team, String> createTeam(String text) {
    47. String result = "";
    48. if (text.length() <= 16)
    49. return new AbstractMap.SimpleEntry<>(null, text);
    50. Team team = scoreboard.registerNewTeam("text-" + scoreboard.getTeams().size());
    51. Iterator<String> iterator = Splitter.fixedLength(16).split(text).iterator();
    52. team.setPrefix(iterator.next());
    53. result = iterator.next();
    54. if (text.length() > 32)
    55. team.setSuffix(iterator.next());
    56. teams.add(team);
    57. return new AbstractMap.SimpleEntry<>(team, result);
    58. }

    59. public void build() {
    60. Objective obj = scoreboard.registerNewObjective((title.length() > 16 ? title.substring(0, 15) : title), "dummy");
    61. obj.setDisplayName(title);
    62. obj.setDisplaySlot(DisplaySlot.SIDEBAR);

    63. int index = scores.size();

    64. for (Map.Entry<String, Integer> text : scores.entrySet()) {
    65. Map.Entry<Team, String> team = createTeam(text.getKey());
    66. Integer score = text.getValue() != null ? text.getValue() : index;
    67. OfflinePlayer player = Bukkit.getOfflinePlayer(team.getValue());
    68. if (team.getKey() != null)
    69. team.getKey().addPlayer(player);
    70. obj.getScore(player).setScore(score);
    71. index -= 1;
    72. }
    73. }

    74. public void reset() {
    75. title = null;
    76. scores.clear();
    77. for (Team t : teams)
    78. t.unregister();
    79. teams.clear();
    80. }

    81. public Scoreboard getScoreboard() {
    82. return scoreboard;
    83. }

    84. public void send(Player... players) {
    85. for (Player p : players)
    86. p.setScoreboard(scoreboard);
    87. }

    88. }
     
    Last edited: Apr 4, 2015